## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

if (!requireNamespace("HuMMANet", quietly = TRUE)) {
  stop("Package 'HuMMANet' must be installed to render this vignette.")
}

## ----install-bioc, eval = FALSE-----------------------------------------------
# if (!requireNamespace("BiocManager", quietly = TRUE)) {
#     install.packages("BiocManager")
# }
# BiocManager::install("HuMMANet")

## ----install-github, eval = FALSE---------------------------------------------
# if (!requireNamespace("remotes", quietly = TRUE)) {
#     install.packages("remotes")
# }
# remotes::install_github("ShivangiV-IIITD/HuMMANet")

## ----load-packages------------------------------------------------------------
library(HuMMANet)
library(MultiAssayExperiment)
library(SummarizedExperiment)

## ----list-studies-------------------------------------------------------------
studies <- HuMMANet_studies()
length(studies)
head(studies)

## ----study-index--------------------------------------------------------------
idx <- HuMMANet_study_index()
head(
  idx[, c(
    "study",
    "has_MetadataProfile",
    "has_taxaAbundanceProfile",
    "has_OriginalMetaboliteProfile",
    "has_harmonizedMetaboliteProfile"
  )]
)

## ----load-study---------------------------------------------------------------
study_id <- idx$study[[1]]
available <- HuMMANet_available_modalities(
  study_id
)
available

one_study <- HuMMANet_load_study(
  study_id
)
class(one_study)
names(experiments(one_study))
colData(one_study)[1:3, 1:6]

## ----inspect-structure--------------------------------------------------------
experiments(one_study)
sampleMap(one_study)

## ----load-metadata------------------------------------------------------------
metadata_profile <- HuMMANet_load_modality(
  study_id,
  "MetadataProfile"
)
dim(metadata_profile)
head(metadata_profile[, seq_len(min(6, ncol(metadata_profile)))])

## ----original-profile---------------------------------------------------------
original_profile <- HuMMANet_load_modality(
  study_id,
  "OriginalMetaboliteProfile"
)
class(original_profile)
dim(assay(original_profile))
head(rownames(original_profile))
head(colnames(original_profile))

## ----harmonized-profile-------------------------------------------------------
harmonized_profile <- HuMMANet_load_modality(
  study_id,
  "harmonizedMetaboliteProfile"
)
class(harmonized_profile)
dim(assay(harmonized_profile))
head(
  rowData(harmonized_profile)[, seq_len(min(6, ncol(rowData(harmonized_profile))))]
)

## ----taxa-profile-------------------------------------------------------------
taxa_profile <- HuMMANet_load_modality(
  study_id,
  "taxaAbundanceProfile"
)
class(taxa_profile)
dim(assay(taxa_profile))
head(rownames(taxa_profile))
head(colnames(taxa_profile))

## ----pathway-annotations------------------------------------------------------
pathway_annotations <- HuMMANet_load_modality(
  study_id,
  "metabolitePathwayAnnotations"
)
dim(pathway_annotations)
head(pathway_annotations[, seq_len(min(6, ncol(pathway_annotations)))])

## ----study-metadata-slot------------------------------------------------------
names(metadata(one_study))

## ----assay-matrices-----------------------------------------------------------
harm_mat <- assay(harmonized_profile)
taxa_mat <- assay(taxa_profile)

dim(harm_mat)
dim(taxa_mat)

## ----subset-study-------------------------------------------------------------
sample_keep <- rownames(colData(one_study))[seq_len(min(5, nrow(colData(one_study))))]
study_subset <- one_study[, sample_keep]

study_subset

## ----multiple-studies---------------------------------------------------------
selected_studies <- studies[seq_len(min(2, length(studies)))]
multi <- HuMMANet(
    studies = selected_studies,
    modalities = c("MetadataProfile", "OriginalMetaboliteProfile")
)

names(multi)
class(multi[[1]])
names(experiments(multi[[1]]))

## ----session-info-------------------------------------------------------------
sessionInfo()

