Problems identifying nuclei in tissue sections




I have mouse tissue sections that I am trying to analyze. I stained the tissue with DAP, BrdU, and EdU. I would like to know the percentage of nuclei that contain BrdU, EdU, or both. I have had problems trying to identify nuclei in my sections however. I tried using a correction illumination in order to account for uneven staining but instead of using many images, I only used one image and applied it to the same pipeline. This resulted in all of my nuclei becoming very dark, however it made it easier to identify the nuclei. Can anyone help me understand why this occured and whether there is a better way to identify the nuclei in my sections? I added representative images and the pipeline.
MouseTissuePipeline.cpproj (406.1 KB)


Hi @aakbarali, your tissue image is challenging to segment given the density and overlap between nuclei. We can make an attempt to segment these nuclei using CellProfiler and then evaluate its performance by referring to a ground truth segmentation. I’ve gone ahead and made ground truth (to the best of my ability) on a small crop of your image (Please refer to this blog post for more info).


The illumination correction needed to be reconfigured in your original pipeline. Let’s compare the result from the IdentifyPrimaryObjects module to the ground truth…


Here the green is the hand annotated nuclei and the magenta is the cellprofiler output. CellProfiler has more variablity when defining the boundaries around nuclei, but it has done a decent job of identifying and separating individual nuclei. What do you think? I think with nuclei as dense as these, there will always be some rate of error.

We can also use the ground truth to evaluate the Brdu/Edu questions. I assumed Green was Edu and Red was Brdu (but if this is incorrect just reverse the labels). We’ll need to classify nuclei as Brdu or Edu positive. A simple way to do this is to use the Mean Intensity measurement for each nuclei. Looking at a histogram of Brdu or Edu shows that the distributions between CellProfiler and ground truth are reasonably similar.



An Otsu threshold can be used to determine the line that separates a negative nuclei from a positive nuclei. Outlining positive cells in each channel allows us to visually verify the performance of the threshold, which both look reliable. Here the ground truth nuclei are outlined:

We can then count cells and derive cell counts and percentages:

CellProfiler GroundTruth
Total Nuclei 75 81
Brdu+ 22 24
Edu+ 33 34
Brdu+/Edu+ 20 24
Percent Brdu+ 29% 30%
Percent Edu+ 44% 42%
Percent Brdu+/Edu+ 26% 30%

What’s more is that it may not be necessary to have single cell measurements to arrive at these percentages. Taking a whole image approach, and comparing area overlap of regions positive for DAPI, Brdu, and Edu, we arrive at nearly the same numbers.

Whole Image Analysis
Percent Brdu+ 32%
Percent Edu+ 40%
Percent Brdu+/Edu+ 25%

In conclusion, it looks like CellProfiler will be able to help you quantify the aspects of biology you are interested in, but in case other images you have are more difficult to segment (or other parts of this image, even), then circumventing nuclei segmentation and pursuing a whole image analysis could be the best path for you.

All the work shared here and the pipelines I created are in this zip file: (5.4 MB)



Hello @karhohs
Thank you for the work that you did. It does seem like the automatic identification isn’t too bad. I think that I will be able to go ahead with analysis.

Thank you!