CPAnalyst error when scoring image and viewing image

Dear CPA Help,
I am new to CPA, and have just loaded my first analysis. In Classifier, I am able to classify cells from an image, find rules, and Score All. However, I am unable to Score Image. When I attempt to Score Image and Select an Image (1 for example), I receive the following error:
An error occurred in the program:
IndexError: list index out of range

Traceback (most recent call last):
File “ClassifierGUI.pyc”, line 869, in OnScoreImage
File “ImageTools.pyc”, line 57, in ShowImage
File “ImageViewer.pyc”, line 188, in init
File “ImageViewer.pyc”, line 223, in SetImage
File “ImageViewer.pyc”, line 36, in init
File “ImagePanel.pyc”, line 30, in init
File “ImageTools.pyc”, line 108, in MergeToBitmap
File “ImageTools.pyc”, line 188, in MergeChannels

The output on the console is:
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 217,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 218,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 219,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 220,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 221,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 222,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 223,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 224,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 225,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 226,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 227,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 228,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 229,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 230,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 231,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 232,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 233,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 234,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 235,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 236,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 237,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 238,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 239,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 240,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 241,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 242,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 243,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 244,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 245,1
[MainThread] SELECT ObjectNumber FROM Per_Object WHERE ImageNumber=1 LIMIT 246,1
[MainThread] SELECT ObjectNumber FROM Per_Obje

I receive a similar error message when attempting to view the classification results following (Score All). Resulting in this error:
An error occurred in the program:
IndexError: list index out of range

Traceback (most recent call last):
File “DataGrid.pyc”, line 306, in OnSelectFromPopupMenu
File “ImageTools.pyc”, line 57, in ShowImage
File “ImageViewer.pyc”, line 188, in init
File “ImageViewer.pyc”, line 223, in SetImage
File “ImageViewer.pyc”, line 36, in init
File “ImagePanel.pyc”, line 30, in init
File “ImageTools.pyc”, line 108, in MergeToBitmap
File “ImageTools.pyc”, line 188, in MergeChannels

And lastly, I receive a similar error when attempting to use the imageviewer:
An error occurred in the program:
IndexError: list index out of range

Traceback (most recent call last):
File “cpa.py”, line 195, in launch_image_viewer
File “ImageViewer.pyc”, line 190, in init
File “ImageViewer.pyc”, line 489, in OnOpenImage
File “ImageViewer.pyc”, line 223, in SetImage
File “ImageViewer.pyc”, line 36, in init
File “ImagePanel.pyc”, line 30, in init
File “ImageTools.pyc”, line 108, in MergeToBitmap
File “ImageTools.pyc”, line 188, in MergeChannels

Any help is greatly appreciated. Thanks!
–Andy Beck

And, my properties file is pasted below:
#Tue May 4 16:48:55 2010

==============================================

Classifier 2.0 properties file

==============================================

==== Database Info ====

db_type = sqlite
db_sqlite_file = C:\Users\ahbeck.py-velo-l209\Desktop\AHB_CP\AHB_CP_OUT/DefaultDB2.db

==== Database Tables ====

image_table = Per_Image
object_table = Per_Object

==== Database Columns ====

Specify the database column names that contain unique IDs for images and

objects (and optionally tables).

table_id (OPTIONAL): This field lets Classifier handle multiple tables if

you merge them into one and add a table_number column as a foreign

key to your per-image and per-object tables.

image_id: must be a foreign key column between your per-image and per-object

tables

object_id: the object key column from your per-object table

image_id = ImageNumber
object_id = ObjectNumber
plate_id =
well_id =

Also specify the column names that contain X and Y coordinates for each

object within an image.

cell_x_loc = Nuclei_Location_Center_X
cell_y_loc = Nuclei_Location_Center_Y

==== Image Path and File Name Columns ====

Classifier needs to know where to find the images from your experiment.

Specify the column names from your per-image table that contain the image

paths and file names here.

Individual image files are expected to be monochromatic and represent a single

channel. However, any number of images may be combined by adding a new channel

path and filename column to the per-image table of your database and then

adding those column names here.

NOTE: These lists must have equal length!

image_channel_paths = Image_PathName_HE,
image_channel_files = Image_FileName_HE,

Give short names for each of the channels (respectively)…

image_channel_names = HE,

Specify a default color for each of the channels (respectively)

Valid colors are: [red, green, blue, magenta, cyan, yellow, gray, none]

