-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Consider the following:
library(SummarizedExperiment)
setClass("FOO", slots=c(se="SummarizedExperiment"))
x <- SummarizedExperiment()
y <- new("FOO", se=x)
class(y@se)
## [1] "SummarizedExperiment"
## attr(,"package")
## [1] "SummarizedExperiment"So far, so good. But if you try to put in a RangedSummarizedExperiment instead:
x2 <- SummarizedExperiment()
rowRanges(x2) <- GRanges()
class(x2)
## [1] "RangedSummarizedExperiment"
## attr(,"package")
## [1] "SummarizedExperiment"
y2 <- new("FOO", se=x2)
class(y2@se) # ????
## [1] "SummarizedExperiment"
## attr(,"package")
## [1] "SummarizedExperiment"You can see how the Ranged'ness is dropped from the object when it gets stored in the FOO instance. Interestingly enough, this doesn't happen with other subclasses, even of RangedSummarizedExperiment:
library(SingleCellExperiment)
x3 <- SingleCellExperiment()
class(x3)
y3 <- new("FOO", se=x3)
class(y3@se)
## [1] "SingleCellExperiment"
## attr(,"package")
## [1] "SingleCellExperiment"Given that it doesn't happen with other subclasses, I assume that this is a problem specific to the RSE-SE relationship. Seems that initialize,FOO-method doesn't believe that RSE extends SE and thus coerces the former to the latter.
Anyway, this is a problem encountered in actual code as altExp<- for the SingleCellExperiment package has an internal class that uses a SummarizedExperiment slot. Attempting to assign an RSE will strip away the ranged parts.
Session information
R Under development (unstable) (2024-10-30 r87277)
Platform: aarch64-apple-darwin22.6.0
Running under: macOS Ventura 13.7
Matrix products: default
BLAS: /Users/luna/Software/R/trunk/lib/libRblas.dylib
LAPACK: /Users/luna/Software/R/trunk/lib/libRlapack.dylib; LAPACK version 3.12.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: America/Los_Angeles
tzcode source: internal
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] SingleCellExperiment_1.29.0 SummarizedExperiment_1.37.0
[3] Biobase_2.67.0 GenomicRanges_1.59.0
[5] GenomeInfoDb_1.43.0 IRanges_2.41.0
[7] S4Vectors_0.45.0 BiocGenerics_0.53.0
[9] MatrixGenerics_1.19.0 matrixStats_1.4.1
loaded via a namespace (and not attached):
[1] R6_2.5.1 SparseArray_1.7.0 zlibbioc_1.53.0
[4] Matrix_1.7-1 lattice_0.22-6 abind_1.4-8
[7] GenomeInfoDbData_1.2.13 S4Arrays_1.7.0 XVector_0.47.0
[10] UCSC.utils_1.3.0 grid_4.5.0 DelayedArray_0.33.0
[13] compiler_4.5.0 httr_1.4.7 tools_4.5.0
[16] crayon_1.5.3 jsonlite_1.8.9