Counting DAPI nuclei for SMAC responsive fibroblast

Hi all!
I’m wracking my head on how to count the nuclei, stained with dapi, that are included in the area of the green stained fibroblast smac+. I have two image for field: one is the dapi image with all the nuclei and the second one is the image with all the fibroblast smac+. I tried to create a pipeline that polish the smac+ image, that is really clumped, and use the polished image as a mask to apply over the image containing all the DAPI nuclei. With this method i managed to select and count only the nuclei that i’m interested in. But… there is always a “but”… The image is so clumped and with cells on different levels that the morph and threshold modules sometimes miss the “lighter” colored cells and, if i try to lower the threshold, cp take in too much “noise”.
fibroblastGREEN-DAPI_counter.cppipe (24.0 KB)

Here is an example, found on google, of my fields:



Maybe you can suggest other approach to this counting procedure or help me adjust my pipeline!

Thank You for the help!


Can you upload one or two of your actual images, particularly maybe one that works well and one that does not? We’re much more likely to be able to help if we can see the pipeline “in action” on real images rather than random ones.

Thank you for your reply but, for publishing policy, i can’t upload image on other websites until the work is published.The images that i published are pretty close to the images that i have.

An image like this one, but without the DAPI nuclei that are in another image, work pretty well with my pipeline:

Instead, the other 2 fibroblast image that i uploaded in the original problem give me problems. Taking the second one as example, the pipeline correctly work on the cell coloured strongly, but miss the lighter one. How you can see the image has some green dots “noise” that i cleared out with the morph (erode and open) and threshold modules on my pipeline. I can’t find a way to still clear the noise without cancelling the scarcely colored cells.

I am wondering if this could also work the other way around:

  1. use IdentifyPrimaryObjects to segment the DAPI image and receive all nuclei as objects.
  2. measure the fluorescence intensity on the SMAC+ channel within the DAPI regions.
  3. use the filter module to select only those nuclei which exceed a certain average intensity in the SMAC channel.

If you expect a high variance in the SMAC channel between images you can also base this filter on the output of “measureimageintesity” derived from the whole SMAC image, e.g. use the value of “LowerQuartileIntensity” or a fraction thereof as a minimum