What Image/Object Processing modules to use to improve nuclei segmentation?

Hi! I am a new CellProfiler 3.1 user. I am trying to measure GFP intensity in the nuclei of cells treated with a compound that induces cell death and abnormal nuclei sizes and shapes. My pipeline overly segments the nuclei, specially the big and odd shaped ones.
I have been reading on the different modules to better segment my nuclei, but I have not found a solution yet. I hope an experienced user here would be able to help me.
I attached two images (DAPI and GFP) and my pipeline if anyone would be so kind to give a try.
Metadata>Regex: ^(?P<Plate>.)__(?P<Site>[0-9]{5})_CH(?P<ChannelNumber>[0-9])
Any help is greatly appreciated! Thanks!

792F_Rotenone_ROS_00009_CH1.tif (1.9 MB)
792F_Rotenone_ROS_00009_CH2.tif (2.1 MB)
ROS_Pipeline_2019_02_27.cpproj (1.0 MB)

Hi Danuta,

Unfortunately I wasn’t able to open your pipeline (maybe some compatibility issue, I’m still using CP 3.0).
There is a few ideas that you might try:

  1. Increase max diameter of objects in Identify Primary Objects module. If not yet, you can also play with “advanced settings” such as “Smoothing filter for declumping”.
  2. Try module Smooth (image processing). In my experience median and gaussian filter methods gave reasonable improvement. You can also try method “Smooth Keeping Edges”, which I never used 'cause it seems to require too mach computational power. But you can have more powerful machine, so please try.
  3. I also have positive experience with Enhance Edges module (Image processing). Outcome from this module is an image which you can subtract from your original image to have a better segmentation. There are several methods in this module, try which gives you the best outcome.

In general, it is impossible to perfectly separate overlapping nuclei from 2D image. I want try to use z-stack to do such segmentation in 3D, but can’t say how successful it would be.

1 Like

Thanks so much for your suggestions!

I had tried 1 and 2. Gaussian filter seems to blur the objects, but I don’t seem to get less split nuclei using it. What I currently have is Erotion>IdentifyPrimaryObjcets>ExpandOrShrinkObjects. I had a friend help me with this step, but I am not sure how these steps would differ from what you suggested in terms of segmentation end result.
I had tried EnhanceEdges, but the result is actually no nuclei end up being segmented (please see photo).
Is there an additional module I have to use after enhancing the edges in order to obtain proper segmentation?
Thanks so much!

Hi Danuta,

These are tricky images!

I uploaded some edits- one major thing I did was change your thresholding method- I think a lot of the issue was that parts of your nuclei weren’t being recognized as “positive”, which was breaking the nuclei into too many pieces.

The other was turning off the automatic selection of the declumping features- you can read more about this in the help for IdentifyPrimaryObjects (especially the settings you can see I switched from “Yes” to “No”). Because you have a wide range of nuclei sizes, I don’t think this is ever going to be perfect, but by tuning these parameters manually instead of automatically, we’re at least decoupling the accepted size of the nuclei from the amount of smoothing used to split them up.

Good luck, and feel free to let me know if you have more questions!


ROS_Pipeline_2019_02_27_BCedits.cppipe (15.5 KB)