Low cytosol intensity causing bad cell segmentation


I would like to segment yeast cells by first segmenting the nuclei and then propagating to the overall cell. I applied RescaleIntensity module but still the nuclei intensities are so much higher than the cytosolic intensities. For IdentifySecondaryObject module I am using Global Otsu with 3 classes, assigning middle intensity to foreground. Sometimes, the segmentation results include background. I also applied a FilterObjects module but that caused downstream error because of the 1:1 relationship. I would appreciate if you can take a look at our images and pipeline attached.



CP_Otsu3Classes.cppipe (17.6 KB)

Hi Nil,
I have a couple of thoughts-

  1. There’s a significant intensity gradient across all of your images; illumination correction seems like a really important step for you, both before segmentation and before measurement.
  2. We recommend you don’t segment on rescaled images.
  3. You had pretty high threshold correction factors set on both of your Identify modules, which were presumably why they were performing badly on dim images.

Here’s a modified version of your pipeline that takes those changes into account- of the 24 images you sent, the only one that doesn’t perform well (to my eyes anyway) is the one that’s completely empty, which you could probably discard manually or with either a MeasureImageQuality + FlagImages module or by setting a minimum threshold value in IdentifyPrimary. Good luck, and don’t hesitate to reach out if you have more questions!

CP_Otsu3Classes_revision.cppipe (25.0 KB)

Hi Beth,

Thank you very much for your help. Illumination correction is very useful. However, I still need to figure out how to use another module.

I would like to apply a size threshold for my secondary objects. Once I have my secondary objects, I measure the Cell_AreaShape_Area and apply FilterObjects, I would like to get rid of the cells larger than 3000 in this measure specifically. I know I should use a RelateObjects module but none of the relationships solves the warning of “1:1 relationship is not satisfied, might cause downstream analysis”. As expected, I obtain only nucleus segmentation in the outlines output. I would like to get rid of the corresponding primary objects after the filter. Attached is my new pipeline. Hope this is enough.


CP_Otsu3Classes_FilterSize.cppipe (22.0 KB)

Sure; you just need to do two things:

  1. To get rid of the nuclei associated with cells of the wrong size, use the “relabel additional objects” setting inside FilterObjects- then you can set the Nuclei to be called Nuclei_filtered or something like that (or set what you’d previously called Nuclei to Nuclei_pass2 or something like that so that at the end you have just and Nuclei as the output of this module, that way you won’t have to change all of your measurement settings)

  2. In ExportToDatabase, export only the objects you care about- in this case Cells and Nuclei_filtered. It may not make the error message go away (as you can see in the screenshot), but you should still have your 1:1 relationship intact for those two objects.

RE: Your email-
The segmentation image you sent (below) seems actually pretty reasonable, though it’s hard to tell for sure what the issue is since it’s really blown out (is it that you think the boundaries should be bigger? You can adjust that by changing the IdentifySecondaryObjects threshold or using ExpandOrShrink objects after the fact). Can you explain specifically what the problem you have is?