Identifying punctae in CellProfiler

I need to identify puncta and it works somewhat, but it misses puncta that are close to the background of the cell. Is there anyway to identify objects based on the intensity? Additionally, is there a way to identify areas that have a higher intensity than the surrounding background?
Current pipeline rundown:

  1. Gaussian Filter on image with cells and puncta
  2. Enhance features on image with cells and puncta
  3. Identify primary objects
  4. Filter out object that do not meet size or intensity requirements
    Here’s the pipeline:
    puncta.cpproj (450.5 KB)
    Here’s the image:
    Example: in this image the puncta wasn’t found due to it being too close to the background, is there anyway to identify based on relative intensity?


Did you try the Speckle Counting example from CellProfiler?
It seems to tick the boxes you are asking.
Apologies if this is clear from your pipeline - I didn’t manage to open in (Apple issues).

Yep, thats where I adapted my identify objects module from.
Thanks for inpu tho!

The illumination correction can also be adapted to remove the background variability. But if you are still struggling, some of the machine learning algorithms can do a great jobs.


Ok, good.

Just in case, here are two other tools for spot detection, not in CP though:



Re. “a way to identify areas that have a higher intensity than the surrounding background?” this depends on the level of automation you need. Generically, if you smooth the image and threshold it (e.g. w. Otsu 3-class in CP), even manually, that should allow you to identify such areas straight away. Don’t know if this helps.


I’m trying CPA right now

CellProfiler Analyst can help when you’ve identified objects and need to filter them for being correct or incorrect, but if the CellProfiler pipeline is missing objects entirely that you care about, CellProfiler Analyst can’t rescue them.

So, I think the machine learning tool suggested by Lee would be something more like ilastik. I’ve not tried it for spots but it’s a great tool.

back to the CellProfiler pipeline, I agree three class thresholding can help (because you want to ignore two classes: image background, cell background which is brighter). However, if your cell background is quite variable then per-image illumination collection without much smoothing may do the trick to reduce the cell background.

CPA seems to be working pretty well for this, thank you for developing it. I just adjusted my findprimaryobjects module to find a lot of false positives and filtered them out using CPA

1 Like

Oh, super. Glad to hear that.