Mario Costa Cruz
If you have color images stained with light-absorbing dyes, the UnmixColors module might be able to separate the dyes into separate channels so that they can be analyzed separately.
Separating the dyes into channels can be a difficult task with traditional methods such as split colors on ColorToGray module (Figure 1), which separates the red, green, and blue channels of an image. This occurs because light-absorbing dyes behave differently than channel based stains. They don’t have red, green and blue components operating individually like in a fluorescent image, they’re all mixed together, so during the imaging process the dyes are assumed to absorb an amount of light in the red, green and blue channels that increases proportionally in each channel with increasing amounts of stain.
Figure 1. Splitted channels using the ColortoGray module shows the mixture of the red, green and blue channels that compose the stain.
To solve this problem we implement a module called UnmixColors adapted from the ImageJ plugin, Colour_Deconvolution, which separates two or more stains, producing grayscale images that look similar to fluorescent images and thus can be analyzed similarly (Figure 2).
Figure 2. UnmixColors module separes the hematoxylin stain from the eosin stain.
The module has several pre-set dye combinations (hematoxylin, eosin, dab, pas, aec, alcian_blue, aniline_blue, azocarmine, fast_blue, fast_red, hematoxylin_and_pas, methyl_green, methylene_blue, orange_g, methyl_blue, ponceau_fuchsin, methyl_blue and feulge). Since the exact dye appearance can vary between users for many technical reasons, including dye concentrations and lighting conditions, there is also a custom mode that allows you to calibrate how your dyes look in your exact tissue. It’s also important to know that some common stains are actually mixes of 2 or more dyes and thus must be specified by all of their individual dye components for a correct separation.