Quantifying FISH signals of repetitive sequences in chromosomes

Hello ImageJ community. I am quite new in the cytogenetics field. I am looking for a way to quantify FISH signal distribution in relation to surface area of the chromosomes. I have read the segmentation process, however, I find it difficult to use in signals like in the photos attached. Thank you.
Slide1.tif (188.7 KB)
Slide1.tif (272.0 KB)


Can you provide a bit more detail for each image? What is what (remember - most don’t know your biology here)? And what do you need to ‘segment’ exactly?

Give us a bit more details to help us help you better…

Here are some helpful links on Segmentation in Fiji as well:

Thank you so much for your response.

I am currently doing fluorescence in situ hybridization (FISH) on metaphase chromosomes. I used 18S rDNA (red) and DNA repetitive sequences (yellow) of my species as my probes. What I need to do is to measure or quantify the distribution of the yellow-colored signals in each chromosome. I need to get the area of distribution of the signal relative to each chromosome’s surface area (I don’t know if ‘ratio’ is the right term for it).
I tried using the Segmentation procedure, it does measure the area of the signals however, I do not know how to make it in relative to that specific chromosome alone where the signal I am measuring is located. I was thinking to segment the chromosome first, then the signals next. But I am not sure if I’m on the right track.

Here are the photos for your reference.

Many thanks for your help.

rnd-5_slide1.tif (659.3 KB)

rnd-5_slide4.tif (1.1 MB)


Ok. Perhaps it’s because I’m only starting on coffee #2 this morning … but I’m confused. Break it down for me a bit - consider that no one here knows the biology of what you are doing… and disregard ‘colors’ of your signal (these are false colors… all we care about are which channels are what). You have uploaded a 3-channel image:

  1. Which please tell us what is labeled in each channel…
  2. Which channel(s) contains the signal(s) you need to measure? Is it only the DNA repetitive sequences channel that you need to measure?
  3. Is one of the channels a general DNA-marker? If so - use this to segment the chromosome… then you can measure the signal(s) of interest within that region.

I apologize for causing confusion. I uploaded again a photo with labels for your reference.

I am also quite confused with the questions (esp. the term for the ‘channel’) but here are the answers based on my understanding:

    • chromosomes
  • species-specific DNA repetitive sequences
  • 18SrDNA (not important)
  1. All chromosome channels have the same DNA marker. I need to measure the DNA repetitive sequences channel that are in each chromosome channel. Measuring its area of distribution in that chromosome region.

  2. Yes it is a general DNA marker. So, I will choose one chromosome to segment first, then do thresholding to measure the signals of interest in that chromosome?

Thank you so much.

DNA repeats_bienertia.tif (232.3 KB)

Ok. You first need to know your datasets. You have multi-channel images - so you need to know which signal you acquired for each channel. That - I cannot help you with unfortunately…

But you essentially need to Segment the chromosomes and then measure the signal you want within (though it’s still not clear to me what you wish to measure here… intensity or area or both?).

I wrote a quick script that is based on one described in an older recorded workshop on Scripting in ImageJ you might find helpful. The corresponding slides for that presentation are here (and the more updated versions are here).

#@ File (label = "Input directory", style = "directory") input
#@ File (label = "Output directory", style = "directory") output
#@ String (label = "File suffix", value = ".tif") suffix


// function to scan folders/subfolders/files to find files with correct suffix
function processFolder(input) {
	list = getFileList(input);
	list = Array.sort(list);
	for (i = 0; i < list.length; i++) {
		if(File.isDirectory(input + File.separator + list[i]))
			processFolder(input + File.separator + list[i]);
		if(endsWith(list[i], suffix))
			processFile(input, output, list[i]);
	//saves results for all images in a single file
	saveAs("Results", output + "/All_Results.csv"); 

function processFile(input, output, image) {
	// first - set the measurements you wish to calculate (you can change this when/if you need)
	run("Set Measurements...", "area mean standard modal min integrated area_fraction display redirect=None decimal=3");
	// open image using Bio-Formats
	run("Bio-Formats", "open=[" + input + "/" + image +"] autoscale color_mode=Default rois_import=[ROI manager] view=Hyperstack stack_order=XYCZT");
	run("Split Channels");
	selectWindow("C3-" + image); // I'm assuming this is a general chromosome marker... so we can use it to delineate the chromosomes (make a ROI selection)
	setAutoThreshold("Default dark");
	run("Create Mask");
	// save the mask
	save(output + "/Mask_" + image);
	run("Create Selection");
	// save that ROIs
	roiManager("Save", output+ "/" + image + "_ROI.zip");
	selectWindow("C1-" + image); // I'm assuming this is channel with the signal you want/need to measure
	roiManager("Show All"); // overlay chromosome delineation (overlay the ROI)...
	// at this point... i'm not sure exactly what you aim to measure within this area... so I just measured a few things... ???
	roiManager("Select", 0);
	// then clear ROI manager for next image...

Before you do anything else though:

  1. Get to know your datasets… which channels belong to which marker, etc. You need to know this at a minimum.
  2. Go through the Segmentation workshop I linked in the previous post.
  3. Go through the Scripting workshop I linked in this post.

Thank you very much for these information. These are truly helpful.
I have already identified the channels:

  • Channel 1: DNA repetitive sequences (This is the channel I need to measure)
  • Channel 2: All signals
  • Channel 3: rDNA

I will measure only the area occupied by the signals for each chromosome, not the intensity.
Though I think it is difficult because most of the signals of the DNA repeats are distributed all throughout. And when I tried segmentation before, there are several particles detected/measured for each chromosome, and I think I need to compute its average.

Again, many thanks for taking the time and effort to answer all my queries and giving the info materials, even though I gave you confusion on most parts.


Don’t worry… it’s on me too. It’s hard to write things out clearly sometimes… just go through those steps and if you have more questions - just ask. We are here to help.