Nuclei Watershed Separation

Revision as of 05:06, 15 July 2009 by White (talk | contribs)

A very common biological sample for microscopy is DAPI stained DNA in cell nuclei. The staining delineates the nuclei pretty well, since in a metaphase cell there is DNA all over the nucleus. however, the staining is not homogenous, as there are areas of more or less condensation of the chromosomes. This makes the nuclei appear granular. Worse still, in may tissues that are interesting for developmental biology, the cells are tightly packed, and are composed mostly of nucleus with very little cytoplasm separating them. The nulclei often seem to touch each other, which in reality, of course, they can not. There is a membrane or two at least between them, but an optical microscope cant resolve that. The PSF is much bigger then the width of a membrane! Just to make matters even worse the image is quite noisy, because it was made with a fast scan on a confocal laser scanning microscope, which inherently has a low signal/noise ratio. That gives objects fuzzy edges and adds uncertainty to the intensity vaules of each pixel, making it harder to segment properly.

So, we are faced with the probelm of being able to separate apparently touching, noisy, objects :-(

Luckily, there is a method for doing exactly that. The Watershed method.

Ok, so how can we denoise, segment, watershed (separate touching objects) and then count / measure the objects in FIJI? Read on...

NucleiDAPIconfocal.png

  • Run a Gaussian Blur filter on the image to blur out the photon shot noise (the "speckle", actually poisson distributed),

and also to smooth out the inhomogeneity of the nuclear staining. We will use a large sigma vaule of 3 for this task. A value of sigma too small will mean that the segmentation will be disturbed by the noise and staining pattern. Too high a sigma value, and the object will be too blurred, making ti harder to separate them later. Run menu command: Process - Filters - Gaussian Blur, with a sigma value of 3 pixels. You can preview other values to see how they look also. You should get an image that looks like this:

NucleiDAPIconfocalGauss3pxSigma.png

  • Next we need to segment the objects from the background. FIJI has a number of built in automatic thresholding methods

that try to distinguish the background from the foreground. In this case the default method works pretty well, but you can see there is a long list of methods, which give slightly different threshold results for this image. You can play with different methods if you like. You might get a different answer in the end!

Do menu command Image - Adjust - Threshold. Turn on the check box for "Dark background" . Indeed, in this case the background is dark! The default method will be perviewed automatically when you launch the menu command, and a threshold will be set, something close to 100 intensity. If you are happy with the automatically calculate threshold, then click "Apply", which will give you a binary image. Black is background, and white is foreground. It should look like this:

NucleiDAPIconfocalAutoDefaultThresh.png

So far so good... But we still don't have objects... only background and foreground pixels. Also it is clear that some nuclei are connected to adjacent ones... and we want them to be separated. We will use the watershed method built into FIJI for that:

  • To run the watershed method choose menu item Process - Binary - Watershed.

This method finds the centre of each object (using a morphological erode operation), then calculates a distance map from the object centre points to the edges of the objects, then fills that "topological map" with imaginary water. Where 2 "Watersheds" meet, it builds a dam to separate them! One could do all these steps manually, but the watershed function automates that for you, which is nice. Your watershed image should look like this:

NucleiDAPIconfocalWatershed.png

Notice how the nuclei have been split away from each other. This method only works robustly for roughly circular objects. Why?

  • Analyse the segmented objects.

Now you have a set of white foreground patches of white pixels, surrounded by balc background pixel areas, and we have separated touching objects.