We'd love to have a single step installation, but with the current Matlab version, there will always be a few steps involved.
- Follow the installation instructions: http://www.cellprofiler.org/install.htm
- Be sure to install the MCR before installing CellProfiler
- We recommend that you install the MCR to its default location, since our launch shortcuts assume this.
2. How do I deal with Out of Memory errors, and/or speed issues?
Matlab is not great at memory handling, but there are a few things you can do to help:
- * Turn off, or minimize the use of, display windows. If you don't see a dialog for this when you execute Analyze Images, check your Preferences.
- Add a SpeedUpCellProfiler module toward the end of your pipeline.
- In MeasureObjectAreaShape, turn off Zernike feature calculation. These are time intensive calculations, and especially during assay development, are best turned off.
- If your images are big and you can afford to shrink them, consider using a separate pipeline with Resize and SaveImages to downsample your images.
- Parallelize your image processing by utilizing a computing cluster. We realize this is not an option for everybody, but if so, we do have a dedicated solution (see CreateBatchFiles & CPCluster)
3. When I run the compiled CellProfiler, it quits with a message about a missing component: mclmcrrt78.dll (or similar)
This occurs on Windows machines and is pretty rare, but if it occurs, refer to option #2 on this page about setting your system path variables properly and look at the link at the bottom "How do I set my system path under Windows?" for general instructions.
4. What in the world does this output measurement name refer to: "mean_Bacteria_Intensity_IntegratedIntensity_MaskGreen", or "mean, Bacteria, Intensity_IntegratedIntensity_MaskGreen"?
- The first "mean_" is a bit complicated. If the measurement is from the Per_Image database table, or the Image spreadsheet, then it refers to the mean of that measurement *across all objects in an image*. However, if the measurement is from the Per_Object table, then the output is for a Parent object from a Relate module with the setting for "... generate per-parent means ..." set to Yes, and it refers to the mean of the measurement for all the children across that particular parent object. Then to make it even more complicated, you can have the Mean across all parent objects in an image, of the Mean of the children within a parent (this measurement would be named something like "Mean, <Parent object>, Mean_<Measurement>_...". (We have debated whether to even include these "means of means" as their scientific significance may be of only confusing value, but we have left them in for now).
- "_Intensity_" is the measurement category
- "_IntegratedIntensity_" is the intensity of the Bacteria object, summed across its extent. But note that since this whole measurement name begins with "Mean_", then the single number (in the Per_Object table) is the average of the individual objects' summed intensities
- "_MaskGreen" refers to the input image, which is the Green channel with a Mask applied at some point
5. Can CellProfiler handle my brightfield/phase contrast/DIC image?
CellProfiler was originally developed and optimized for fluorescent images. Automated cell segmentation from transmitted light images is notoriously tricky, not just for us but also for those in the biological computer vision community in general. However, there are some pre-processing steps that may help CellProfiler do the job:
- IdentifyPrimAutomatic will typically be unsuccessful at finding cells since there is not a clear foreground and background as there is in fluorescence images. However, identifying cells may be possible depending on whether the cells are darker or lighter as compared to the background.
- If they are lighter, then you may be able to use IdentifyPrimAutomatic to find the cells, provided you have "Fill holes..." set to "Yes" to fill in the (often) darker interior.
- If the cells are darker, then you'll want to use ImageMath to invert the image to make the cells lighter than the background, and then use IdentifyPrimAutomatic to find the cells. Sometimes, using top-hat filtering in the Smooth module can improve the contrast prior to object identification.
- Often, it is the cell boundary that is darker (due to contrast/phase differences) and not the cell itself. In this case, you will still want to invert the image using ImageMath to make the edges lighter and use FindEdges to find the cell boundaries. Provided the edges form a closed loop, you can then use IdentifyPrimAutomatic to fill in the cell interior.
- The latest version of CellProfiler 1.0 has a module, DICTransform, that provides several algorithms for transforming a DIC image to enhance the brightness of cells relative to the background.
- In transmitted images, obtaining a good illumination correction is important so you may want to try adjusting the microscope settings to get more uniform illumination, if possible, or use CorrectIllumination_Calculate and CorrectIllumination_Apply appropriately. This will make automatically identifying the cells with software much easier.
More to come...
(And feel free to add requests to this thread if you think of a general question that would be broadly applicable to many users)