Identify objects in nuclei with different fluorescence intensity

Hi everyone,
I’m quite new to CellProfiler and have an issue with the results of my pipeline.

I have one-channel microscopy images with fluorescent signal. First I detect the cell nuclei and filter them by intensity and shape to prevent detection of mitotic or apoptotic nuclei. This works fine
Then I want to detect small dots within my nuclei that show brighter fluorescence than the overall nucleus signal. And here I get the problem because the overall intensity differs between the nuclei in one image. I have brighter and dimmer nuclei.
I upload a picture where you can see the different intensities and only the nucleus on the right site of the image has the real dots. In the right picture I used the overlay outlines module to show what gets detected and in the bright nuclei on the left I get falso positives.

In the Identify primary objects module I use the advance settings and the Otsu thresholding method. If I set threshold bounds that the dots in the dimmer nuclei are detected I get many false positives in the bright nuclei (because here the condensed DNA is false detected).
I think the biggest problem here is that the dots I want to detect show brighter fluorescence than the surrounding nucleus signal but their measured intensity could be lower than the background fluorescence signal of a bright nucleus in the image. And because the threshold levels in the identify primary objects module are set for the whole image I could not find out how to detect the right dots without the false positives. I also use the filter objects module after detection for intensity and shape which helps a little as the condensed DNA often is line-shaped and I can get rid of it by filtering by eccentricity.

It thought this must be a common problem as fluorescence intensity often varies between nuclei but could not find help in the forum so please let me know if you have any idea how to overcome this problem.

Is there a possibility to normalize the intensity of my nuclei prior to detecting the dots or to set thresholds for single objects and not the whole image?

Thanks in advance


Hi @ChristinaC,

Here are few of my suggestions based on your query.
Before segmenting from the dots from the Nuclei channel, you can try to Enhance the dots using speckle option in “EnhanceSuppressFeature” module.
To adjust the thresholding when the intensity is not even all through the image, you can try using Adaptive instead of global in Threshold method option. This option enables the thresholding based on the local background based on the block size that you are giving.
If you can upload a sample image & pipeline we could help you better.



Hi Lakshmi,
thanks for the quick reply. I already had Enhance speckle in my pipeline and use the adaptive threshold. So I will upload my pipeline and sample image. Usually I use directly my .czi time series but I cannot upload it here so I saved one single image as ome.tif and changed the pipeline that the image can be loaded.
Plate3-P5-C04.ome.tif (3.9 MB) pipeline test.cpproj (713.7 KB)

Please let me know any idea you have.
Thanks and regards,

Hi @ChristinaC,

I checked your pipeline & sample image. I tried changing the correction factor (reduced it) which made better but not very accurate. Even the Sauvola which added one object more nothing much. Tryout with these changes in the pipeline attached.
I think its hard to get everything in the bright nuclei. Try out with other images as well. pipeline test_lb.cpproj (696.2 KB)


Hi @lakshmi ,
thanks for the input. I tested the pipeline with the changes you made on other pictures too and It worked better. I decided to exclude the really bright nuclei from my analysis (this does make sense with the biological background) and then it worked fine. I haven’t thought about the Sauvola method before but after reading in the module help this should have been the method of choice for detection of the small dots.
Thanks again for the input and your help.