Fluorescence spillover

Emission spectra of flouorchromes can overlap. Therefore light detectors may record fluorescence from multiple flourochromes. However the intent is to detect only one fluorochrome per each detector. So this overlap (the amount of light spilling over to different detectors) must be compensated for before any data analysis.

There is a number of experimental strategies how to determine the amount of spillover and therefore how to perform the compensation. Perhaps the best starting point is to go through Mario Roederer's site on the topic.


Fluorescence of a green flurochrome (e.g. FITC) is primarily detected by detector A. However as the emission spectrum is relatively broad some of the fluorescence is detected also by detectors B and C. This is called fluorescence spillover and needs to be corrected for otherwise it could compromise detection of other fluorochromes by their appropriate detectors.

Spillover table vs. compensation matrix

If the data come from older analogue instruments they are already compensated. Otherwise they need to be compensated after acquisition. For that either spillover table or compensation matrix is needed.

Spillover table

Spillover table of 3 fluorochromes. The amounts of spillover are in percentages. So here e.g. FITC spills into PE flourochrome channel as much as 22% of FITC fluorescence in its own channel

Spillover table stores amounts of spillover of each flourochrome into each of the others. Data compensation is calculated from compensation matrix, which in turn, is calculated from spillover table. If the spillover table is stored in the form of a square matrix than its inversion generates compansation matrix.

So if spillover matrix (SM) is for example:

Spillover matrix

Matrix inversion of SM (SM-1) gives compensation matrix (CM):

Compensation matrix

Then the true signal of e.g. FITC (FITCtrue) can be calculated from measured FITC signal (FITCmeasured) and compensation matrix as a sum of contributions from all fluorochromes (main FITC signal plus spillovers from PE and PerCP-Cy5.5). Each contribution being equal to measured FITC signal multiplied by appropriate compensation coefficient (element of compensation matrix). So for example if FITC fluorescence detected by cytometer (FITCmeasured) is 100, then the true compensated FITC fluorescence is:

FITCtrue = 100 1.0011 + 100 -0.0050 + 100 0

That is 99.61, little bit less than 100, because of the small spillover from PE into FITC which needs to be compensated for.

In general for 3 colour experiment the true fluorescence of channel 1 is calculated from measured fluorescence in that channel and coefficients of compensation matrix CM as follows:

F1true = F1measured CM11 + F1measured CM21 + F1measured CM31

How to get spillover table

It is in the FCS file. Usual keywords are $SPILL or $COMP and standard keyword is $SPILLOVER. The form is comma separated list of: 1) number of channels in the table, 2) fluorescence channel names and 3) spillover values by row (first row has first parameter and its spillovers).

Places to go




Protein arrays


Flow cytometry - proteomics on single cell level.

Flow plots