image_channel_colors = gray,

==== Image Accesss Info ====

image_url_prepend =

==== Dynamic Groups ====

Here you can define groupings to choose from when classifier scores your experiment. (eg: per-well)

This is OPTIONAL, you may leave "groups = ".

FORMAT:

groups = comma separated list of group names (MUST END IN A COMMA IF THERE IS ONLY ONE GROUP)

group_XXX = MySQL select statement that returns image-keys and group-keys. This will be associated with the group name “XXX” from above.

EXAMPLE GROUPS:

groups = Well, Gene, Well+Gene,

group_SQL_Well = SELECT Per_Image_Table.TableNumber, Per_Image_Table.ImageNumber, Per_Image_Table.well FROM Per_Image_Table

group_SQL_Gene = SELECT Per_Image_Table.TableNumber, Per_Image_Table.ImageNumber, Well_ID_Table.gene FROM Per_Image_Table, Well_ID_Table WHERE Per_Image_Table.well=Well_ID_Table.well

group_SQL_Well+Gene = SELECT Per_Image_Table.TableNumber, Per_Image_Table.ImageNumber, Well_ID_Table.well, Well_ID_Table.gene FROM Per_Image_Table, Well_ID_Table WHERE Per_Image_Table.well=Well_ID_Table.well

groups =

==== Image Filters ====

Here you can define image filters to let you select objects from a subset of your experiment when training the classifier.

This is OPTIONAL, you may leave "filters = ".

FORMAT:

filters = comma separated list of filter names (MUST END IN A COMMA IF THERE IS ONLY ONE FILTER)

filter_SQL_XXX = MySQL select statement that returns image keys you wish to filter out. This will be associated with the filter name “XXX” from above.

EXAMPLE FILTERS:

filters = EMPTY, CDKs,

filter_SQL_EMPTY = SELECT TableNumber, ImageNumber FROM CPA_per_image, Well_ID_Table WHERE CPA_per_image.well=Well_ID_Table.well AND Well_ID_Table.Gene=“EMPTY”

filter_SQL_CDKs = SELECT TableNumber, ImageNumber FROM CPA_per_image, Well_ID_Table WHERE CPA_per_image.well=Well_ID_Table.well AND Well_ID_Table.Gene REGEXP ‘CDK.*’

filters =

==== Meta data ====

What are your objects called?

FORMAT:

object_name = singular object name, plural object name,

object_name = cell, cells,

What size plates were used? 384 or 96? This is for use in the PlateViewer

plate_type =

==== Excluded Columns ====

OPTIONAL

Classifier uses columns in your per_object table to find rules. It will

automatically ignore ID columns defined in table_id, image_id, and object_id

as well as any columns that contain non-numeric data.

Here you may list other columns in your per_object table that you wish the

classifier to ignore when finding rules.

You may also use regular expressions here to match more general column names.

Example: classifier_ignore_columns = WellID, Meta_., ._Position

This will ignore any column named “WellID”, any columns that start with

“Meta_”, and any columns that end in “_Position”.

A more restrictive example:

classifier_ignore_columns = ImageNumber, ObjectNumber, .Parent., .Children., .Location_Center.,.Metadata.

classifier_ignore_columns = table_number_key_column, image_number_key_column, object_number_key_column

==== Other ====

Specify the approximate diameter of your objects in pixels here.

image_tile_size = 50

======== Auto Load Training Set ========

OPTIONAL

You may enter the full path to a training set that you would like Classifier

to automatically load when started.

training_set =

======== Area Based Scoring ========

OPTIONAL

You may specify a column in your per-object table which will be summed and

reported in place of object-counts when scoring. The typical use for this

is to report the areas of objects on a per-image or per-group basis.

area_scoring_column =

======== Output Per-Object Classes ========

OPTIONAL

Here you can specify a MySQL table in your Database where you would like

Classifier to write out class information for each object in the

object_table

class_table =

======== Check Tables ========

OPTIONAL

[yes/no] You can ask classifier to check your tables for anomalies such

as orphaned objects or missing column indices. Default is on.

This check is run when Classifier starts and may take up to a minute if

your object_table is extremely large.

check_tables = yes

Hi,

Your properties file looks fine as far as I can tell. This error might be a result of your images not being grayscale. CP and especially CPA are designed to work with single-channel images. If so, try using a ColorToGray module in CP first. If not, let us know.

David