StrataQuest Home › StrataQuest Glossary › Spectral Unmixing
Signal Processing

Spectral Unmixing

Separating overlapping fluorescence signals

View
Definition
When several fluorophores share a section, their emission spectra overlap, and light from one dye leaks into another's detection band. A multispectral experiment records each pixel in many narrow wavelength bands, a lambda stack. Spectral Unmixing compares each pixel's spectrum with the reference spectrum of every marker you define, and estimates how much of each marker is present, never less than zero.
Pre processing - Basic - Virtual Channel
Video · Primary
Supporting
Detection - Automatic Background Threshold params
Video · Supporting
H&EDSPTCH
Video · Supporting
User Interface - Dimensions (8bit FL)
Video · Supporting
Overlapping spectra, separated
Bleed-through between detection bands
References from swatches
Raw minus Background gives Pure
Non-negative least squares
Best fit, no negative amounts
Autofluorescence is a marker
You define it yourself in 8.1

How It Works

Spectral Unmixing is available only in FL multispectral experiments. There, TissueFAXS passes the emission light through a tunable filter and records a lambda stack: a series of images, each a narrow wavelength band. The engine sits in a layer's Pre-Processing section under Add Operations (Advanced), and TissueFAXS has a matching Spectral Unmixing dialog of its own.

The engine has three tabs. In Input Images, the spectral images are grouped by filter, and only the ones you tick enter the lambda cube, a three-dimensional (x, y, λ) data set. In Markers, you define a reference spectrum for each marker. In Advanced, you choose extra outputs.

For each pixel, the engine compares the spectrum in the cube with the markers' reference spectra and solves for the amount of each marker by non-negative least squares minimization (NNLS). NNLS finds the best-fitting amounts while keeping every one at zero or above, so no fluorophore gets a negative presence. The output is one grayscale imageLoading... per marker, at the bit depth of the input, with pixel values the reference describes as synchronized with the mixed signal values.

Simplified

Every pixel's light is a cocktail of dyes. You tell the engine what each dye looks like on its own, and it works out the recipe at every pixel: how much of each dye, never a negative amount. You get one image per dye.

Science Behind It

The linear model. In general, unmixing assumes that a pixel's measured spectrum is a weighted sum of the pure spectra of the dyes present, plus noise. With more spectral bands than dyes there is no exact solution, and least squares picks the weights that leave the smallest leftover. Plain least squares can return negative weights where spectra are similar or noise is high. Constraining the weights to zero or above, as NNLS does, rules out answers that are physically impossible.

Noise, the cost of unmixing. In general, the more alike two reference spectra are, the less well the fit can tell them apart, and noise in the pixel spreads into both estimates. Spreading emission over many narrow bands also leaves fewer photons in each, and photon noise grows relative to the signal as counts fall: 100 photons carry about 10 of noise, 25 photons about 5. That is why well-separated dyes unmix cleanly and close neighbors don't, and it is one way to judge signal-to-noiseLoading... before trusting a separated image. Denoise Output applies a 3 × 3 median filterLoading... to the results.

Where overlap comes from. In general, emission spectra are broad, with long tails toward longer wavelengths, so a band set for one dye catches the tail of its bluer neighbor. That cross-talk is spectral bleedthroughLoading.... Tissue autofluorescenceLoading..., from sources such as collagen, elastin and lipofuscin, has a broad spectrum of its own that overlaps many labels, which is why it is worth defining as a marker.

Why a swatch subtracts a background. A spot of positive staining also holds whatever else is there, autofluorescence and the background floor of a 16-bit image among it. Subtracting a nearby negative area leaves the marker's own spectrum. That is why the reference recommends placing Raw and Background close together, and why 8.1 no longer needs the Legacy engine's Subtract AFL and Remove High Background options.

Simplified

Dyes glow over broad, overlapping color ranges, so each detection band catches more than one dye. Unmixing fits every pixel as a mix of known dye spectra. The more alike two dyes are, the noisier their separated images, so dyes with well-separated spectra unmix best.

Parameters & Settings

ParameterDescription
Input ImagesThe spectral images, grouped by filter. Only checked images enter the lambda cube, and any change requires recomputation. Per filter, only the LED wavelength can be edited; for TissueFAXS projects, Exposure Time, Lamp Intensity and LED Wavelength come from the acquisition metadata.
MarkersEach marker has a Marker name, a Color and a Plot toggle. A new engine starts with two empty markers, and a warning icon marks any marker whose settings are incomplete. Add, delete, save to or load from the Spectral Database, which includes predefined standard markers.
SwatchesEach swatch has a Raw Signal area (positive for the marker), a Background area (nearby, negative) and an automatic Pure Signal = Raw − Background, with negative values clamped to zero. Up to 8 swatches can be added at once. Only the swatch selected with the radio button is used for unmixing.
Generate Colored ImagesAdds a color image per marker, in the marker's color, beside the grayscale one.
Denoise OutputApplies a 3 × 3 median filter to the unmixed results.
Normalization byMaximum of filter or Maximum of marker. Affects only how spectra are displayed in the diagram, not the computation.

There is no Method choice, because NNLS is always used, and no autofluorescence toggle. Version 8.1 also removed the Color Picker and the 8-bit/16-bit output option; outputs match the input bit depth. The Engines Reference documents the earlier engine separately as Spectral Unmixing (Legacy), with Use AutoFL Marker, Remove High Background and Generate 16-bit gray images.

Source: StrataQuest 8.1 Engines Reference, ch. 40 (pp. 517–536), ch. 39 (pp. 508–516); TissueFAXS 8.1 User Manual §3.4 (p. 12), §4.4.5 (p. 104).

Simplified

Define each marker by drawing two areas: one where the dye is clearly present and one close by where it isn't. The engine subtracts the second from the first. Add autofluorescence as a marker of its own if you want it separated.

Practical Example

Suppose a multispectral fluorescence scan of a section stained for DAPI and three markers, with visible autofluorescence from red blood cells.

  1. In Input Images, tick the spectral images to unmix.
  2. Add a marker for each dye and one for autofluorescence. For each, add a swatch, draw Raw Signal on a clearly positive area and Background right beside it on a negative area, and press Apply Area Selection.
  3. Read the diagram: dashed for Raw, dotted for Background, solid for Pure. After normalization, several swatches of one marker should have about the same Pure shape, so an outlier is a poor swatch. Select the best one with the radio button.
  4. Save the finished markers to the Spectral Database, so the next project can load them.
  5. Run detection on the unmixed DAPI image and measure the marker images with Standard MeasurementsLoading....

Then check the autofluorescence image. Red blood cells should be bright there and dim in the marker images. If they still light up a marker image, that marker's swatch probably picked up autofluorescence.

Simplified

For a multiplex stain, define one marker per dye plus one for autofluorescence, each from a positive area and a nearby negative one. After unmixing, red blood cells should glow in the autofluorescence image and stay dark in the marker images.

Connected Terms

Share This Term
Term Connections