How are autofluorescence values used in the spillover/compensate functions?
1
2
Entering edit mode
peterfoster ▴ 20
@peterfoster-7470
Last seen 8.6 years ago
United States

Could someone provide a more detailed explanation as to how autoflourescence values are handled in the spillover and compensation functions in the flowCore package?  I can't figure out how to view the function's code...  

I know that the autoflourescence/baseline data can be specified in the spillover function with a blank/unstained control sample, but I don't know what happens with it next.  Is autofluoresence calculated from each channel and linearly subtracted from the data before the compensation is applied?  Is each channel's background incorporated into the spillover calculation as seems to be described in the 1993 paper that the function references?  Is this considered a non-linear, affine transformation and therefore different from simply subtracting median AutoFl values from the uncompensated data?  If my workflow typically calculates median fluorescence from an unstained control and linearly subtracts that from my sample flowSet prior to calculation of the spillover matrix and compensation, am I correcting for autofluorescence twice?

any help, guidance, or suggestion is welcome. 

Thanks,

flowcore flow cytometry compensation spillover • 1.7k views
ADD COMMENT
1
Entering edit mode
Greg Finak ▴ 150
@greg-finak-4594
Last seen 5.7 years ago
(Private Address)

From looking at the code, which you can see for yourself by typing:

getMethods(spillover)

it seems autofluorescence for each channel is subtracted from the columns of the spillover matrix prior to re-normalizing it. I believe this follows the procedure described in the reference. From your description of your workflow, if you're using the spillover function, then yes you are correcting for autofluorescence twice.

 

Best,

Greg

ADD COMMENT
0
Entering edit mode

Thank you for your help!   That being the case, I'm confused as to why the mean/median for my unstained controls is practically the same in both the uncompensated and compensated data.  If the blank mean/median is rolled into the compensation matrix, compensation should transform the mean/median to zero, right?  Could you shed light on this?

> namePattern <- "FSC.A|SSC.A|V1.A|Y2.A" ## set the desired channels, in order
> comp.1 <- spillover(x=fs.colorcomp.1, unstained="000.001", fsc="FSC.A", ssc="SSC.A",
+   patt=namePattern, method="mean")
> fs.comp.1 <- compensate(fs.clean.1, comp.1)

> summary(fs.clean.1[[3]])
         HDR.T  FSC.A FSC.H   SSC.A   SSC.H   V1.A    V1.H     Y2.A    Y2.H
Min.       952  28010 11050   772.4   278.1 -80.56  -1.831 -101.700  -1.492
1st Qu.  59620  49610 21270  9000.0  5504.0  11.09  55.990  -11.490  47.620
Median  127600  63840 27550 11750.0  7093.0  31.57  72.020    9.788  62.370
Mean    128900  67320 28840 12530.0  7455.0  31.59  69.630   10.120  62.320
3rd Qu. 196700  82090 35290 15470.0  9096.0  51.38  84.380   31.820  77.140
Max.    262100 136000 64970 24930.0 16770.0 708.20 544.400  280.800 198.700
> summary(fs.comp.1[[3]])
         HDR.T  FSC.A FSC.H   SSC.A   SSC.H   V1.A    V1.H     Y2.A    Y2.H
Min.       952  28010 11050   772.4   278.1 -80.51  -1.831 -101.700  -1.492
1st Qu.  59620  49610 21270  9000.0  5504.0  11.05  55.990  -11.490  47.620
Median  127600  63840 27550 11750.0  7093.0  31.55  72.020    9.788  62.370
Mean    128900  67320 28840 12530.0  7455.0  31.58  69.630   10.120  62.320
3rd Qu. 196700  82090 35290 15470.0  9096.0  51.37  84.380   31.820  77.140
Max.    262100 136000 64970 24930.0 16770.0 707.90 544.400  280.800 198.700
>

ADD REPLY

Login before adding your answer.

Traffic: 999 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6