Kevin, could you provide a traceback() after this error occurs?
----------------------------------------------------------
Greg Finak, Ph.D
Staff Scientist
Vaccine and Infectious Disease Division.
Fred Hutchinson Cancer Research Center
Seattle, WA
(206)667-3116
gfinak@fhcrc.org
On 2012-11-08, at 10:17 AM, Kevin Schiesser wrote:
> After a couple days of troubleshooting, I am able to generate an
incomplete compensation matrix. It's a bit baffling but here goes. If:
>
> useNormFilt =TRUE and method = "mean" in spillover()
>
> Then: the spillover() function returns a non-empty value only when
the stain+fsc+ssc parameters are limited to 11 or less. For instance:
>
> > mat.cfs.clean <- spillover(cfs.clean[,(1:11)], 12, fsc="FSC-A",
ssc="SSC-A", method="mean", useNormFilt=TRUE)
> > mat.cfs.clean
> FITC-A PerCP-A Pacific Blue-A AARD-A
QDot605-A APC-A Alexa700-A APC-Cy7-A PE-A
> FITC-A 1.000000e+00 0.0358395804 0.0008531686 1.993349e-02
6.022913e-03 0.0013364573 0.000000e+00 0.0000000000 5.264458e-03
> PerCP-A 0.000000e+00 1.0000000000 0.0008722239 0.000000e+00
1.286419e-05 0.0242856076 3.460406e-02 0.0059878924 0.000000e+00
> Pacific Blue-A 4.631962e-05 0.0009085721 1.0000000000 1.179575e-01
1.169263e-02 0.0021385373 1.742831e-05 0.0000000000 0.000000e+00
> AARD-A 1.008167e-01 0.2910952827 0.2913268220 1.000000e+00
5.124343e-01 0.0000000000 8.682088e-02 0.0507779717 3.867331e-02
> QDot605-A 6.119886e-04 0.0040399152 0.0005064663 0.000000e+00
1.000000e+00 0.0000000000 0.000000e+00 0.0000000000 9.767048e-03
> APC-A 5.944180e-05 0.0151967641 0.0001962633 0.000000e+00
6.093479e-05 1.0000000000 3.447000e-01 0.0676159928 1.971772e-05
> Alexa700-A 1.465875e-03 0.0150411274 0.0009918405 0.000000e+00
0.000000e+00 0.0058617085 1.000000e+00 0.1992198495 3.531374e-04
> APC-Cy7-A 1.169540e-04 0.0063815758 0.0014514320 6.223971e-05
9.907666e-06 0.2403238884 1.825396e-01 1.0000000000 8.540711e-05
> PE-A 4.780649e-02 0.2291811583 0.0001488972 0.000000e+00
6.747392e-02 0.0001477967 2.612027e-04 0.0002589873 1.000000e+00
>
> > mat.cfs.clean <- spillover(cfs.clean[,(1:13)], 12, fsc="FSC-A",
ssc="SSC-A", method="mean", useNormFilt=TRUE)
> Error in .local(x, ...) : subscript out of bounds
>
> Alternatively
>
> > mat.cfs.clean <- spillover(cfs.clean[,-(3:4)], 12, fsc="FSC-A",
ssc="SSC-A", method="mean", useNormFilt=TRUE)
> completes
> > mat.cfs.clean <- spillover(cfs.clean[,-(3)], 12, fsc="FSC-A",
ssc="SSC-A", method="mean", useNormFilt=TRUE)
> Error in .local(x, ...) : subscript out of bounds
>
> Any thoughts? I has also occurred to me that I might first gate the
stained/unstained beads before calculating the spillover matrix. Has
anyone tried this before? -k
>
> On 11/07/2012 06:14 PM, Kevin Schiesser wrote:
>>
>> Could the 'script out of bounds' error be arising because the some
of the florescent intensity measurements are negative? Do you
transform your compensation measurements before generating the
compensation matrix?
>>
>> Thanks much,
>> Kevin
>>
>> On 11/06/2012 04:10 PM, Kevin Schiesser wrote:
>>>
>>> Thanks for the advice Mike. I have tried changing the fsc/ssc
calls around as you suggested, and get the same error. On the bright
side, I was able to use spillover() successfully with the sample data
in flowCore/extdata/compdata/data. I reckon my flowSet needs some
cleaning up yet. -k
>>>
>>> On 11/06/2012 04:06 PM, Mike wrote:
>>>>
>>>> Hi,Kevin,
>>>>
>>>> Your spillover call should go like this:
>>>> spill.mat <- spillover(comp.data,..., fsc="FSC-A", ssc="SSC-A")
>>>>
>>>> Regarding to importing flowJo xml to R,you can try
"flowWorkspace" package. Hope this helps.
>>>>
>>>>
>>>> Mike Jiang,PhD
>>>>
>>>> System Analyst
>>>>
>>>> PS Statistics, Vaccine and Infectious Disease Division
>>>>
>>>> Fred Hutchinson Cancer Research Center
>>>>
>>>> (206)667-1905
>>>>
>>>>
>>>> On 11/06/2012 03:06 PM, Kevin Schiesser [guest] wrote:
>>>>> Hello there,
>>>>> I am using Bioconductor to look at flow cytometry data. To
begin, I would like to generate and apply a compensation matrix to the
experimental samples. Below is the work flow, as well as more general
information on the flowSet and the R version that I use. Any
recommendations would be splendid. I am thinking I might have to
figure on how to import FlowJo 10 xml files into bionconductor, a step
that I prefer to avoid.
>>>>>
>>>>> Much thanks,
>>>>> Kevin
>>>>>
>>>>> PS I have tried many permutations of the spillover() method
including patt=..., useNormFilt=TRUE/FALSE, changing the unstained =
index around, etc... And also, I cannot seem to get
system.file("compC", package="flowCore") to return a non-empty value,
maybe that would make compensation easier. Just a thought. -k
>>>>>
>>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>
>>>>> ##import the flowSet
>>>>>
>>>>> library(flowCore)
>>>>>
>>>>> compData <- read.flowSet(path = ".../compC/", transformation =
FALSE)
>>>>>
>>>>> ##trim the time column off (I know there are faster ways, but to
be very explicit...)
>>>>>
>>>>> comp.data <- compData[c(1,2,3,4,5,6,7,8,9,10,11,12),c("FSC-A",
"SSC-A", "FITC-A", "PerCP-A", "Pacific Blue-A", "AARD-A", "QDot605-A",
"APC-A", "Alexa700-A", "APC-Cy7-A", "PE-A", "ECD-A", "PE-Cy7-A")]
>>>>>
>>>>> ##generate compensation matrix
>>>>>
>>>>> spill.mat <- spillover(comp.data,unstained =
sampleNames(compData)[12], fsc=compData[,1], ssc=compData[,2])
>>>>>
>>>>>> traceback()
>>>>> 3: .local(x, ...) : subscript out of bounds
>>>>> 2: spillover(comp.data, unstained <- sampleNames(compData)[12],
fsc = compData[,1], ssc = compData[, 2])
>>>>> 1: spillover(comp.data, unstained <- sampleNames(compData)[12],
fsc = compData[,1], ssc = compData[, 2])
>>>>>
>>>>>> compData[[12]]
>>>>> flowFrame object 'Compensation Controls_Unstained Control.fcs'
>>>>> with 10000 cells and 14 observables:
>>>>> name desc range minRange maxRange
>>>>> $P1 FSC-A NA 262144 0.00 262143
>>>>> $P2 SSC-A NA 262144 0.00 262143
>>>>> $P3 FITC-A NA 262144 -106.22 262143
>>>>> $P4 PerCP-A NA 262144 -111.00 262143
>>>>> $P5 Pacific Blue-A NA 262144 -111.00 262143
>>>>> $P6 AARD-A NA 262144 -111.00 262143
>>>>> $P7 QDot605-A NA 262144 -111.00 262143
>>>>> $P8 APC-A NA 262144 -29.05 262143
>>>>> $P9 Alexa700-A NA 262144 -82.17 262143
>>>>> $P10 APC-Cy7-A NA 262144 -111.00 262143
>>>>> $P11 PE-A NA 262144 -87.69 262143
>>>>> $P12 ECD-A NA 262144 -63.27 262143
>>>>> $P13 PE-Cy7-A NA 262144 -25.53 262143
>>>>> $P14 Time NA 262144 0.00 262143
>>>>> 182 keywords are stored in the 'description' slot
>>>>>
>>>>> -- output of sessionInfo():
>>>>>
>>>>>> sessionInfo()
>>>>> R version 2.15.1 (2012-06-22)
>>>>> Platform: x86_64-pc-linux-gnu (64-bit)
>>>>>
>>>>> locale:
>>>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
>>>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
>>>>> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
>>>>> [7] LC_PAPER=C LC_NAME=C
>>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C
>>>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>>>
>>>>> attached base packages:
>>>>> [1] stats graphics grDevices utils datasets methods
base
>>>>>
>>>>> other attached packages:
>>>>> [1] flowCore_1.24.0 rrcov_1.3-02 pcaPP_1.9-48
mvtnorm_0.9-9993
>>>>> [5] robustbase_0.9-4 Biobase_2.18.0 BiocGenerics_0.4.0
>>>>>
>>>>> loaded via a namespace (and not attached):
>>>>> [1] feature_1.2.8 graph_1.36.0 ks_1.8.10 MASS_7.3-22
stats4_2.15.1
>>>>> [6] tools_2.15.1
>>>>>
>>>>> --
>>>>> Sent via the guest posting facility at bioconductor.org.
>>>>
>>>
>>
>
[[alternative HTML version deleted]]