Question regarding counting tertiary objects

I have used the “Examplehumanimage” pipeline as a template to examine dapi and cytoplasmic staining. I would like to measure number, size and intensity of cytoplasmic staining. I am pretty happy with how the pipeline has identified each stain and determined the cytoplasmic region. However, the cytoplasmic or tertiary object analysis includes nuclei or objects which lack cytoplasmic staining, leaving an outline of the dapi staining. This does not occur with the sample pipeline using the human images. What am I doing wrong?
Thanks
51muskie






Hi,

If you need objects filtered out by intensity in the Cytoplasm, then you should add a FilterObjects module after the MeasureObjectIntensity module. I attached a simple example of this taken from the ExampleHuman.cp in which I am filtering out all but the brightest cytoplasm objects. This filtering did not happen in the ExampleHuman pipeline simply because it wasn’t needed!

You will have to adjust the minimum brightness threshold in this scheme, but you can point your cursor at one of the images to get a sense of the pixel intensity values and choose this empirically or you can get more objective thresholds by temporarily using DisplayDataOnImage or DisplayHistogram on the intensities to get a sense of the (hopefully) optimal threshold. And also note that post-filtering you will need to re-add any measurement modules that you want to be calculated from only the filtered set of objects.

Hope this helps!
David
ExampleHumanBright.cp (14 KB)

David,
I am confused. Why should another image (nuclei staining, in your pipeline cropred) have anything to do with what cytoplasm is identified in the filterobject?
Chad

Hi Chad,

David simply modified a pre-existing example pipeline by adding FilterObjects to demonstrate how the module works. In this instance, all images were cropped to the same size using the nuclei image as a guide; it could just as well have been another image.

Where the CropRed image comes from is not important in this case; the take-home point is that the intensity used for filtering comes from the cell stain image.

Regards,
-Mark

Mark
I have tried repeatedly Objectfilter with different thresholds to try to get cellprofiler to recognize the positive cell. Can you recommend something.
Thanks
Chad







make.cp (11 KB)

Hi Chad,

I believe the problem you are encountering stems from fact that there is always a secondary object that corresponds to each primary object, even if no staining is found using IdentifySecondary. This is why you see rings/outlines where there is no positive staining: the cell tries to grow outwards but can’t and therefore overlaps completely with the original primary object. But since the outline is still present, the intensity of these objects still evaluates to a positive number even though these objects shouldn’t exist, and filtering becomes tricky.

The solution therefore is to filter out these outline secondary objects beforehand. You can do the following (see attached pipeline):

  • Find the positive stains as a primary object. IMPORTANT NOTE: You must use the same threshold settings (method, correction factor, lower/upper limit) for this module as you do for the IdentifySecondary module to ensure that the detection is identical. Also make sure to adjust the settings to remove false positives.
  • Use RelateObjects to establish which positive stain primary regions (“parent”) overlap with the cell regions (“children”).
  • Use FilterObjects to remove cells that do not overlap with a positive stained region (i.e, a no parent), and also remove the associated nuclei.

You can then use these new cells/nuclei to create the cytoplasm.

Regards,
-Mark
make_MAB.cp (14.5 KB)