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 _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel