Advanced Configuration of DCP#
We’ve tried very hard to make Distributed-CellProfiler light and adaptable, but keeping the configuration settings to a manageable number requires making some default assumptions. Below is a non-comprehensive list of places where you can adapt the code to your own purposes.
Changes you can make to Distributed-CellProfiler outside of the Docker container#
Location of ECS configuration files: By default these are placed into your bucket with a prefix of ‘ecsconfigs/’. Alternate locations can be designated in the run script.
Log configuration and location of exported logs: Distributed-CellProfiler creates log groups with a default retention of 60 days (to avoid hitting the AWS limit of 250) and after finishing the run exports them into your bucket with a prefix of ‘exportedlogs/LOG_GROUP_NAME/’. These may be modified in the run script.
Advanced EC2 configuration: Any additional configuration of your EC2 spot fleet (such as installing additional packages or running scripts on startup) can be done by modifying the userData parameter in the run script.
SQS queue detailed configuration: Distributed-CellProfiler creates a queue where unprocessed messages will expire after 14 days (the AWS maximum). This value can be modified in run.py .
Changes that will require you to make your own Docker container#
CellProfiler version: We try to keep Distributed-CellProfiler up to date with the latest stable release of CellProfiler, but in case you want to use your own Dockerized version of a different CellProfiler build you can edit the Dockerfile to call that CellProfiler Docker instead.
Alarm names or thresholds: These can be modified in the run-worker script.
Frequency or types of information included in the per-instance logs: These can be adjusted in the instance-monitor script.
CellProfiler command line flags: These can be modified in the cp-worker script.
Log stream names or logging level: These can be modified in the cp-worker script.
Changes to CellProfiler pipeline to use Distributed-CellProfiler with RunCellpose plugin#
Distributed-CellProfiler version: At least CellProfiler version 4.2.4, and use the DOCKERHUB_TAG in config.py as
bethcimini/distributed-cellprofiler:2.1.0_4.2.4_plugins
.**Custom model: If using a custom User-trained model generated using Cellpose, add the model file to S3. We use the following structure to organize our files on S3.
└── <project_name>
└── workspace
└── model
└── custom_model_filename
RunCellpose module:
Inside RunCellpose, select the “custom” Detection mode. In “Location of the pre-trained model file”, enter the mounted bucket path to your model. e.g. /home/ubuntu/bucket/projects/<project_name>/workspace/model/
In “Pre-trained model file name”, enter your custom_model_filename