Having a problem using classifier. The data and images are loaded correctly, and I can fetch cells to classifier, find rules and Score Image without a problem, but when trying to use the Score All, CPA generates the following error:
An error occurred in the program:
IndexError: list index out of range
Traceback (most recent call last):
File “ClassifierGUI.pyc”, line 892, in OnScoreAll
File “ClassifierGUI.pyc”, line 942, in ScoreAll
File “MulticlassSQL.pyc”, line 235, in PerImageCounts
File “MulticlassSQL.pyc”, line 199, in do_by_steps
File “MulticlassSQL.pyc”, line 189, in where_clauses
Upon loading CPA:
Logging level: DEBUG
Creating filter tables.
PROPERTIES WARNING: Unrecognized field “image_path_cols” in properties file
PROPERTIES WARNING: Unrecognized field “image_file_cols” in properties file
PROPERTIES WARNING: Unrecognized field “image_thumbnail_cols” in properties file
PROPERTIES WARNING: Unrecognized field “image_names” in properties file
PROPERTIES WARNING (image_channel_names): No value(s) specified. CPA will use generic channel names.
PROPERTIES WARNING (channels_per_image): No value(s) specified. CPA will assume 1 channel per image.
PROPERTIES: Using default image_buffer_size=1
PROPERTIES: Using default tile_buffer_size=1
PROPERTIES WARNING (plate_id): Field is required for plate map viewer.
PROPERTIES WARNING (well_id): Field is required for plate map viewer.
PROPERTIES WARNING (plate_type): Field is required for plate map viewer.
The properties file:
#Tue Jul 27 10:35:36 2010
CellProfiler Analyst 2.0 properties file
==== Database Info ====
db_type = sqlite
db_sqlite_file = C:\Users\euglab\Desktop\Anna arrested helaoutput/DefaultDB.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
object_id: the object key column from your per-object table
image_id = ImageNumber
object_id = ObjectNumber
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_path_cols = Image_PathName_OGray,Image_PathName_Orig
image_file_cols = Image_FileName_OGray,Image_FileName_Orig
CPA will now read image thumbnails directly from the database, if chosen in ExportToDatabase.
Give short names for each of the channels (respectively)…
image_names = OGray,Orig
Specify a default color for each of the channels (respectively)
Valid colors are: [red, green, blue, magenta, cyan, yellow, gray, none]
image_channel_colors = red, green, blue, cyan, magenta, yellow, gray, none, none
image_channel_paths = Image_PathName_OGray
image_channel_files = Image_FileName_OGray
==== Image Accesss Info ====
==== 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 = ".
group_XXX = MySQL select statement that returns image-keys and group-keys. This will be associated with the group name “XXX” from above.
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
==== 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 = ".
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.
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.*’
==== Meta data ====
What are your objects called?
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
==== Excluded Columns ====
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 ========
You may enter the full path to a training set that you would like Classifier
to automatically load when started.
======== Area Based Scoring ========
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.
======== Output Per-Object Classes ========
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
======== Check Tables ========
[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
Any idea which index is out of range? The images are all converted to grayscale, and since the image viewer is working I figure it’s not a problem with RGB-images.