Counting cell nuclei and positive marker expression with strong substrate autofluorescence

C3-Flat 2.tif (513.9 KB) C3-Flat 2.tiff (768.3 KB)
Pipeline ON Count.cpproj (1.0 MB)

Hello Everyone,
I am working (first time) with Cell Profiler on a series of confocal images, showing MSCs on gelatin hydrogel discs. I am trying to tweak the pipeline in order to identify the nuclei in the blue channel and, depending if there is cytoplasmatic marker expression in the green/red channel (no matter how strong or weak), to count how many positive cells I have got.

The problem is, I am having a hard time to get rid of the strong background (the gelatin here has high autofluorescence), which ends up being included in CP analysis, incuding “nuclei” or “marker expression” where in reality there’s none. Additionally, I cannot get a good segmentation when the nuclei are too close to each other, and I don’t really know how to adjust the settings to define them properly.

The results I am getting of course have very high variability, and although I tried different approaches to reduce as much as possible the autofluorescence or to get clear images, these are the best I can get.

I can provide more examples if needed, and I hope anyone can give me some suggestions or advices on how to proceed.

Thank you all.

Hi @Francesco_P,

I have a couple of ideas that might help.

  1. Your pipeline uses the Robust Background method for segmentation, which works best for a mostly black background (not the higher intensity background present in your sample images). An Otsu or Minimum Cross Entropy method may work better.
  2. Keep in mind that IdentifyPrimaryObjects works best at detecting objects with bright centers and dim edges
  3. In general, I think a major challenge for your thresholding is that the autofluorescence of the gelatin often has pixel intensity values that are just as high as your nuclei and are about the same size as a nucleus. The IdentifyPrimaryObjects module attempts to find a single pixel intensity value that can be used as a threshold to distinguish pixels that are part of the object vs background. Since the autofluorescence signal is so bright and of about the same size, it will be difficult to do this on the images as they currently are
    I can think of two approaches to overcome this problem:
  • find a filtering method that effectively discriminates between the autofluorescence and the nuclei (e.g. apply a filter with the Smooth module to reduce intensity of autofluorescence with less effect on nuclei signal or try methods in the EnhanceOrSuppressFeature module to see if you can find something that affects nuclei w/o affecting background or vice versa).
  • Use ilastik to train a machine learning classifier to predict if a given pixel is a nucleus or background. Export these predictions into CellProfiler. Then identify nuclei using the prediction map from ilastik. This is probably the first approach I’d try. A detailed tutorial on how to combine the output of ilastik with CellProfiler is available here:
    And a video tutorial is available here:

Hope this helps!

Dear Pearl,

Sorry for the late reply, as I was struggling initially to test ilastik out. I must say this has ben a great suggestion, as it improved substantially the outcome of the analysis. I’ll be in touch in case I get stuck again, but so far so good.

Thanks a lot!