Coloc2 fiji plugin

Hi everyone
I have 3 channel images (channels 1, 2 and 3) and I want to calculate the colocalization betweeen the two channels first, ie 1 and 2. Is there a possibility that coloc2 plugin can build a new colocalization channel of channels 1 and 2? Because afterwards I would like to calculate the colocalization between the new colocalization channel and the channel 3 of my image. Is this possible with the coloc2 fiji plugin?
Thank you in advance
Xingi Evangelia

You should define what you mean by a colocalization channel, because it’s not trivial to define colocalization on a pixel-by-pixel level.

Take these two (false-colored) images for example:

and their red/green merge:

  • You might agree that the pixels at the bottom right corner are colocalizing, but how about the darkest of the three dots, is it still a significant signal?
  • And how about the pixels on the bottom left, that both contain varying intensities of one or the other channel.
  • And finally, how about all the black pixels in the merged image: some might consider them colocalized because they contain exactly the same amount of signal in both channels.

For these reasons, quite some work has gone into the calculation of various coefficients, see the Colocalization page on the wiki.

Moreover, if you want to do object-based colocalization on binary images, Coloc2 will not do this, the Image Calculator might be a better tool in this case.


Hi Jan
thank you for your reply. I am interested in pixel intensity spatial correlation analysis with the automated Costes algorithm and the coefficients that I will use are the Mander’s M1 and M2. In order to explain my question, I will give you an example: let’s say that channels 1 and 2 are two proteins which interact and I want to check if this protein complex is located in the nucleus (channel 3). How can I do this calculation using Coloc2?
I hope I have made myself clear now
thank you in advance
Evangelia Xingi

1 Like

Hi Evangelia,

If your nuclear marker is e.g. DAPI, measuring colocalization between the DAPI molecules and your proteins is probably not what you want to do (unless you want to measure interaction between DAPI and your protein).

Since the nucleus is a big volume (ideally, when working with 3D data) compared to your spot-like (simplified) protein molecules, a better approach would be to create a nucleus segmentation and check whether (or what percentage of) your proteins are inside or outside of that segmented volume.

So while Coloc2 might be useful for measuring the colocalization of your channels 1 and 2, I’d recommend thinking of a more object-based approach to determine the localization inside/outside the nucleus. If your protein signal is spot-like, you can use spot detection and subpixel localization, for example.

Hi Jan
could you please specify which plugin you recommend me to use for the localization in the nucleus? I have tried the “JACoP imageJ plugin for object based methods”, but I have to manually adjust the thresholds, which I do not like.
thank you
Evangelia Xingi

One other tool you could try is Icy’s Colocalization Studio plugin. I don’t know Icy too well, so I am not sure whether it would be suitable for your use case, but might be worth a quick look.

We also have a scientist here at LOCI, @etadobson, investigating improvements to, and unification of, Fiji’s colocalization tools, but it will be awhile before anything concrete emerges for users to enjoy.

1 Like

I’m afraid that all solutions using a dedicated colocalization plugin (i.e. Coloc2, JACoP, or the Colocalization Studio in Icy) are targeted at comparing the localization of small objects of similar size.

To my knowledge there’s no single plugin that does that out of the box. For quantifying the localization of small objects with regard to few big objects, i.e. spot-like structures and nuclei (without having seen your images), I’d recommend a workflow along these lines:

  • Segment your nucleus channel (e.g. by automatic global thresholding, or more elaborate methods such as machine learning)
  • Calculate a (3D) distance map (a.k.a. Euclidean Distance Transform) using Plugins > Process > Exact Signed Euclidean Distance Transform (3D)
  • Segment your protein objects (either by thresholding, optionally followed by watershed segmentation; or by finding local maxima, Process > Find Maxima…)
  • Analyze > Set Measurements… to configure measurement of Mean gray value and redirecting to your distance map image
  • Analyze > Analyze Particles… to get a measurement for each of your (protein) objects

This will result in negative values for objects outside the nucleus, and positive values for objects inside the nucleus. Like this, you should be able to do statistics on those measurements to get the percentage of “colocalization” between proteins and nuclei.


Hi @evangelia,

forking from the excellent suggestion from @imagejan an object based method in the first place might be the best option. However this means taht you need to achieve a reliable segmentation of your structures of interest (which will be mostly easy for the nuclei but not necessarily for your other stained structures). Regarding the segmentation (if you are not already familiar with it) potentially here some considerations.

An additional approach after successful segmentation might be using the Binary Feature Extractor. This tool also just considers 2 channels at a time but with the result of the first object comparison you can make a second comparison with your 3rd channel. This might help you in extracting the objects which are double and triple positive (or e.g. double positive inside the nucleus). Thus, you might get numbers and locations of those objects.

As an additional idea, you could use this output image of the double/triple positive objects as mask/ROI (directly possible in Coloc 2) to restrict your correlation coefficient-based analysis to those objects retrieved from the object based method and compare the results among the different constellations.


thank you all for the advice,
I will try all these you are suggesting

Hi Jan
I segment the nucleus channel by using the “make binary” tool, and after this I create the distance map. Is this correct?
As you said , in the mean gray value tab, I get positive and negative values. I am not sure how to process them for the statistical analysis. I have to count how many values are negative and positive (regardless of the number) and calculate percentages or I will take also into account the “number” of the value?

The numbers measured from the distance map tell you (as the name suggests) the distance of a measurement point to the border of the large object (i.e. the nuclear membrane if you segmented the nucleus), so therefore give potentially more information than a simple Yes/No colocalization percentage. Whether you want to actually use this distance information depends on your biological question.

thank you for your help,