Positive labeled cells and positive unlabelled ones

Hello Cellprofiler team,

I have several pictures with cells that have their nuclei labeled with DAPI, the cytoplasm with a different dye (Qdots) and another dye (Alexa 488) is present in some spots inside the nuclei. And I’m trying to get a pipeline which is capable of counting: number of labeled cells, number of labeled cells that contain the Alexa and number of unlabelled cells that also contain the Alexa. I’m not sure how to interpret the results given in the Default excel file, because I think it’s saying there are a lot of Alexa spots (much more than nuclei) and I would like it to associate the Alexa to the respective nuclei.

I also saw that in a simple pipeline (Load images, Resize, IDprimaryautomatic, ID secondary and Export to excel) just to count the number of labelled cells, the final results are always as many labeled cells as the number of nuclei when it was supposed to decrease in time.

I send two links for the folders with pictures and pipelines of both cases I referred here. I hope that you can take a look and find what I’m doing wrong. The first link is for the first decribed pipeline (three labels).



Thanks in advance!

Hi Andreia,

Some comments about your pipelines:

Pipeline #1: I recommend the following:

  • For the Resize modules, use the same name for the output image as for the input image. This will save on memory since your images are so large. Also, change the method to Bilinear since it is more accurate.

  • Remove the IdentifySecondary module altogether. Since the spots you are interested in are within the nucleus, detecting the cell around it is not gaining you anything of value for this purpose.

  • Add a Crop module after the IdentifyPrimAutomatic module. Crop the Alexa image, and use the Nuclei as the shape to crop into (by selecting “Other” and typing “Nuclei”). This is a necessary step before the next part.

  • Since I’m not familiar with what counts as a positively stained cell (I see some manner of spots in all the cells), you will need a way to highlight the spots within the nuclei on a per-nuclei basis. Therefore, in the 2nd IdentifyPrimAutomatic module, use the cropped image created by the step above and use per-object thresholding. Robustbackground PerObject may work well. If the threshold is too high/low, use the threshold correction factor to adjust it.

  • In Relate, you want to relate the children objects (prolif) to the parent objects (Nuclei/label). You have these settings reversed.

  • In ClassifyObjects, the object to be classified based on the number of children should be the Nuclei/label, not prolif.

As far as the Excel file goes, you want to look for the following columns in the per-image file:
Count_Nuclei: The number of nuclei/cells found
ClassifyObjects_*Bin1ObjectsPerBin: The number of cells in the image which have no children (i.e., no labeled spots)
ClassifyObjects_*Bin2ObjectsPerBin: The number of cells in the image which have at least one child (i.e., labeled spots present)

Pipeline #2: Since you have tiled the images together, I cannot analyze them since they need to be separate images. My guess is that for the reasons above, once you set the modules to identify the correct objects in the correct images, and adjust the thresholding accordingly, you may find the trend in your data that you are looking for.


Thanks Mark!
I’m testing the new pipeline and it’s working. The thing about the label (Qt 585) that I was trying to identify with IdentifySecondary module is that in a co-culture, where some cells have that Qt585 in the cytoplasm and some cells don’t have it, I would like to count how many cytoplasm labeled cells are proliferating as well as how many cytoplasm unlabeled cells are proliferating.
Do you think is the best to do it in separate pipelines? Like one pipeline identifies the number nuclei (DAPI) that are proliferating (Alexa 488) and the other pipeline identifies the number of labeled cells (Qt 585) that are also proliferating.


Hi Andreia,

Thanks for the clarification. I think you’re safe placing both operations in the same pipeline, as long as you’re sure that the IDSecondary module is detecting things correctly. Any measurements you take will appear as additional columns, one row per cell, so it’s probably in your best interest to have both in the same pipeline.