Issue creating transformed filter in flowCore
Entering edit mode
npb27 • 0
Last seen 2.3 years ago

Hi all,

Apologies if this is an easy fix, but I came across an error whilst trying to use flowcore to make a transformed filter on my flow cytometry data.

The aim to is to transform the data using the logicle transformation, and gate around a set of cells using an ellipse-shaped filter

Here is my code:

**# filter out dead cells: y <- read.FCS(emptyValue = F, "Tgalcalibration28-6-1924h1.fcs", transformation=FALSE,alter.names=TRUE) tFilter = transform("FSC.A"=logicleTransform, "SSC.A"=logicleTransform) ematrix <- matrix(c(1.1, 0.3, 0.5, 0.6), ncol=2, dimnames=list(c("FSC.A", "SSC.A"), c("FSC.A", "SSC.A"))) mean <- c("FSC.A"=4.4, "SSC.A"=4.01) egate <- ellipsoidGate(cov=ematrix, mean= mean) %on% tFilter no_dead <- Subset(y, egate) %on% tFilter

It runs fine until the final line, which throws the error:

Error in (function (cl, name, valueClass) : assignment of an object of class “numeric” is not valid for @‘transformationId’ in an object of class “transform”; is(value, "character") is not TRUE

Which I can't make head or tail of.

Is the issue related to the use of the logicle transform, which the transformed gate isn't designed for.

This is the output of sessionInfo():

> sessionInfo() R version 3.6.0 (2019-04-26) Platform: x8664-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200) Matrix products: default locale: [1] LCCOLLATE=EnglishUnited States.1252 LCCTYPE=EnglishUnited States.1252 LCMONETARY=EnglishUnited States.1252 LCNUMERIC=C
[5] LCTIME=EnglishUnited States.1252
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] flowStats3.40.1 ggcyto1.10.2 flowWorkspace3.30.2 ncdfFlow2.28.1 flowViz1.46.1 cluster2.1.0
[7] BH1.69.0-1 RcppArmadillo0.9.500.2.0 ggplot23.2.0 lattice0.20-38 flowCore1.51.7 usethis1.5.0
[13] devtools2.0.2
loaded via a namespace (and not attached): [1] mclust
5.4.4 Rcpp1.0.1 mvtnorm1.0-11 prettyunits1.0.2 ps1.3.0 assertthat0.2.1 rprojroot1.3-2 digest0.6.19
[9] plyr
1.8.4 R62.4.0 backports1.1.4 stats43.6.0 pcaPP1.9-73 pillar1.4.2 zlibbioc1.28.0 rlang0.4.0
[17] lazyeval
0.2.2 curl3.3 rstudioapi0.10 data.table1.12.2 callr3.2.0 Rgraphviz2.26.0 hexbin1.27.3 Matrix1.2-17
[25] splines
3.6.0 desc1.2.0 stringr1.4.0 munsell0.5.0 compiler3.6.0 pkgconfig2.0.2 BiocGenerics0.30.0 pkgbuild1.0.3
[33] IDPmisc
1.1.19 tidyselect0.2.5 gridExtra2.3 tibble2.1.3 matrixStats0.54.0 XML3.98-1.20 crayon1.3.4 rrcov1.4-7
[41] dplyr
0.8.2 withr2.1.2 MASS7.3-51.4 grid3.6.0 gtable0.3.0 magrittr1.5 scales1.0.0 graph1.60.0
[49] KernSmooth
2.23-15 stringi1.4.3 cli1.1.0 fs1.3.1 remotes2.1.0 latticeExtra0.6-28 robustbase0.93-5 RColorBrewer1.1-2 [57] tools3.6.0 Biobase2.44.0 glue1.3.1 DEoptimR1.0-8 purrr0.3.2 ks1.11.5 processx3.3.1 pkgload_1.0.2

Any help with this issue would be much appreciated


flowCore • 270 views
Entering edit mode
Jake Wagner ▴ 280
Last seen 12 months ago

You can do this using a transformList, which is discussed a bit in the package vignette. Additionally, logicleTransform() will give you default transformation parameters, but you should look at estimateLogicle() to estimate these for your data. Anyway, try this (adapted from your code):

#filter out dead cells: 
y <- read.FCS(emptyValue = F, 

# Consider estimateLogicle() as well (swap in first line below)
#tList <- estimateLogicle(y, c("FSC.A", "SSC.A"))
tList <- transformList(c("FSC.A", "SSC.A"), logicleTransform())

ematrix <- matrix(c(1.1, 0.3, 0.5, 0.6), ncol=2, 
                  dimnames=list(c("FSC.A", "SSC.A"), c("FSC.A", "SSC.A")))
mean <- c("FSC.A"=4.4, "SSC.A"=4.01)
egate <- ellipsoidGate(cov=ematrix, mean= mean) %on% tList
no_dead <- Subset(y, egate)

Further, you can consider using a GatingSet from the flowWorkspace package as an easier way to manage these subsetting operations.


Login before adding your answer.

Traffic: 356 users visited in the last hour
Help About
Access RSS

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

Powered by the version 2.3.6