[Bioc-devel] SummarizedExperiment, differing assay dimnames
Michael Love
michaelisaiahlove at gmail.com
Fri Apr 3 13:32:18 CEST 2015
hi Martin,
I noticed with GenomicRanges 1.19.51, a new, or newly functional,
check on dimnames differing between assays.
It might be convenient to add an option that assays() will take an
incoming matrix without error no matter what, even if the dimnames on
the incoming matrix are not the same as those of the
SummarizedExperiment.
Currently, it appears if there are no dimnames on the incoming matrix,
withDimnames=FALSE allows assignment (without this arg we get an
error), but with mismatched dimnames, withDimnames=FALSE gives an
error.
Also, the help file should probably be updated, as it seems the
argument is not actually ignored for the setter. Unless this
functionality above was unintended?
"withDimnames: A ‘logical(1)’, indicating whether dimnames should be
applied to extracted assay elements (this argument is ignored
for the setter ‘assays<-’). Setting ‘withDimnames=FALSE’
increases the speed and memory efficiency with which assays
are extracted."
best,
Mike
~~~~~
> (se <- SummarizedExperiment(matrix(1:6, ncol=2, dimnames=list(1:3,1:2)), colData=DataFrame(x=1:2)))
class: SummarizedExperiment
dim: 3 2
exptData(0):
assays(1): ''
rownames(3): 1 2 3
rowRanges metadata column names(0):
colnames: NULL
colData names(1): x
> assays(se)[["test"]] <- matrix(7:12, ncol=2)
Error in `assays<-`(`*tmp*`, value = <S4 object of class "SimpleList">) :
'dimnames' differ between assay elements
Calls: assays<- -> assays<-
# error because the incoming matrix doesn't have the same dimnames
> assays(se, withDimnames=FALSE)[["test"]] <- matrix(7:12, ncol=2)
# no error, as expected because withDimnames=FALSE
> assays(se)[["test"]] <- matrix(7:12, ncol=2, dimnames=list(4:6,3:4))
Error in `assays<-`(`*tmp*`, value = <S4 object of class "SimpleList">) :
'dimnames' differ between assay elements
Calls: assays<- -> assays<-
# again, mismatched dimnames, so error
> assays(se, withDimnames=FALSE)[["test"]] <- matrix(7:12, ncol=2, dimnames=list(4:6,3:4))
Error in `assays<-`(`*tmp*`, withDimnames = FALSE, value = <S4 object
of class "SimpleList">) :
'dimnames' differ between assay elements
Calls: assays<- -> assays<-
# error despite asking withDimnames=FALSE
> sessionInfo()
R Under development (unstable) (2015-01-19 r67547)
Platform: x86_64-unknown-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=C
attached base packages:
[1] stats4 parallel stats graphics grDevices datasets utils
methods
[9] base
other attached packages:
[1] GenomicRanges_1.19.50 GenomeInfoDb_1.3.16 IRanges_2.1.43
[4] S4Vectors_0.5.22 BiocGenerics_0.13.10 RUnit_0.4.28
[7] devtools_1.7.0 knitr_1.9 BiocInstaller_1.17.7
loaded via a namespace (and not attached):
[1] evaluate_0.5.5 formatR_1.0 stringr_0.6.2 tools_3.2.0 XVector_0.7.4
More information about the Bioc-devel
mailing list