Search
Question: interactions of range(flowFrame) with transform, densityplot and splom
0
7.9 years ago by
Mroz, Edmund A.10 wrote:
In using the flowCore and flowViz packages, I came up against two problems, apparently related to how transform() re-sets ranges, and how densityplot() and splom() get their limits from range(). I was wondering if I was doing something wrong, if these are necessary features, or are inadvertent glitches. I haven't seen them mentioned in the archives. They can be seen with a subset (Time,SSC-H,FL2-A) of a flowFrame from the GvHD data. > library(flowViz) > data(GvHD) > f1<-GvHD[[1]][,c(8,2,6)] Problem 1: transform() and range(), with densityplot() Create two derived columns with transform(): > f1<-transform(f1,sumCol=SSC-H+FL2-A,diffCol=SSC-H-FL2-A) splom shows a wide range of all data > splom(f1) but densityplot() gives a trivial plot for diffCol, not representative of the data. Compare: > densityplot(~.,f1) > hist(exprs(f1)[,"diffCol"]) This might arise from densityplot() taking limits from the range of the flowFrame, which gave the following after transform(): > range(f1) ?Time SSC-H FL2-A sumCol diffCol min ???0 ????0 ????0 ?????0 ??????0 max 1023 ?1023 ?1023 ??2046 ??????0 The values for range(f1) in the added columns seem to have been obtained by arithmetic on the ranges of the source columns, rather than obtained from ranges after transformation. I understand that is the desired result for single-column data transformations, but this poses a problem for on-the-fly plotting of transformations involving multiple columns of flowFrames and flowSets. (I originally found it when taking the difference of 2 log-transformed columns, to get the log of their ratio.) ------------------- Problem 2: splom() and plotting range I found this problem when my data had Time as the first data column, with a wide time range. To illustrate, simply change the "maxRange" for Time in the above example: > pData(parameters(f1))[1,"maxRange"]<-10000 > range(f1) ??Time SSC-H FL2-A sumCol diffCol min ????0 ????0 ????0 ?????0 ??????0 max 10000 ?1023 ?1023 ??2046 ??????0 Now, with: > splom(f1) the limits on the SSC-H axes (and for density calculation) seem to have been taken from the first data column (Time),?not from the SSC-H column, constricting the output and leading to error messages from KernSmooth::bkde2D(). My initial look at the code for splom(flowFrame) suggests that scales for splom are obtained from all data columns, even when exclude.time=TRUE, although I might be misinterpreting the code. If my interpretation is correct, this poses a problem for splom() if Time isn't the last column and exclude.time=TRUE. My sessionInfo() follows. Thanks for your help. Ed Mroz Surgical Oncology Research MGH Cancer Center Boston, MA > sessionInfo() R version 2.12.0 (2010-10-15) Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats ????graphics ?grDevices utils ????datasets ?methods ??base other attached packages: [1] flowViz_1.14.0 ????lattice_0.19-13 ???flowCore_1.16.0 [4] rrcov_1.1-00 ??????pcaPP_1.8-3 ???????mvtnorm_0.9-92 [7] robustbase_0.5-0-1 Biobase_2.10.0 loaded via a namespace (and not attached): [1] feature_1.2.5 ??????graph_1.28.0 ???????grid_2.12.0 [4] KernSmooth_2.23-4 ??ks_1.7.4 ???????????latticeExtra_0.6-14 [7] MASS_7.3-8 ?????????RColorBrewer_1.0-2 ?stats4_2.12.0 [10] tools_2.12.0 The information in this e-mail is intended only for the ...{{dropped:11}}