#Tue Feb  3 13:36:13 2026
# ==============================================
#
# CellProfiler Analyst 3.0 properties file
#
# ==============================================

# ==== Database Info ====
db_type         = sqlite
db_sqlite_file  = C:\PATH\TO\YOUR\DefaultDB.db # CHANGE ME

# ==== Database Tables ====
image_table   = MyExpt_Per_Image
object_table  = MyExpt_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      = Image_Metadata_Series
well_id       = Image_Metadata_Well
series_id     = Image_Group_Number
group_id      = Image_Group_Number
timepoint_id  = Image_Group_Index

# Also specify the column names that contain X and Y coordinates for each
# object within an image.
cell_x_loc    = Nuclei_Filtered_Location_Center_X
cell_y_loc    = Nuclei_Filtered_Location_Center_Y
cell_z_loc    = Nuclei_Filtered_Location_Center_Z

# ==== 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 that these lists must have equal length!
image_path_cols = Image_PathName_DNA,Image_PathName_Actin,Image_PathName_Tubulin
image_file_cols = Image_FileName_DNA,Image_FileName_Actin,Image_FileName_Tubulin

# CellProfiler Analyst will now read image thumbnails directly from the database, if chosen in ExportToDatabase.
image_thumbnail_cols = 

# Give short names for each of the channels (respectively)...
image_names = DNA,Actin,Tubulin

# 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

# Number of channels present in each image file?  If left blank, CPA will expect 
# to find 1 channel per image.
# eg: If the image specified by the first image_channel_file field is RGB, but
# the second image had only 1 channel you would set: channels_per_image = 3, 1
# Doing this would require that you pass 4 values into image_names,
# image_channel_colors, and image_channel_blend_modes
channels_per_image  = 1,1,1

# How to blend in each channel into the image. Use: add, subtract, or solid.
# If left blank all channels are blended additively, this is best for 
# fluorescent images.
# Subtract or solid may be desirable when you wish to display outlines over a 
# brightfield image so the outlines are visible against the light background.
image_channel_blend_modes =

# ==== Image Accesss Info ====
image_url_prepend = 

# ==== Dynamic Groups ====
# Here you can define groupings to choose from when classifier scores your experiment.  (e.g., per-well)
# This is OPTIONAL, you may leave "groups = ".
# FORMAT:
#   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



# ==== Image Filters ====
# Here you can define image filters to let you select objects from a subset of your experiment when training the classifier.
# FORMAT:
#   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.*'



# ==== 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?  96, 384 or 5600?  This is for use in the PlateViewer. Leave blank if none
plate_type  = 384

# ==== 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

# Provides the image width and height. Used for per-image classification.
# If not set, it will be obtained from the Image_Width and Image_Height
# measurements in CellProfiler.

# image_width  = 1000
# image_height = 1000

# OPTIONAL
# Image Gallery can use a different tile size (in pixels) to create thumbnails for images
# If not set, it will be the same as image_tile_size

image_size =

# ======== Classification type ========
# OPTIONAL
# CPA 2.2.0 allows image classification instead of object classification.
# If left blank or set to "object", then Classifier will fetch objects (default).
# If set to "image", then Classifier will fetch whole images instead of objects.

classification_type  = 

# ======== 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  = MyExpt_

# ======== 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 off.
# This check is run when Classifier starts and may take up to a minute if
# your object_table is extremely large.

check_tables = no


# ======== Force BioFormats ========
# OPTIONAL
# [yes/no]  By default, CPA will try to use the imageio library to load images
# which are in supported formats, then fall back to using the older BioFormats
# loader if something goes wrong. ImageIO is faster but some unusual file
# compression formats can cause errors when loading. This option forces CPA to
# always use the BioFormats reader. Try this if images aren't displayed correctly.

force_bioformats = no


# ======== Use Legacy Fetcher ========
# OPTIONAL
# [yes/no]  In CPA 3.0 the object fetching system has been revised to be more
# efficient. In the vast majority of cases it should be faster than the previous
# versions. However, some complex object filters can still cause problems. If you
# encounter slowdowns this setting allows you to switch back to the old method of
# fetching and randomisation.

use_legacy_fetcher = no


# ======== Process as 3D (visualize a different z position per object) ========
# OPTIONAL
# [yes/no]  In 3D datasets, this optionally displays in CPA classifier a separate
# z slice for each object depending on that object's center position in z. Useful
# for classifying cells from 3D data.

process_3D = False

    