Detecting secondary object before primary objects


I have images of a fluorescence cytoplasmic protein in cells. In each image, I want to identify the whole cells and the organelles inside the cells; the organelles are darker because they don’t contain the tagged protein.
As I understand it, the traditional pipelines identify the primary objects first, i.e. the organelles, and then identify the secondary objects - the whole cells. However, identifying the organelles is a hard task because of differences in contrast between organelles and cytoplasm in different cells (there are different expression levels of the tagged protein). It would probably be easier to identify the cells first and then changing the contrast for each cell when trying to identify the organelles that it contains.

Are there modules that could be used to create such a pipeline, which identifies secondary objects first and then identifies primary objects contained in them?

Many thanks!

Hi Rotem,

There is nothing that precludes you from identifying the cells as primary objects first, as such. However, the main reason we go the opposite route is that the cells are often touching or vary in intensity such that it is invariably better to use an organelle which is high in contrast and well-separated from its neighbors. This is why the nucleus is the typical organelle of choice for the primary object. Do you have the option of using an DNA stain in your assay?

On the other hand, if your cells are well-separated, identifying the cells as the primary object may work fine. Then you can identify the organelles as another primary object (perhaps masking the image beforehand with the cells using MaskImage, and then using per-object thresholding in IdentifyPrimaryObjects), and use RelateObjects to establish the relationship between them.

Perhaps if you post a sample image set of channels, we can assess the problem better?


Hi Mark,

Thank you very much for replying.
I managed to identify the cells as primary objects and then cropped them and used the cropped image as the input for IdentifyPrimaryObjects where I identified the organelles per object.
I didn’t use MaskImage though. Do you think it might work better if I used that instead?

I attached one of the images. There’s only one channel (actually there are more but I won’t be able to use then to improve the analysis of this channel). The “organelles” are presumably the darker patches inside the cells.

Thanks again,

The cropped image serves the same purpose as MaskImage, so if you are detecting your organelles accurately, then you are in good shape.