[BioC] flowStats quadrantGate and rangeGate Question

Chao-Jen Wong cwon2 at fhcrc.org
Thu Jun 3 23:57:03 CEST 2010


Hi, Aric

First of all, if your data contain significant population below zero, I
would recommend using logicle transformation (see ?logicleTransform)
instead of asinh.  The problem of the asinh transformation is that the
slop of asinh transformation around zero is too steep that makes the
plots look like there are two separate populations on the right and left
sides of zero (is that what you see from your transformed data?).  As a
result, quadrant and rangeGate would have troubles identifying the right
threshold to divide the real positive and negative.  This situation
might be avoid using logicleTransform. Note that when you use
logicleTransform, make sure you understand how to define the w, t and r
parameters. Nishant and I can help you with that if you have any
questions. 

As you are already using asinh transformation, I don't know how to
ignore the population below zero when using quadrant or rangeGate. You
can probably use rectangeGate from flowCore or do manually gating.

Chao-Jen


On 06/03/10 13:46, Aric Gregson wrote:
> Hello,
>
> I am trying out the quadrant and rangeGate methods in flowStats with a small 
> sample of data. It seems that they do not play well with asinh transformed 
> data when there is a small, but significant, population below zero. I have 
> tuned the adjustable parameters sd, alpha and borderQuant as much as 
> possible, but with less than ideal results. What I am looking for I suppose 
> is a way to tell the algorithm to ignore points below 0 when calculating the 
> gates. 
>
> For example, in the fluorochrome channels there are two distinct populations 
> that have values above zero, and there is a small population with values 
> below zero. For determining positive and negative gates, only the two 
> populations that have values above zero should be considered. The values 
> below zero should be lumped in with the non-zero but still negative numbers. 
> Just wondering if there is a way to do this without having to manually 
> program the gates. 
>
> Thanks, Aric
>
> wf <- workFlow(fs, name="2009_03_05 Asinh Workflow")
> # remove boundry events before transformation as transform SSC
> boundaryfilter <- boundaryFilter(filterId = "boundaryfilter",
>                                  x = c("FSC.A", "SSC.A"))
> add(wf, boundaryfilter)
> singletfilter = polygonGate(`FSC.A` = 
> c(10000,13000,20000,40000,60000,80000,100000,160000,200000,263000,263000, 
> 200000,160000,100000,80000,60000,40000,20000,14000,8000),
>   `FSC.H` = 
> c(5000,5000,10000,22000,34000,50000,65000,115000,150000,200000,220000,170000,130000,78000,62000,45000,30000,15000,10000,5000),
>   filterId="Singlet")
> add(wf, singletfilter, parent="boundaryfilter+")
> asinhtf <- transformList(colnames(fs)[4:19],
>                          asinh,
>                          transformationId="asinh")
> add(wf, asinhtf, parent="Singlet+")
> lymphfilter <- lymphGate(Data(wf[["asinh"]]), channels=c("FSC.A", "SSC.A"), 
> preselection="APC.H7.A", filterId="Lymphs", eval=FALSE, scale=2)
> add(wf, lymphfilter$n2gate, parent="asinh")
> pars <- colnames(Data(wf[["base view"]]))[c(10,11,12,13,18,19)] 
> norm <- normalization(normFun = function(x, parameters, ...)
>                       warpSet(x, parameters, ...),
>                       parameters = pars,
>                       normalizationId= "Warping")
> add(wf, norm, parent="Lymphs+")
> ## absolute=T & borderQuant=0.9 help with CD3, but not CD4
> qgate <- quadrantGate(Data(wf[["Warping"]]),
>                       stains=c("AmCyan.A", "APC.H7.A"),
>                       plot=FALSE,
>                       filterId="CD3CD4",
>                       absolute=TRUE,
>                       borderQuant=0.8,
>                       alpha=0.9,
>                       sd=0.1)
> add(wf, qgate, parent="Warping")
> ## can't get much better than this without removing negative numbers
> qgateLive <- quadrantGate(Data(wf[["Warping"]]),
>                       stains=c("Indo.1..Violet..A", "APC.H7.A"),
>                       plot=TRUE,
>                       filterId="LiveCD4",
>                       absolute=TRUE,
>                       borderQuant=1, #0 is wrong direction
>                       alpha=1,#0.9
>                       sd=0)
>
>   
>> sessionInfo()
>>     
> R version 2.11.0 (2010-04-22) 
> amd64-portbld-freebsd8.0 
>
> locale:
> [1] C
>
> attached base packages:
> [1] splines   tools     stats     graphics  grDevices utils     datasets 
> [8] methods   base     
>
> other attached packages:
>  [1] flowStats_1.6.0     cluster_1.12.3      fda_2.2.1          
>  [4] zoo_1.6-3           flowQ_1.8.0         latticeExtra_0.6-11
>  [7] RColorBrewer_1.0-2  parody_1.6.0        bioDist_1.20.0     
> [10] KernSmooth_2.23-3   mvoutlier_1.4       outliers_0.13-2    
> [13] flowViz_1.12.0      lattice_0.18-5      flowCore_1.14.1    
> [16] rrcov_1.0-00        pcaPP_1.8-1         mvtnorm_0.9-9      
> [19] robustbase_0.5-0-1  Biobase_2.8.0       fortunes_1.3-7     
>
> loaded via a namespace (and not attached):
>  [1] AnnotationDbi_1.10.1 DBI_0.2-5            MASS_7.3-5          
>  [4] RSQLite_0.9-0        annotate_1.26.0      feature_1.2.4       
>  [7] geneplotter_1.26.0   graph_1.26.0         grid_2.11.0         
> [10] ks_1.6.12            stats4_2.11.0        xtable_1.5-6
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>   


-- 
Chao-Jen Wong
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Avenue N., M1-B514
PO Box 19024
Seattle, WA 98109
206.667.4485
cwon2 at fhcrc.org



More information about the Bioconductor mailing list