Colocalization analysis (done cell by cell)

Hi, I am just starting using the Cellprofiler, but unfortunately I am starting not with the easiest task… Previously I was doing this analysis manually by ImageJ, but now I want to perform a study with many time points, which brings me to the point when manual analysis takes too much time and effort.

What I have:
Nucleus labeled by DAPI
Cell membrane (in most cases) labeled by CD44
Golgi labeled by TGN46
And a fluorescent Shiga toxin (Stx)

What I need to find:
How the colocalisation between Stx and TGN46 changes during time (The toxin gets pretty fast into the cell and is transported to the Golgi and then further to ER). I have images taken each 5 minutes.
Main problem: Stx bind only to certain cells in the cell culture (around 20-50%). Therefore if I do the analysis on the whole image, I include also these Stx negative cells, which normally I would omit from analysis. Second problem: the amount of Stx which is bound to the cells can vary highly, so the best way calculate how much of the toxin is transported into the Golgi, is to find the proportion (%) between Stx colocalising with TGN46 and total Stx associated with the cell.

I am not sure if I explained it understandably…
I would like to know if such analysis in cell by cell manner for colocalisation of two signals would be possible by CellProfiler? I have been trying to make a pipeline for this, but I have not succeeded yet. Could you suggest what modules should I use and in which order?

Hi Simona,

One approach to do this would be something like the following:

  • IdentifyPrimaryObjects to find the nuclei.
  • IdenitfySecondaryObjects to define the cell body from the CD44 stain and the nuclei objects
  • ApplyThreshold to detect the golgi from the TGN46 stain.
  • ApplyThreshold to detect the Stx stain.
  • MaskImage to mask the TGN46+ image with the Stx+ image. The result is a new binary image representing the areas positive for both TGN46 and Stx (i.e., colocalized)
  • MeasureObjectIntensity using the cell as the object and the TGN46/Stx as the image.
  • MeasureObjectIntensity using the cell as the object and the Stx as the image.
  • CalculateMath using Division as the operation, and the cell as the object and Intensity as the category for both operands. For the 1st operand, use the IntegratedIntensity of the TGN46/Stx image as the measurement. For the 2nd operand, use the IntegratedIntensity of the Stx image as the measurement.This will give a ratio of the area occupied by the TGN46/Stx vs the Stx only

You might be wondering why I’m using an intensity measurement here. In this case, we are taking the integrated (i.e., summed) intensity of a binary image, which is equivalent to the number of pixels which are 1, which in turn is the area occupied by these pixels.

Hope this helps!

Many thanks Mark!

I think the pipeline is working, I ran the test and it went smoothly, now I am running the analysis and will see if it is working for real :smile: then I am planning to add some more measurements, but this one was the most important (and seemed the most difficult to figure out for me, but you are genius :smile: your idea is simple and straightforward :smile: ) Thanks!



I am very happy that the pipeline is working! I got my data for the first time point, and it is what expected :smile:

One small issue: is it possible to overcome this error message:
Traceback (most recent call last):
File “cellprofiler\pipeline.pyc”, line 309, in run
File “cellprofiler\modules\measureobjectintensity.pyc”, line 312, in run
File “scipy\ndimage\measurements.pyc”, line 382, in sum
File “scipy\ndimage\measurements.pyc”, line 303, in _stats
ValueError: zero-size array to ufunc.reduce without identity

It appears because in some cells there is no signal for Stx, so of course the integrated intensity value is 0. This is not a big problem, since I just need to press “proceed” and it calculates further (gives none value for the measurement). Then there is a second error message during Maths due to this None value. So I need to press “proceed” twice almost during each cycle. It would be nice to leave the computer to do the analysis over night, but in this case a need a monkey for pressing the “proceed” button each several minutes :smile: any suggestions/monkeys? :smile: