Skip to contents

Combines two pre-constructed SummarizedExperiment objects (e.g. lipidomics and RNA-seq) into a single MultiAssayExperiment object for downstream multi-omics integration analysis. The colData of both SummarizedExperiment objects must share the same column structure (produced by constructing lipidSE with se_type="de_two" or se_type="de_multiple", and rnaSE with se_type="rna" using a matching group_info layout, both via as_summarized_experiment).

Usage

as_MultiAssayExperiment(lipidSE, rnaSE)

Arguments

lipidSE

A SummarizedExperiment object constructed by as_summarized_experiment() with se_type="de_two" or se_type="de_multiple" (the only two layouts rnaSE's group_info can match; see rnaSE below).

rnaSE

A SummarizedExperiment object constructed by as_summarized_experiment(..., se_type="rna"), whose group_info must follow the de_two or de_multiple column layout ("ml"/"corr" layouts are not supported for "rna") and must match the one used for lipidSE.

Value

A MultiAssayExperiment object.

Examples

library(dplyr)
#> 
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
library(magrittr)
data("abundance_lipidOmics")
data("abundance_rna")
data("group_info_multiOmics")

## lipidomics SE - de_two-style group_info (2 groups)
parse_lipid <- rgoslin::parseLipidNames(lipidNames=abundance_lipidOmics$feature)
recognized_lipid <- parse_lipid$Original.Name[which(parse_lipid$Grammar != 'NOT_PARSEABLE')]
lipid_abundance <- abundance_lipidOmics %>% dplyr::filter(feature %in% recognized_lipid)
lipid_char_table <- parse_lipid %>% dplyr::filter(Original.Name %in% recognized_lipid)
lipidSE <- as_summarized_experiment(
    lipid_abundance, lipid_char_table, group_info=group_info_multiOmics,
    se_type='de_two', paired_sample=FALSE)
#> Input data info 
#> se_type: de_two
#> Number of lipids (features) available for analysis: 333
#> Number of samples: 59
#> Number of group: 2
#> Not paired samples.

## RNA SE built with se_type='rna', reusing the same group_info so its
## colData structure matches lipidSE's
rnaSE <- as_summarized_experiment(
    abundance_rna, goslin_annotation=NULL, group_info=group_info_multiOmics,
    se_type='rna')
#> Input data info 
#> se_type: rna
#> Number of features available for analysis: 1118
#> Number of samples: 59
#> Number of group: 2
#> Not paired samples.

## combine into a single MultiAssayExperiment
mae <- as_MultiAssayExperiment(lipidSE, rnaSE)
#> MultiAssayExperiment info 
#> Experiments: lipidomics, rna
#>   lipidomics: 333 features x 59 samples
#>   rna: 1118 features x 59 samples
#> Number of subjects with complete data across all experiments: 59