diff --git a/NAMESPACE b/NAMESPACE index 1ec0a6c..a4e09f2 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,6 +1,7 @@ # Generated by roxygen2: do not edit by hand S3method(.DollarNames,MultiAssayExperiment) +export("drops<-") export("experiments<-") export("sampleMap<-") export(DataFrame) @@ -9,6 +10,7 @@ export(MatchedAssayExperiment) export(MultiAssayExperiment) export(MultiAssayExperimentToMAF) export(anyReplicated) +export(drops) export(experiments) export(exportClass) export(getWithColData) @@ -47,7 +49,6 @@ exportMethods("[[<-") exportMethods("colData<-") exportMethods("colnames<-") exportMethods("experiments<-") -exportMethods("metadata<-") exportMethods("names<-") exportMethods("sampleMap<-") exportMethods(anyReplicated) @@ -58,13 +59,13 @@ exportMethods(colData) exportMethods(colnames) exportMethods(complete.cases) exportMethods(dimnames) +exportMethods(drops) exportMethods(experiments) exportMethods(exportClass) exportMethods(hasRowRanges) exportMethods(isEmpty) exportMethods(length) exportMethods(mergeReplicates) -exportMethods(metadata) exportMethods(names) exportMethods(replicated) exportMethods(replicates) diff --git a/R/MultiAssayExperiment-class.R b/R/MultiAssayExperiment-class.R index 78ffaa0..f5045c7 100644 --- a/R/MultiAssayExperiment-class.R +++ b/R/MultiAssayExperiment-class.R @@ -560,12 +560,6 @@ setMethod("colData", "MultiAssayExperiment", function(x, ...) { getElement(x, "colData") }) -#' @exportMethod metadata -#' @rdname MultiAssayExperiment-methods -setMethod("metadata", "MultiAssayExperiment", function(x) - c(getElement(x, "metadata"), drops = getElement(x, "drops")) -) - ### - - - - - - - - - - - - - - - - - - - - - - - - ### Getters ### @@ -582,6 +576,15 @@ setMethod("names", "MultiAssayExperiment", function(x) names(experiments(x)) ) +#' @export +setGeneric("drops", function(x) standardGeneric("drops")) + +#' @exportMethod drops +#' @describeIn MultiAssayExperiment Get information about dropped experiments +setMethod("drops", "MultiAssayExperiment", function(x) { + getElement(x, "drops") +}) + ### - - - - - - - - - - - - - - - - - - - - - - - - ### Replacers ### @@ -623,6 +626,7 @@ setReplaceMethod("sampleMap", c("MultiAssayExperiment", "ANY"), setGeneric("experiments<-", function(object, value) standardGeneric("experiments<-")) +#' @export setGeneric("drops<-", function(x, ..., value) standardGeneric("drops<-")) #' @exportMethod experiments<- @@ -630,9 +634,10 @@ setGeneric("drops<-", function(x, ..., value) standardGeneric("drops<-")) setReplaceMethod("experiments", c("MultiAssayExperiment", "ExperimentList"), function(object, value) { if (!any(names(object) %in% names(value)) && !isEmpty(object)) { + if (isEmpty(drops(x))) + warning("'experiments' dropped; see 'drops()'", call. = FALSE) drops(object) <- list(experiments = setdiff(names(object), names(value))) - warning("'experiments' dropped; see 'metadata'", call. = FALSE) } o_cnames <- colnames(object) v_cnames <- colnames(value) @@ -725,14 +730,6 @@ setReplaceMethod("colData", c("MultiAssayExperiment", "ANY"), colname = sampMap[["assay"]])) } -#' @exportMethod metadata<- -#' @rdname MultiAssayExperiment-methods -setReplaceMethod("metadata", c("MultiAssayExperiment", "ANY"), - function(x, ..., value) { - slot(x, "metadata") <- value - return(x) -}) - setReplaceMethod("drops", c("MultiAssayExperiment", "ANY"), function(x, ..., value) { anydrops <- getElement(x, "drops")[["experiments"]] diff --git a/R/subsetBy-methods.R b/R/subsetBy-methods.R index d8c85e5..2378d72 100644 --- a/R/subsetBy-methods.R +++ b/R/subsetBy-methods.R @@ -333,8 +333,9 @@ setMethod("subsetByAssay", c("MultiAssayExperiment", "ANY"), function(x, y) { subexp <- experiments(x)[y] dropnames <- setdiff(names(experiments(x)), names(subexp)) if (length(dropnames)) { + if (isEmpty(drops(x))) + warning("'experiments' dropped; see 'drops()'", call. = FALSE) drops(x) <- list(experiments = dropnames) - warning("'experiments' dropped; see 'metadata'", call. = FALSE) } experiments(x) <- subexp return(x) diff --git a/man/MultiAssayExperiment-class.Rd b/man/MultiAssayExperiment-class.Rd index f944217..6fbff6d 100644 --- a/man/MultiAssayExperiment-class.Rd +++ b/man/MultiAssayExperiment-class.Rd @@ -7,6 +7,7 @@ \alias{show,MultiAssayExperiment-method} \alias{length,MultiAssayExperiment-method} \alias{names,MultiAssayExperiment-method} +\alias{drops,MultiAssayExperiment-method} \alias{updateObject,MultiAssayExperiment-method} \alias{coerce-MultiAssayExperiment} \alias{coerce,list,MultiAssayExperiment-method} @@ -27,6 +28,8 @@ \S4method{names}{MultiAssayExperiment}(x) +\S4method{drops}{MultiAssayExperiment}(x) + \S4method{updateObject}{MultiAssayExperiment}(object, ..., verbose = FALSE) \S4method{dimnames}{MultiAssayExperiment}(x) @@ -124,6 +127,8 @@ named arguments. See the examples below. \item \code{names(MultiAssayExperiment)}: Get the names of the ExperimentList +\item \code{drops(MultiAssayExperiment)}: Get information about dropped experiments + \item \code{updateObject(MultiAssayExperiment)}: Update old serialized MultiAssayExperiment objects to new API diff --git a/man/MultiAssayExperiment-methods.Rd b/man/MultiAssayExperiment-methods.Rd index 1b3e16f..32e860d 100644 --- a/man/MultiAssayExperiment-methods.Rd +++ b/man/MultiAssayExperiment-methods.Rd @@ -10,14 +10,12 @@ \alias{sampleMap,MultiAssayExperiment-method} \alias{experiments,MultiAssayExperiment-method} \alias{colData,MultiAssayExperiment-method} -\alias{metadata,MultiAssayExperiment-method} \alias{sampleMap<-,MultiAssayExperiment,DataFrame-method} \alias{sampleMap<-,MultiAssayExperiment,ANY-method} \alias{experiments<-,MultiAssayExperiment,ExperimentList-method} \alias{experiments<-,MultiAssayExperiment,List-method} \alias{colData<-,MultiAssayExperiment,DataFrame-method} \alias{colData<-,MultiAssayExperiment,ANY-method} -\alias{metadata<-,MultiAssayExperiment-method} \alias{$<-,MultiAssayExperiment-method} \alias{names<-,MultiAssayExperiment-method} \alias{colnames<-,MultiAssayExperiment,List-method} @@ -31,8 +29,6 @@ \S4method{colData}{MultiAssayExperiment}(x, ...) -\S4method{metadata}{MultiAssayExperiment}(x) - \S4method{sampleMap}{MultiAssayExperiment,DataFrame}(object) <- value \S4method{sampleMap}{MultiAssayExperiment,ANY}(object) <- value @@ -45,8 +41,6 @@ \S4method{colData}{MultiAssayExperiment,ANY}(x) <- value -\S4method{metadata}{MultiAssayExperiment}(x, ...) <- value - \S4method{$}{MultiAssayExperiment}(x, name) <- value \S4method{names}{MultiAssayExperiment}(x) <- value