diff --git a/DESCRIPTION b/DESCRIPTION index 318716d63..f377755b7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: mia Type: Package -Version: 1.21.5 +Version: 1.21.6 Authors@R: c(person(given = "Tuomas", family = "Borman", role = c("aut", "cre"), email = "tuomas.v.borman@utu.fi", diff --git a/data/ibdmdb.rda b/data/ibdmdb.rda index 053a10773..2c6f3ec13 100644 Binary files a/data/ibdmdb.rda and b/data/ibdmdb.rda differ diff --git a/inst/scripts/prepare_ibdmdb.R b/inst/scripts/prepare_ibdmdb.R index 107830a70..7b20e4772 100644 --- a/inst/scripts/prepare_ibdmdb.R +++ b/inst/scripts/prepare_ibdmdb.R @@ -153,7 +153,7 @@ make_SE <- function(mat, meta_df = NULL, assay_name = "counts") { )) } - md <- as.data.frame(meta_df, stringsAsFactors = FALSE, check.names = FALSE) + md <- meta_df overlaps <- vapply( md, @@ -182,7 +182,7 @@ make_SE <- function(mat, meta_df = NULL, assay_name = "counts") { SummarizedExperiment::SummarizedExperiment( assays = setNames(list(mat), assay_name), - colData = S4Vectors::DataFrame(md_sub) + colData = md_sub ) } @@ -210,6 +210,7 @@ if (length(missing_files)) { # ------------------------------------------------------------------------------ meta_full <- read_metadata(f_meta) +meta_full <- DataFrame(meta_full, check.names = FALSE) # ------------------------------------------------------------------------------ # Prepare 2-omic (MGX + MTX) @@ -252,9 +253,51 @@ M_mtx <- M_mtx[, shared2, drop = FALSE] M_mgx <- cap_by_var(M_mgx, cap_mgx) M_mtx <- cap_by_var(M_mtx, cap_mtx) -meta_df <- meta_full +meta_df <- meta_full[meta_full$data_type %in% "metagenomics", ] se_mgx <- make_SE(M_mgx, meta_df, assay_name = "mgx") +# Split taxa into taxonomy +rd <- mia:::.parse_taxonomy(data.frame(Taxon = rownames(se_mgx)), sep = "\\|", remove.prefix = TRUE) +rownames(rd) <- rownames(se_mgx) +rowData(se_mgx) <- rd +se_mgx <- agglomerateByRanks(se_mgx) +se_mgx <- swapAltExp(se_mgx, "species", "original") + +meta_df <- meta_full[meta_full$data_type %in% "metatranscriptomics", ] se_mtx <- make_SE(M_mtx, meta_df, assay_name = "mtx") +# Create a feature metadata table +df <- data.frame( + feature = rownames(se_mtx), + stringsAsFactors = FALSE +) +df$gene_function <- sub("\\|.*$", "", df$feature) +df$taxon <- ifelse( + grepl("\\|", df$feature), + sub("^.*\\|", "", df$feature), + NA_character_ +) +# Create function + bacteria identifier +df$gene_taxon <- ifelse( + !is.na(df$taxon), + paste(df$gene_function, df$taxon, sep = "|"), + NA_character_ +) +df <- DataFrame(df) +rownames(df) <- rownames(se_mtx) +rowData(se_mtx) <- df +se_mtx <- as(se_mtx, "TreeSummarizedExperiment") + +# Function level +altExp(se_mtx, "gene_function") <- agglomerateByVariable( + se_mtx, + by = 1, + group = "gene_function" +) +# Function + bacteria level +altExp(se_mtx, "gene_taxon") <- agglomerateByVariable( + se_mtx, + by = 1, + group = "gene_taxon" +) mae <- MultiAssayExperiment::MultiAssayExperiment( experiments = list(MGX = se_mgx, MTX = se_mtx)