From e6eeec1cf07ff7b22d6b752a924ff8a4a6801dca Mon Sep 17 00:00:00 2001 From: "hpages@fhcrc.org" Date: Fri, 15 May 2015 18:50:30 +0000 Subject: [PATCH] Move documentation and unit tests for makeSummarizedExperimentFromExpressionSet and related stuff to the new SummarizedExperiment package. git-svn-id: https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/GenomicRanges@103877 bc3139a8-67e5-0310-9ffc-ced21a209358 --- R/SummarizedExperiment-class.R | 2 +- ...akeSummarizedExperimentFromExpressionSet.R | 200 ------------------ man/SummarizedExperiment-class.Rd | 14 +- ...keSummarizedExperimentFromExpressionSet.Rd | 56 +---- man/mappingFunctions.Rd | 53 ----- 5 files changed, 18 insertions(+), 307 deletions(-) delete mode 100644 inst/unitTests/test_makeSummarizedExperimentFromExpressionSet.R delete mode 100644 man/mappingFunctions.Rd diff --git a/R/SummarizedExperiment-class.R b/R/SummarizedExperiment-class.R index e41a8ab..e87031b 100644 --- a/R/SummarizedExperiment-class.R +++ b/R/SummarizedExperiment-class.R @@ -834,7 +834,7 @@ setMethod(show, "SummarizedExperiment", scat("colData names(%d): %s\n", names(colData(object))) }) -## compatibility +## transition to RangedSummarizedExperiment suppressMessages( setAs("SummarizedExperiment", "RangedSummarizedExperiment", diff --git a/inst/unitTests/test_makeSummarizedExperimentFromExpressionSet.R b/inst/unitTests/test_makeSummarizedExperimentFromExpressionSet.R deleted file mode 100644 index f7cdea9..0000000 --- a/inst/unitTests/test_makeSummarizedExperimentFromExpressionSet.R +++ /dev/null @@ -1,200 +0,0 @@ -m <- matrix(1, 5, 3, dimnames=list(NULL, NULL)) -mlst <- matrix(1, 3, 3, dimnames=list(NULL, NULL)) -mList <- list(m, mlst) -assaysList <- list(gr=SimpleList(m=m), grl=SimpleList(m=mlst)) -rowRangesList <- - list(gr=GRanges("chr1", IRanges(1:5, 10)), - grl=split(GRanges("chr1", IRanges(1:5, 10)), c(1,1,2,2,3))) -names(rowRangesList[["grl"]]) <- NULL -colData <- DataFrame(x=letters[1:3]) - -## a list of one SE with GRanges and one with GRangesList -ssetList <- - list(SummarizedExperiment( - assays=assaysList[["gr"]], - rowRanges=rowRangesList[["gr"]], - colData=colData), - SummarizedExperiment( - assays=assaysList[["grl"]], - rowRanges=rowRangesList[["grl"]], - colData=colData)) - - -test_SummarizedExperiment_GenomicRanges_coercion <- function() -{ - if (requireNamespace("Biobase", quietly = TRUE)) { - eset1 <- Biobase::ExpressionSet() - - checkTrue(validObject(eset1)) - - se1 <- as(eset1, "SummarizedExperiment") - - checkTrue(validObject(se1)) - - data("sample.ExpressionSet", package = "Biobase") - - eset2 <- sample.ExpressionSet - checkTrue(validObject(eset2)) - - se2 <- as(eset2, "SummarizedExperiment") - - checkTrue(validObject(se2)) - - checkIdentical(Biobase::experimentData(eset2), - metadata(se2)$experimentData) - - checkIdentical(Biobase::annotation(eset2), - metadata(se2)$annotation) - - checkIdentical(Biobase::protocolData(eset2), - metadata(se2)$protocolData) - - eset2Assays <- SimpleList(as.list(Biobase::assayData(eset2))) - se2Assays <- assays(se2) - checkIdentical(eset2Assays$exprs, se2Assays$exprs) - checkIdentical(eset2Assays$se.exprs, se2Assays$se.exprs) - - checkIdentical(Biobase::featureNames(eset2), - rownames(se2)) - - checkIdentical(Biobase::sampleNames(eset2), - colnames(se2)) - } -} - -test_GenomicRanges_SummarizedExperiment_coercion <- function() -{ - if (requireNamespace("Biobase", quietly = TRUE)) { - assayData <- Biobase::assayData - experimentData <- Biobase::experimentData - annotation <- Biobase::annotation - protocolData <- Biobase::protocolData - featureNames <- Biobase::featureNames - featureData <- Biobase::featureData - sampleNames <- Biobase::sampleNames - pData <- Biobase::pData - - ## empty SE - simpleSE <- SummarizedExperiment() - - eset1 <- as(simpleSE, "ExpressionSet") - - checkTrue(validObject(eset1)) - - ## Back and forth empty ES - simpleES <- Biobase::ExpressionSet() - - simpleES2 <- as(as(simpleES, "SummarizedExperiment"), "ExpressionSet") - - checkTrue(validObject(simpleES2)) - - checkEquals(as.list(assayData(simpleES)), - as.list(assayData(simpleES2))) - - ## Simple SE - eset2 <- as(ssetList[[1]], "ExpressionSet") - checkTrue(validObject(eset2)) - - ## The ExpressionSet features should have the data from the - ## SummarizedExperiment rows if they are from GRanges. - checkIdentical(pData(featureData(eset2)), - as.data.frame(rowRanges(ssetList[[1]]))) - - # the rowRanges are retained if the object has them to begin with. - se2_2 <- as(eset2, "SummarizedExperiment") - rr_se2_2 <- unname(rowRanges(se2_2)) - rr_eset2 <- rowRanges(ssetList[[1]]) - checkEquals(rr_se2_2, rr_eset2) - - eset3 <- as(ssetList[[2]], "ExpressionSet") - checkTrue(validObject(eset3)) - - ## The ExpressionSet features should not have the data from the - ## SummarizedExperiment rows if they are from GRangesList, but they - ## should be empty and the same length as the number of ranges. - checkEquals(unname(NROW(featureData(eset3))), - unname(length(rowRanges(ssetList[[2]])))) - - data("sample.ExpressionSet", package = "Biobase") - eset4 <- sample.ExpressionSet - - eset5 <- as(as(eset4, "SummarizedExperiment"), "ExpressionSet") - - checkTrue(validObject(eset5)) - - ## this is necessary because the order in environments is undefined. - compareLists <- function(x, y) { - nmsX <- names(x) - nmsY <- names(y) - - reorderY <- match(nmsY, nmsX) - - checkIdentical(x, y[reorderY]) - } - - compareLists(as.list(assayData(eset4)), - as.list(assayData(eset5))) - - checkIdentical(experimentData(eset4), - experimentData(eset5)) - - checkIdentical(annotation(eset4), - annotation(eset5)) - - checkIdentical(protocolData(eset4), - protocolData(eset5)) - - checkIdentical(featureNames(eset4), - featureNames(eset5)) - - checkIdentical(sampleNames(eset4), - sampleNames(eset5)) - } -} - -test_GenomicRanges_SummarizedExperiment_coercion_mappingFunctions <- function() -{ - ExpressionSet <- Biobase::ExpressionSet - - ## naiveRangeMapper - ## valid object from empty object - checkTrue(validObject(makeSummarizedExperimentFromExpressionSet(ExpressionSet()))) - - ## valid object from sample ExpressionSet - data("sample.ExpressionSet", package = "Biobase") - eset1 <- sample.ExpressionSet - checkTrue(validObject(makeSummarizedExperimentFromExpressionSet(eset1))) - - ## makeSummarizedExperimentFromExpressionSet should be the same as `as` - ## with default args - checkEquals(makeSummarizedExperimentFromExpressionSet(eset1), - as(eset1, "SummarizedExperiment")) - - ## probeRangeMapper - ## valid object from empty object - checkTrue(validObject( - makeSummarizedExperimentFromExpressionSet(ExpressionSet(), - probeRangeMapper))) - - ## valid object from sample ExpressionSet - se1 <- makeSummarizedExperimentFromExpressionSet(eset1, probeRangeMapper) - checkTrue(validObject(se1)) - - ## Granges returned have rownames that were from the featureNames - checkTrue(all(rownames(rowRanges(se1)) %in% Biobase::featureNames(eset1))) - - ## geneRangeMapper - ## valid object from empty object - checkTrue(validObject( - makeSummarizedExperimentFromExpressionSet(ExpressionSet(), - geneRangeMapper(NULL)))) - - ## valid object from sample ExpressionSet - se2 <- makeSummarizedExperimentFromExpressionSet(eset1, - geneRangeMapper("TxDb.Hsapiens.UCSC.hg19.knownGene")) - checkTrue(validObject(se2)) - - ## Granges returned have rownames that were from the featureNames - checkTrue(all(rownames(rowRanges(se2)) %in% Biobase::featureNames(eset1))) -} - diff --git a/man/SummarizedExperiment-class.Rd b/man/SummarizedExperiment-class.Rd index 3c71cca..c78084e 100644 --- a/man/SummarizedExperiment-class.Rd +++ b/man/SummarizedExperiment-class.Rd @@ -15,12 +15,6 @@ \alias{SummarizedExperiment,list-method} \alias{SummarizedExperiment,SimpleList-method} -% Coercion methods: -\alias{coerce,ExpressionSet,SummarizedExperiment-method} -\alias{coerce,SummarizedExperiment,ExpressionSet-method} -\alias{coerce,SummarizedExperiment,RangedSummarizedExperiment-method} -\alias{updateObject,SummarizedExperiment-method} - % Accessor methods: \alias{assays} \alias{assays,SummarizedExperiment-method} @@ -145,6 +139,12 @@ % show method: \alias{show,SummarizedExperiment-method} +% transition to RangedSummarizedExperiment: +\alias{coerce,SummarizedExperiment,RangedSummarizedExperiment-method} +\alias{updateObject,SummarizedExperiment-method} +\alias{coerce,SummarizedExperiment,ExpressionSet-method} +\alias{coerce,ExpressionSet,SummarizedExperiment-method} + \title{SummarizedExperiment instances} \description{ @@ -153,7 +153,7 @@ replaced with the \link[SummarizedExperiment]{RangedSummarizedExperiment} class defined in the new \pkg{SummarizedExperiment} package. Please make sure to install the \pkg{SummarizedExperiment} package before - you attempt to call the \code{SummarizedExperiment()} constructor function. + you attempt to use the \code{SummarizedExperiment()} constructor function. Note that this will return a \link[SummarizedExperiment]{RangedSummarizedExperiment} instance instead of a SummarizedExperiment instance. diff --git a/man/makeSummarizedExperimentFromExpressionSet.Rd b/man/makeSummarizedExperimentFromExpressionSet.Rd index 35dcd35..d6e48fd 100644 --- a/man/makeSummarizedExperimentFromExpressionSet.Rd +++ b/man/makeSummarizedExperimentFromExpressionSet.Rd @@ -2,53 +2,17 @@ \alias{makeSummarizedExperimentFromExpressionSet} -\title{Make an SummarizedExperiment object from an ExpressionSet} +\title{Make a SummarizedExperiment object from an ExpressionSet} \description{ - \code{makeSummarizedExperimentFromExpressionSet} takes a - \link[Biobase]{ExpressionSet} object as input and a Range mapping function - that maps the features to ranges. It then returns a - \link{SummarizedExperiment} object. + WARNING: The SummarizedExperiment class is deprecated and being + replaced with the \link[SummarizedExperiment]{RangedSummarizedExperiment} + class defined in the new \pkg{SummarizedExperiment} package. + + Please make sure to install and load the \pkg{SummarizedExperiment} package + where the \code{makeSummarizedExperimentFromExpressionSet} function is now + defined and documented. Note that the function now returns a + \link[SummarizedExperiment]{RangedSummarizedExperiment} instance instead + of a \link{SummarizedExperiment} instance. } -\usage{ -makeSummarizedExperimentFromExpressionSet(from, - mapFun=naiveRangeMapper) -} - -\arguments{ - \item{from}{ - An \link[Biobase]{ExpressionSet} object. - } - \item{mapFun}{ - A function which takes an \link[Biobase]{ExpressionSet} object and - returns a \link{GRanges}, or \link{GRangesList} object which - corresponds to the genomic ranges used in the ExpressionSet. The - \link[base]{rownames} of the returned \link{GRanges} are used to match the - \link[Biobase]{featureNames} of the \link[Biobase]{ExpressionSet}. - \link{naiveRangeMapper}. - } -} - -\value{ - A \link{SummarizedExperiment} object that corresponds to the input. -} - -\seealso{ - \link{naiveRangeMapper}, \link{probeRangeMapper}, \link{geneRangeMapper} -} -\examples{ - - library(Biobase) - data(sample.ExpressionSet, package = "Biobase") - - # using the naive coercion - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet) - - # using probe range mapper - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet, probeRangeMapper) - - # using the gene range mapper - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet, - geneRangeMapper("TxDb.Hsapiens.UCSC.hg19.knownGene")) -} diff --git a/man/mappingFunctions.Rd b/man/mappingFunctions.Rd deleted file mode 100644 index 9493b60..0000000 --- a/man/mappingFunctions.Rd +++ /dev/null @@ -1,53 +0,0 @@ -\name{mappingFunctions} - -\alias{mappingFunctions} -\alias{naiveRangeMapper} -\alias{probeRangeMapper} -\alias{geneRangeMapper} - -\title{Mapping Functions used in \link{makeSummarizedExperimentFromExpressionSet}} - -\description{ - These mapping functions are used in the \code{mapFun} argument to - \link{makeSummarizedExperimentFromExpressionSet}. -} - -\usage{ - naiveRangeMapper(from) - - probeRangeMapper(from) - - geneRangeMapper(txDbPackage, key = "ENTREZID") -} - -\arguments{ - \item{from}{ - An \link[Biobase]{ExpressionSet} object. - } - \item{txDbPackage}{ - A character string with the Transcript Database to use for the mapping. - } - \item{key}{ - A character string with the Gene key to use for the mapping. - } -} - -\value{ - A \link{GRanges} object, with the \code{rownames} corresponding to the - \link[Biobase]{featureNames} of the \link[Biobase]{ExpressionSet} object. -} -\examples{ - - library(Biobase) - data(sample.ExpressionSet, package = "Biobase") - - # using the naive coercion - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet) - - # using probe range mapper - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet, probeRangeMapper) - - # using the gene range mapper - makeSummarizedExperimentFromExpressionSet(sample.ExpressionSet, - geneRangeMapper("TxDb.Hsapiens.UCSC.hg19.knownGene")) -}