Ver 1.0.4684 vs 1.0.4828 same pipeline different cell counts




I recently tried out the newest version of cp (1.0.4828) and found that a pipeline I’ve been using since ver 1.0.4684 is giving me different cell counts on the same set of images. I’m using the IdentifyPrimAutomatic module to find cell nuclei in a dapi stained image and then collecting measurements.

The differences are not alarmingly large and I can’t say at the moment which version is better, but I did notice a difference and wonder what has changed.

Is there a change log that’s publicly available?



Hello John,
There is a version text file (version.txt) that is included in the release software. Each time a new version is released, we add the new modifications to the file. You may be identifying a different number of objects using IdentifyPrimAutomatic because a setting has changed in the Smoothing methods. The former ‘Median’ setting in v.1.0.4684 and earlier, used ‘Gaussian.’ We have since corrected this mistake and added ‘Gaussian’ as an additional setting. You should be able to use the Gaussian setting in the newest version of CellProfiler to achieve the same results.

Please let me know if you are still having problems.



Hmm, I didn’t see version.txt in the CP Developer’s download, but it is in CPCluster’s download. This doesn’t change Martha’s answer at all, but FYI, here are the most recent changelog entries:

Version 1.0.8418

  • Improved Speed of CellProfiler (CPSmooth)

  • Normalized Zernike measures by area

  • Fixed pulldown (*/.mat) when loading or saving Pipelines.

  • Fixed ‘Median Filtering’ in CPSmooth, IdentifyPrimAutomatic, and CorrectIllumination_Calculate to use median filtering. (Previously, Gaussian Filtering was used.) Also, Gaussian Filtering is now an option.

Version 1.04684

  • Fixed bug for loading a pipeline from a previous version





Thanks for the speedy response. I’m finally cycling back around to this issue. I’m not seeing where to specify a smoothing kernal though I am specifying a smoothing size of 30. I see the text box with ‘Enter the following information…’ Is that where I should put the values similar to the previous version (whatever they were…)? I’m using Otsu’s method to find the nuclei. I’m not smoothing the images before applying the IdentifyPrimAutomatic. Here is the pipeline text output of my settings that module:

Module #2: IdentifyPrimAutomatic revision - 12
What did you call the images you want to process? dapi
What do you want to call the objects identified by this module? Nuclei
Typical diameter of objects, in pixel units (Min,Max): 5,150
Discard objects outside the diameter range? Yes
Try to merge too small objects with nearby larger objects? Yes
Discard objects touching the border of the image? Yes
Select an automatic thresholding method or enter an absolute threshold in the range [0,1]. To choose a binary image, select “Other” and type its name. Choosing ‘All’ will use the Otsu Global method to calculate a single threshold for the entire image group. The other methods calculate a threshold for each image individually. “Set interactively” will allow you to manually adjust the threshold during the first cycle to determine what will work well. Otsu Global
Threshold correction factor 1
Lower and upper bounds on threshold, in the range [0,1] 0,1
For MoG thresholding, what is the approximate fraction of image covered by objects? 0.2
Method to distinguish clumped objects (see help for details): Intensity
Method to draw dividing lines between clumped objects (see help for details): Distance
Size of smoothing filter, in pixel units (if you are distinguishing between clumped objects). Enter 0 for low resolution images with small objects (~< 5 pixel diameter) to prevent any image smoothing. 30
Suppress local maxima within this distance, (a positive integer, in pixel units) (if you are distinguishing between clumped objects) Automatic
Speed up by using lower-resolution image to find local maxima? (if you are distinguishing between clumped objects) No
Enter the following information, separated by commas, if you would like to use the Laplacian of Gaussian method for identifying objects instead of using the above settings: Size of neighborhood(height,width),Sigma,Minimum Area,Size for Wiener Filter(height,width),Threshold /
What do you want to call the outlines of the identified objects (optional)? outs
Do you want to fill holes in identified objects? Yes
Do you want to run in test mode where each method for distinguishing clumped objects is compared? No

Also, I was trying to verify what version I was using and noticed that the version number in the CellProfiler> Help > Getting Started window lists the version as 1.0.4684 while the top of the main CellProfiler.m file says Revision: 4827.

Thanks for your help, John


Hi John,
I spoke with one of our developer’s (who recently adjusted several features in CPSmooth and the related modules, including: IdenifyPrimAutomatic and Smooth). The new IdentifyPrimAutomatic now smooths the image before it finds the local maxima and identifies objects. You can prevent the module from smoothing by setting the ‘Size of smoothing filter’ =0.

Please let me know if there is anything else we can help you with.



Hi Martha,

Thanks for the reply. Okay, so smoothing was changed within IdentifyPrimAutomatic and I don’t have control of that from the gui except to turn it off (or look under the hood). That’s fine, I’m mainly trying to track down why my numbers changed from early to later versions. Bug fixes are good, but it’s a little scary to think changes are being made to something as fundamental as the segmentation algorithm and it’s not so clear that this is being done. Why don’t you folks post your change log somewhere else beside within (or sometimes not) the download. How 'bout online?

Thanks again, John


Thank you for your suggestion. I will post the version notes on the download page and included it in the CellProfiler download files. A new release will be available soon.