diff --git a/DESCRIPTION b/DESCRIPTION index bc27c0c1c..edaaef985 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -69,8 +69,7 @@ Imports: S4Vectors, XML, scales, - Rcpp, - SummarizedExperiment + Rcpp Suggests: testthat, pryr, @@ -92,7 +91,8 @@ Suggests: imputeLCMD, norm, gplots, - shiny + shiny, + SummarizedExperiment LinkingTo: Rcpp License: Artistic-2.0 LazyData: yes diff --git a/R/msnset2se.R b/R/msnset2se.R index 1098504ce..427d521f9 100644 --- a/R/msnset2se.R +++ b/R/msnset2se.R @@ -11,10 +11,20 @@ setAs("MSnSet", rowData <- fData(from) colData <- pData(from) + # Extract metadata + metaData <- list( + processingData = processingData(from), + experimentData = experimentData(from), + protocolData = protocolData(from), + annotation = annotation(from), + qual = qual(from)) + # Generate SE - SummarizedExperiment(assays = as.matrix(raw), + SummarizedExperiment::SummarizedExperiment( + assays = as.matrix(raw), rowData = rowData, - colData = colData) + colData = colData, + metadata = metaData) }) setAs("SummarizedExperiment", @@ -26,12 +36,32 @@ setAs("SummarizedExperiment", } # Extract expression, feature and pheno data - raw <- assay(from) - featData <- data.frame(rowData(from), row.names = names(from)) - phenoData <- data.frame(colData(from)) + raw <- SummarizedExperiment::assay(from) + featData <- data.frame( + SummarizedExperiment::rowData(from), + row.names = names(from)) + phenoData <- data.frame(SummarizedExperiment::colData(from)) + + # Extract metadata + processingData = metadata(from)$processingData + experimentData = metadata(from)$experimentData + protocolData = metadata(from)$protocolData + annotation = metadata(from)$annotation + qual = metadata(from)$qual # Generate MSnSet - MSnSet(exprs = as.matrix(raw), + msnset <- MSnSet(exprs = as.matrix(raw), pData = AnnotatedDataFrame(phenoData), fData = AnnotatedDataFrame(featData)) -}) \ No newline at end of file + if(!is.null(experimentData)) + msnset@experimentData <- experimentData + if(!is.null(processingData)) + msnset@processingData <- processingData + if(!is.null(protocolData)) + msnset@protocolData <- protocolData + if(!is.null(annotation)) + msnset@annotation <- annotation + if(!is.null(qual)) + msnset@qual <- qual + return(msnset) +}) diff --git a/tests/testthat/test_msnset_se_coercions.R b/tests/testthat/test_msnset_se_coercions.R index 4ef365c90..316903e7d 100644 --- a/tests/testthat/test_msnset_se_coercions.R +++ b/tests/testthat/test_msnset_se_coercions.R @@ -1,15 +1,23 @@ context("msnset - se conversion methods") test_that("msnset to se conversion", { - data(msnset, package = "MSnbase") - se <- as(msnset, "SummarizedExperiment") - - expect_is(se, "SummarizedExperiment") - expect_equal(colnames(msnset), colnames(se)) - expect_equal(rownames(msnset), rownames(se)) - expect_equal(exprs(msnset), assay(se)) - expect_equal(fData(msnset), data.frame(rowData(se), row.names = names(se))) - expect_equal(pData(msnset), data.frame(colData(se))) + data(msnset, package = "MSnbase") + se <- as(msnset, "SummarizedExperiment") + + expect_is(se, "SummarizedExperiment") + expect_equal(colnames(msnset), colnames(se)) + expect_equal(rownames(msnset), rownames(se)) + expect_equal( + exprs(msnset), + SummarizedExperiment::assay(se)) + expect_equal( + fData(msnset), + data.frame( + SummarizedExperiment::rowData(se), + row.names = names(se))) + expect_equal( + pData(msnset), + data.frame(SummarizedExperiment::colData(se))) }) test_that("se to msnset conversion", { @@ -18,9 +26,13 @@ test_that("se to msnset conversion", { msnset_back <- as(se, "MSnSet") expect_is(msnset_back, "MSnSet") - expect_equal(colnames(msnset_back), colnames(se)) - expect_equal(rownames(msnset_back), rownames(se)) - expect_equal(exprs(msnset_back), assay(se)) - expect_equal(fData(msnset_back), data.frame(rowData(se), row.names = names(se))) - expect_equal(pData(msnset_back), data.frame(colData(se))) + expect_equal(colnames(msnset_back), colnames(msnset)) + expect_equal(rownames(msnset_back), rownames(msnset)) + expect_equal(exprs(msnset_back), exprs(msnset)) + expect_equal(fData(msnset_back), fData(msnset)) + expect_equal(pData(msnset_back), pData(msnset)) + expect_equal(experimentData(msnset_back), experimentData(msnset)) + expect_equal(protocolData(msnset_back), protocolData(msnset)) + expect_equal(processingData(msnset_back), processingData(msnset)) + expect_equal(qual(msnset_back), qual(msnset)) })