Chapter 10 Test Example

10.1 Loading packages

library(XMAS2)
library(dplyr)
library(tibble)
library(phyloseq)
library(ggplot2)
library(ggpubr)
library(readxl)

10.2 Loading data

metaphlan2_res <- read.table("DataSet/RawData/merged_metaphlan2.tsv",
                             header = TRUE, stringsAsFactors = FALSE) %>%
  tibble::rownames_to_column("ID")

metadata <- readxl::read_xlsx("DataSet/RawData/诺禾宏基因组678月-ZH.xlsx", sheet = 3)

10.3 Step1: Convert inputs into phyloseq data

metaphlan2_res_list <- import_metaphlan_taxa(data_metaphlan2 = metaphlan2_res, 
                                             taxa_level = "Species")
tax_tab <- metaphlan2_res_list$tax_tab

otu_tab <- metaphlan2_res_list$abu_tab
colnames(otu_tab) <- gsub("X", "S_", colnames(otu_tab))

sam_tab <- metadata %>% data.frame() %>%
  dplyr::mutate(Group=ifelse(SampleType == "粪便", "Stool", 
                             ifelse(SampleType == "QC", "QC", "Product"))) %>%
  dplyr::select(SampleTubeID, Group, everything())
rownames(sam_tab) <- paste0("S_", sam_tab$SeqID_MGS)

overlap_samples <- intersect(rownames(sam_tab), colnames(otu_tab))

otu_tab_cln <- otu_tab[, match(overlap_samples, colnames(otu_tab))]
sam_tab_cln <- sam_tab[match(overlap_samples, rownames(sam_tab)), ]
rownames(sam_tab_cln) <- overlap_samples

metaphlan2_ps <- get_metaphlan_phyloseq(
                    otu_tab = otu_tab_cln, 
                    sam_tab = sam_tab_cln,
                    tax_tab = tax_tab)
metaphlan2_ps
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 315 taxa and 145 samples ]
## sample_data() Sample Data:       [ 145 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 315 taxa by 7 taxonomic ranks ]
if (!dir.exists("DataSet/Step1/")) {
  dir.create("DataSet/Step1/")
}
saveRDS(metaphlan2_ps, "DataSet/Step1/Donor_MGS_phyloseq.RDS", compress = TRUE)

10.4 Step2: Transform limit of detection (LOD) into Zeros

# species
metaphlan2_ps_LOD_species <- aggregate_LOD_taxa(ps = metaphlan2_ps, 
                                                taxa_level = "Species", 
                                                cutoff = 1e-04)

# genus
metaphlan2_ps_LOD_genus <- aggregate_LOD_taxa(ps = metaphlan2_ps, 
                                              taxa_level = "Genus", 
                                              cutoff = 1e-04)

# order
metaphlan2_ps_LOD_order <- aggregate_LOD_taxa(ps = metaphlan2_ps, 
                                              taxa_level = "Order", 
                                              cutoff = 1e-04)

if (!dir.exists("DataSet/Step2/")) {
  dir.create("DataSet/Step2/")
}
saveRDS(metaphlan2_ps_LOD_species, "DataSet/Step2/Donor_MGS_phyloseq_LOD_species.RDS", compress = TRUE)
saveRDS(metaphlan2_ps_LOD_genus, "DataSet/Step2/Donor_MGS_phyloseq_LOD_genus.RDS", compress = TRUE)
saveRDS(metaphlan2_ps_LOD_order, "DataSet/Step2/Donor_MGS_phyloseq_LOD_order.RDS", compress = TRUE)

10.5 Step3: BRS checking

metaphlan2_ps <- readRDS("DataSet/Step1/Donor_MGS_phyloseq.RDS")
metaphlan2_ps_LOD_species <- aggregate_LOD_taxa(ps = metaphlan2_ps, 
                                                taxa_level = "Species", 
                                                cutoff = 1e-04)
tail(metaphlan2_ps_LOD_species@sam_data %>% data.frame())
##             SampleTubeID   Group Date_Sequencing ProductID SampleType ProductBatch Date_Sampling Date_Receiving SeqID_MGS SeqID_16s
## S_7769      GGM50-210730   Stool      2021-08-03       M50       粪便 CYM50-210735    2021.07.30     2021-08-06      7769      7929
## S_7770 CYM50-210735-0727 Product      2021-08-03       M50   肠菌胶囊 CYM50-210735    2021.07.27     2021-08-06      7770      7930
## S_7771 CYM50-210735-0728 Product      2021-08-03       M50   肠菌胶囊 CYM50-210735    2021.07.28     2021-08-06      7771      7931
## S_7772 CYM50-210735-0729 Product      2021-08-03       M50   肠菌胶囊 CYM50-210735    2021.07.29     2021-08-06      7772      7932
## S_7773 CYM50-210735-0730 Product      2021-08-03       M50   肠菌胶囊 CYM50-210735    2021.07.30     2021-08-06      7773      7933
## S_7222         Community      QC            <NA>       Ref         QC         <NA>          <NA>           <NA>      7222      7327
##                                                    Pipeline_MGS
## S_7769 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
## S_7770 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
## S_7771 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
## S_7772 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
## S_7773 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
## S_7222 /share/work/HPC/work_tmp/PipelineJob_180_20210923/output
##                                                                Pipeline_16s
## S_7769 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
## S_7770 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
## S_7771 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
## S_7772 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
## S_7773 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
## S_7222 /share/projects/Engineering/pipeline_output/PipelineJob_304_20211203
run_RefCheck(
    ps = metaphlan2_ps_LOD_species,
    BRS_ID = "S_7222",
    Ref_type = "MGS"L)
## Noting: the Reference Matrix is for MGS
## 
## ############Matched baterica of the BRS sample#############
## The number of BRS' bacteria matched the Reference Matrix is [2]
## s__Enterococcus_faecalis
## s__Escherichia_coli
## The number of bacteria unmatched the Reference Matrix is [25]
## s__Bacteroides_fragilis
## s__Parabacteroides_goldsteinii
## s__Lactobacillus_salivarius
## s__Enterococcus_faecium
## s__Bifidobacterium_longum
## s__Bacteroides_ovatus
## s__Coprococcus_comes
## s__Bacteroides_vulgatus
## s__Bifidobacterium_adolescentis
## s__Bacteroides_thetaiotaomicron
## s__Streptococcus_salivarius
## s__Dorea_formicigenerans
## s__Bifidobacterium_pseudocatenulatum
## s__Bacteroides_uniformis
## s__Bacteroides_xylanisolvens
## s__Prevotella_copri
## s__Bifidobacterium_bifidum
## s__Lactobacillus_pentosus
## s__Eggerthella_unclassified
## s__Faecalibacterium_prausnitzii
## s__Collinsella_aerofaciens
## s__Propionibacterium_acnes
## s__Lachnospiraceae_bacterium_5_1_63FAA
## s__Bacteroides_intestinalis
## s__Roseburia_hominis
## The number of the additional bacteria compared to the Reference Matrix is [2]
## ###########################################################
## 
## ##################Status of the BRS sample##################
## Whether the BRS has the all bateria of Reference Matrix: FALSE
## Correlation Coefficient of the BRS is: 2.22e-16
## Bray Curtis of the BRS is: 0.08567
## Impurity of the BRS is: 72.95
## ###########################################################
## #####Final Evaluation Results of the BRS #######
## The BRS of sequencing dataset didn't pass the cutoff of the Reference Matrix
## ###########################################################
##                          10471    10636    10637    10639    10640    10769    11115    11708    12592    13164    13331    13837
## Enterococcus_faecalis 12.22545 12.95765 13.26370 16.90821 15.50012 11.14008 10.80865 11.15036 16.95287 13.54415 11.91148 12.42703
## Escherichia_coli      10.45990  9.62134  9.25891  9.45073  8.59647  8.01447  8.62655  8.29413  7.91170  8.38669  8.77327  9.16687
## Impurity_level         4.70413  4.52902  4.60861  1.87475  1.92536  1.77555  3.36663  3.85245  0.03527  3.47337  3.73338  4.44354
##                          13864    13883    14294    14353    14514    14692    15043    15377    15378    15919    16048    16316
## Enterococcus_faecalis 11.73824 15.02487 12.04265 13.30646 13.04880 17.03368 18.19633 16.87963 13.65086 12.75575 10.71452 13.58463
## Escherichia_coli       7.65961  8.07574  7.18094  9.02693  8.01771  9.24078  7.50739  7.81145  8.85383  7.89352  7.46987  7.83391
## Impurity_level         2.38221  2.32083  2.82561  4.48127  6.06169  1.42752  0.82386  2.80354  3.66638  2.44231  3.65887  2.15969
##                          16319    16347    16379    16416    16643    17346    17358    17367    17447    17574    17614    17907
## Enterococcus_faecalis 13.51058 14.39433 15.84027 14.32948 13.60631 13.57461 11.97870 11.20007  2.89096 12.52717 15.21587 13.87337
## Escherichia_coli       7.78559  9.97867  8.76792  8.12718  8.24203  8.37464  8.52090  8.02366 14.61317  3.25451  5.65047 11.56616
## Impurity_level         2.12420  4.66298  1.74884  2.89559  3.16093  1.91433  2.22895  3.95869  1.63455  1.26012  2.52024  5.35382
##                          18003    18123    18158    18254    18652    18748    18883    19025    19151    19175     7682     7683
## Enterococcus_faecalis 14.26032 14.59397 20.35865 16.85781 14.74892 14.89502 21.71030 15.03847 15.11212 15.87920 11.92169 12.99330
## Escherichia_coli      10.65107 10.69954  9.75794 11.92552  9.79362 11.73026  6.23209  9.48271  9.97228  9.95575  8.44917  7.97261
## Impurity_level         5.03729  4.67436  0.71954  2.20140  3.52704  4.37791  0.69343  3.11022  3.96834  3.24676  2.67618  2.24664
##                           7684     7685     7842     7843     7844     7845     8108     8635     8952     9456    9474   S_7222
## Enterococcus_faecalis 12.58464 12.26114 13.80341 13.53297 13.30763 13.29233 14.05273 17.27500 18.58891 18.13412 7.62186 17.19286
## Escherichia_coli       7.82872  7.39019 10.55559 10.31875 10.30313 11.16387  8.98268 10.86530  7.08166  8.03494 6.22940  9.85431
## Impurity_level         2.35311  1.45627  2.83764  3.70535  3.55981  4.66901  3.32214  1.31017  0.99781  0.53936 1.74945 72.95000
##                            mean                                              Evaluation
## Enterococcus_faecalis 13.995421 S_7222 didn't pass the threshold (2023-04-12 14:12:03).
## Escherichia_coli       8.854478 S_7222 didn't pass the threshold (2023-04-12 14:12:03).
## Impurity_level         4.046139 S_7222 didn't pass the threshold (2023-04-12 14:12:03).
metaphlan2_ps_LOD_species_remove_BRS <- get_GroupPhyloseq(
                                           ps = metaphlan2_ps_LOD_species,
                                           group = "Group",
                                           group_names = "QC",
                                           discard = TRUE)
metaphlan2_ps_LOD_species_remove_BRS
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 180 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 180 taxa by 7 taxonomic ranks ]
if (!dir.exists("DataSet/Step3/")) {
  dir.create("DataSet/Step3/")
}
saveRDS(metaphlan2_ps_LOD_species_remove_BRS, "DataSet/Step3/Donor_MGS_phyloseq_LOD_species_remove_BRS.RDS", compress = TRUE)

10.6 Step4: Extracting specific taxonomic level

  • Removing spike-in sample (BRS)
metaphlan2_ps <- readRDS("DataSet/Step1/Donor_MGS_phyloseq.RDS")
metaphlan2_ps_remove_BRS <- get_GroupPhyloseq(
                               ps = metaphlan2_ps,
                               group = "Group",
                               group_names = "QC",
                               discard = TRUE)
metaphlan2_ps_LOD_species_remove_BRS
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 180 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 180 taxa by 7 taxonomic ranks ]
  • Species
metaphlan2_ps_remove_BRS_LOD_species <- aggregate_LOD_taxa(
                                                ps = metaphlan2_ps_remove_BRS, 
                                                taxa_level = "Species", 
                                                cutoff = 1e-04)
metaphlan2_ps_remove_BRS_LOD_species
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 180 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 180 taxa by 7 taxonomic ranks ]
  • Genus
metaphlan2_ps_remove_BRS_LOD_genus <- aggregate_LOD_taxa(
                                              ps = metaphlan2_ps_remove_BRS, 
                                              taxa_level = "Genus", 
                                              cutoff = 1e-04)
metaphlan2_ps_remove_BRS_LOD_genus
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 67 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 67 taxa by 6 taxonomic ranks ]
  • Phylum
metaphlan2_ps_remove_BRS_LOD_phylum <- aggregate_LOD_taxa(
                                               ps = metaphlan2_ps_remove_BRS, 
                                               taxa_level = "Phylum", 
                                               cutoff = 1e-04)
metaphlan2_ps_remove_BRS_LOD_phylum
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 7 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 7 taxa by 2 taxonomic ranks ]
  • output
if (!dir.exists("DataSet/Step4/")) {
  dir.create("DataSet/Step4/")
}
saveRDS(metaphlan2_ps_remove_BRS_LOD_species, "DataSet/Step4/Donor_MGS_phyloseq_remove_BRS_LOD_species.RDS", compress = TRUE)
saveRDS(metaphlan2_ps_remove_BRS_LOD_genus, "DataSet/Step4/Donor_MGS_phyloseq_remove_BRS_LOD_genus.RDS", compress = TRUE)
saveRDS(metaphlan2_ps_remove_BRS_LOD_phylum, "DataSet/Step4/Donor_MGS_phyloseq_remove_BRS_LOD_phylum.RDS", compress = TRUE)

10.7 Step5: GlobalView

metaphlan2_ps_remove_BRS_LOD_species <- readRDS("DataSet/Step4/Donor_MGS_phyloseq_remove_BRS_LOD_species.RDS")

# alpha
metaphlan2_ps_remove_BRS_species_alpha <- run_alpha_diversity(
                                            ps = metaphlan2_ps_remove_BRS_LOD_species, 
                                            measures = c("Shannon", "Simpson", "InvSimpson"))
plot_boxplot(data = metaphlan2_ps_remove_BRS_species_alpha,
             y_index = c("Shannon", "Simpson", "InvSimpson"),
             group = "Group",
             group_names = c("Stool", "Product"),
             group_color = c("red", "blue"))
diversity and ordination and composition(Example)

Figure 10.1: diversity and ordination and composition(Example)

# beta
metaphlan2_ps_remove_BRS_species_beta <- run_beta_diversity(
                                            ps = metaphlan2_ps_remove_BRS_LOD_species, 
                                            method = "bray")
plot_distance_corrplot(datMatrix = metaphlan2_ps_remove_BRS_species_beta$BetaDistance)
diversity and ordination and composition(Example)

Figure 10.2: diversity and ordination and composition(Example)

# permanova
run_permanova(ps = metaphlan2_ps_remove_BRS_LOD_species, 
              method = "bray", 
              columns = "Group")
##       SumsOfSample Df SumsOfSqs  MeanSqs  F.Model         R2 Pr(>F) AdjustedPvalue
## Group          144  1  1.328635 1.328635 6.307557 0.04253025  0.001          0.001
# beta dispersion
beta_df <- run_beta_diversity(ps = metaphlan2_ps_remove_BRS_LOD_species, 
                              method = "bray", 
                              group = "Group")
## 
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
## 
## Response: Distances
##            Df  Sum Sq  Mean Sq      F N.Perm Pr(>F)
## Groups      1 0.01652 0.016518 1.1697    999  0.282
## Residuals 142 2.00532 0.014122                     
## 
## Pairwise comparisons:
## (Observed p-value below diagonal, permuted p-value above diagonal)
##         Product Stool
## Product         0.281
## Stool   0.28129
# ordination
metaphlan2_ps_ordination <- run_ordination(
                       ps = metaphlan2_ps_remove_BRS_LOD_species,
                       group = "Group",
                       method = "PCoA")

plot_Ordination(ResultList = metaphlan2_ps_ordination, 
                group = "Group", 
                group_names = c("Stool", "Product"),
                group_color = c("blue", "red"))
diversity and ordination and composition(Example)

Figure 10.3: diversity and ordination and composition(Example)

# Microbial composition
plot_stacked_bar_XIVZ(
        phyloseq = metaphlan2_ps_remove_BRS_LOD_species,
        level = "Phylum",
        feature = "Group")
diversity and ordination and composition(Example)

Figure 10.4: diversity and ordination and composition(Example)

10.8 Step6: Differential Analysis

metaphlan2_ps_remove_BRS_LOD_species <- readRDS("DataSet/Step4/Donor_MGS_phyloseq_remove_BRS_LOD_species.RDS")

# filter & trim
metaphlan2_ps_remove_BRS_species_filter <- run_filter(ps = metaphlan2_ps_remove_BRS_LOD_species, 
                                                      cutoff = 1e-4, 
                                                      unclass = TRUE)
metaphlan2_ps_remove_BRS_species_filter_trim <- run_trim(object = metaphlan2_ps_remove_BRS_species_filter, 
                                                         cutoff = 0.1, trim = "feature")
metaphlan2_ps_remove_BRS_species_filter_trim
## phyloseq-class experiment-level object
## otu_table()   OTU Table:         [ 129 taxa and 144 samples ]
## sample_data() Sample Data:       [ 144 samples by 12 sample variables ]
## tax_table()   Taxonomy Table:    [ 129 taxa by 7 taxonomic ranks ]
# lefse
metaphlan2_ps_lefse <- run_lefse(
                          ps = metaphlan2_ps_remove_BRS_species_filter_trim,
                          group = "Group",
                          group_names = c("Stool", "Product"),
                          norm = "CPM",
                          Lda = 2)
# # don't run this code when you do lefse in reality
# metaphlan2_ps_lefse$LDA_Score <- metaphlan2_ps_lefse$LDA_Score * 1000
plot_lefse(
    da_res = metaphlan2_ps_lefse,
    x_index = "LDA_Score",
    x_index_cutoff = 2,
    group_color = c("green", "red"))
Differential Analysis (Example)

Figure 10.5: Differential Analysis (Example)

metaphlan2_ps_wilcox <- run_wilcox(
                          ps = metaphlan2_ps_remove_BRS_species_filter_trim,
                          group = "Group",
                          group_names = c("Stool", "Product"))
plot_volcano(
    da_res = metaphlan2_ps_wilcox,
    group_names = c("Stool", "Product"),
    x_index = "Log2FoldChange (Rank)\nStool_vs_Product",
    x_index_cutoff = 0.5,
    y_index = "Pvalue",
    y_index_cutoff = 0.05,
    group_color = c("red", "grey", "blue"),
    topN = 5)
Differential Analysis (Example)

Figure 10.6: Differential Analysis (Example)

if (!dir.exists("DataSet/Step8/")) {
  dir.create("DataSet/Step8/")
}
saveRDS(metaphlan2_ps_remove_BRS_species_filter_trim, "DataSet/Step6/Donor_MGS_phyloseq_remove_BRS_species_filter_trim.RDS", compress = TRUE)

10.9 Systematic Information

devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.1.2 (2021-11-01)
##  os       macOS Monterey 12.2.1
##  system   x86_64, darwin17.0
##  ui       RStudio
##  language (EN)
##  collate  en_US.UTF-8
##  ctype    en_US.UTF-8
##  tz       Asia/Shanghai
##  date     2023-04-12
##  rstudio  2022.07.2+576 Spotted Wakerobin (desktop)
##  pandoc   2.19.2 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package              * version  date (UTC) lib source
##  abind                  1.4-5    2016-07-21 [1] CRAN (R 4.1.0)
##  ade4                   1.7-18   2021-09-16 [1] CRAN (R 4.1.0)
##  annotate               1.72.0   2021-10-26 [1] Bioconductor
##  AnnotationDbi          1.60.2   2023-03-10 [1] Bioconductor
##  ape                    5.6-2    2022-03-02 [1] CRAN (R 4.1.2)
##  assertthat             0.2.1    2019-03-21 [1] CRAN (R 4.1.0)
##  backports              1.4.1    2021-12-13 [1] CRAN (R 4.1.0)
##  base64enc              0.1-3    2015-07-28 [1] CRAN (R 4.1.0)
##  Biobase                2.54.0   2021-10-26 [1] Bioconductor
##  BiocGenerics           0.40.0   2021-10-26 [1] Bioconductor
##  BiocParallel           1.28.3   2021-12-09 [1] Bioconductor
##  biomformat             1.22.0   2021-10-26 [1] Bioconductor
##  Biostrings             2.62.0   2021-10-26 [1] Bioconductor
##  bit                    4.0.4    2020-08-04 [1] CRAN (R 4.1.0)
##  bit64                  4.0.5    2020-08-30 [1] CRAN (R 4.1.0)
##  bitops                 1.0-7    2021-04-24 [1] CRAN (R 4.1.0)
##  blob                   1.2.2    2021-07-23 [1] CRAN (R 4.1.0)
##  bookdown               0.29     2022-09-12 [1] CRAN (R 4.1.2)
##  brio                   1.1.3    2021-11-30 [1] CRAN (R 4.1.0)
##  broom                  1.0.1    2022-08-29 [1] CRAN (R 4.1.2)
##  bslib                  0.4.0    2022-07-16 [1] CRAN (R 4.1.2)
##  cachem                 1.0.6    2021-08-19 [1] CRAN (R 4.1.0)
##  callr                  3.7.0    2021-04-20 [1] CRAN (R 4.1.0)
##  car                    3.0-12   2021-11-06 [1] CRAN (R 4.1.0)
##  carData                3.0-5    2022-01-06 [1] CRAN (R 4.1.2)
##  caTools                1.18.2   2021-03-28 [1] CRAN (R 4.1.0)
##  cccd                   1.6      2022-04-08 [1] CRAN (R 4.1.2)
##  cellranger             1.1.0    2016-07-27 [1] CRAN (R 4.1.0)
##  checkmate              2.0.0    2020-02-06 [1] CRAN (R 4.1.0)
##  cli                    3.4.1    2022-09-23 [1] CRAN (R 4.1.2)
##  cluster                2.1.2    2021-04-17 [1] CRAN (R 4.1.2)
##  codetools              0.2-18   2020-11-04 [1] CRAN (R 4.1.2)
##  coin                   1.4-2    2021-10-08 [1] CRAN (R 4.1.0)
##  colorspace             2.0-3    2022-02-21 [1] CRAN (R 4.1.2)
##  corpcor                1.6.10   2021-09-16 [1] CRAN (R 4.1.0)
##  corrplot               0.92     2021-11-18 [1] CRAN (R 4.1.0)
##  cowplot                1.1.1    2020-12-30 [1] CRAN (R 4.1.0)
##  crayon                 1.5.0    2022-02-14 [1] CRAN (R 4.1.2)
##  crosstalk              1.2.0    2021-11-04 [1] CRAN (R 4.1.0)
##  data.table             1.14.6   2022-11-16 [1] CRAN (R 4.1.2)
##  DBI                    1.1.2    2021-12-20 [1] CRAN (R 4.1.0)
##  DelayedArray           0.20.0   2021-10-26 [1] Bioconductor
##  deldir                 1.0-6    2021-10-23 [1] CRAN (R 4.1.0)
##  desc                   1.4.1    2022-03-06 [1] CRAN (R 4.1.2)
##  DESeq2                 1.34.0   2021-10-26 [1] Bioconductor
##  devtools               2.4.3    2021-11-30 [1] CRAN (R 4.1.0)
##  digest                 0.6.30   2022-10-18 [1] CRAN (R 4.1.2)
##  doParallel             1.0.17   2022-02-07 [1] CRAN (R 4.1.2)
##  doSNOW                 1.0.20   2022-02-04 [1] CRAN (R 4.1.2)
##  dplyr                * 1.0.10   2022-09-01 [1] CRAN (R 4.1.2)
##  DT                     0.21     2022-02-26 [1] CRAN (R 4.1.2)
##  dynamicTreeCut         1.63-1   2016-03-11 [1] CRAN (R 4.1.0)
##  edgeR                  3.36.0   2021-10-26 [1] Bioconductor
##  ellipsis               0.3.2    2021-04-29 [1] CRAN (R 4.1.0)
##  evaluate               0.17     2022-10-07 [1] CRAN (R 4.1.2)
##  fansi                  1.0.2    2022-01-14 [1] CRAN (R 4.1.2)
##  farver                 2.1.0    2021-02-28 [1] CRAN (R 4.1.0)
##  fastcluster            1.2.3    2021-05-24 [1] CRAN (R 4.1.0)
##  fastmap                1.1.0    2021-01-25 [1] CRAN (R 4.1.0)
##  fdrtool                1.2.17   2021-11-13 [1] CRAN (R 4.1.0)
##  filematrix             1.3      2018-02-27 [1] CRAN (R 4.1.0)
##  FNN                    1.1.3    2019-02-15 [1] CRAN (R 4.1.0)
##  foreach                1.5.2    2022-02-02 [1] CRAN (R 4.1.2)
##  foreign                0.8-82   2022-01-13 [1] CRAN (R 4.1.2)
##  forestplot             2.0.1    2021-09-03 [1] CRAN (R 4.1.0)
##  Formula                1.2-4    2020-10-16 [1] CRAN (R 4.1.0)
##  fs                     1.5.2    2021-12-08 [1] CRAN (R 4.1.0)
##  genefilter             1.76.0   2021-10-26 [1] Bioconductor
##  geneplotter            1.72.0   2021-10-26 [1] Bioconductor
##  generics               0.1.2    2022-01-31 [1] CRAN (R 4.1.2)
##  GenomeInfoDb           1.30.1   2022-01-30 [1] Bioconductor
##  GenomeInfoDbData       1.2.7    2022-03-09 [1] Bioconductor
##  GenomicRanges          1.46.1   2021-11-18 [1] Bioconductor
##  ggiraph                0.8.2    2022-02-22 [1] CRAN (R 4.1.2)
##  ggiraphExtra           0.3.0    2020-10-06 [1] CRAN (R 4.1.2)
##  ggplot2              * 3.4.0    2022-11-04 [1] CRAN (R 4.1.2)
##  ggpubr               * 0.4.0    2020-06-27 [1] CRAN (R 4.1.0)
##  ggrepel                0.9.1    2021-01-15 [1] CRAN (R 4.1.0)
##  ggsignif               0.6.3    2021-09-09 [1] CRAN (R 4.1.0)
##  glasso                 1.11     2019-10-01 [1] CRAN (R 4.1.0)
##  glmnet                 4.1-3    2021-11-02 [1] CRAN (R 4.1.0)
##  glue                 * 1.6.2    2022-02-24 [1] CRAN (R 4.1.2)
##  Gmisc                * 3.0.0    2022-01-03 [1] CRAN (R 4.1.2)
##  GO.db                  3.14.0   2022-04-11 [1] Bioconductor
##  gplots                 3.1.1    2020-11-28 [1] CRAN (R 4.1.0)
##  gridExtra              2.3      2017-09-09 [1] CRAN (R 4.1.0)
##  gtable                 0.3.0    2019-03-25 [1] CRAN (R 4.1.0)
##  gtools                 3.9.2    2021-06-06 [1] CRAN (R 4.1.0)
##  highr                  0.9      2021-04-16 [1] CRAN (R 4.1.0)
##  Hmisc                  4.6-0    2021-10-07 [1] CRAN (R 4.1.0)
##  htmlTable            * 2.4.0    2022-01-04 [1] CRAN (R 4.1.2)
##  htmltools              0.5.3    2022-07-18 [1] CRAN (R 4.1.2)
##  htmlwidgets            1.5.4    2021-09-08 [1] CRAN (R 4.1.0)
##  httr                   1.4.2    2020-07-20 [1] CRAN (R 4.1.0)
##  huge                   1.3.5    2021-06-30 [1] CRAN (R 4.1.0)
##  igraph                 1.2.11   2022-01-04 [1] CRAN (R 4.1.2)
##  impute                 1.68.0   2021-10-26 [1] Bioconductor
##  insight                0.17.0   2022-03-29 [1] CRAN (R 4.1.2)
##  IRanges                2.28.0   2021-10-26 [1] Bioconductor
##  irlba                  2.3.5    2021-12-06 [1] CRAN (R 4.1.0)
##  iterators              1.0.14   2022-02-05 [1] CRAN (R 4.1.2)
##  jpeg                   0.1-9    2021-07-24 [1] CRAN (R 4.1.0)
##  jquerylib              0.1.4    2021-04-26 [1] CRAN (R 4.1.0)
##  jsonlite               1.8.3    2022-10-21 [1] CRAN (R 4.1.2)
##  KEGGREST               1.34.0   2021-10-26 [1] Bioconductor
##  KernSmooth             2.23-20  2021-05-03 [1] CRAN (R 4.1.2)
##  knitr                  1.40     2022-08-24 [1] CRAN (R 4.1.2)
##  labeling               0.4.2    2020-10-20 [1] CRAN (R 4.1.0)
##  lattice                0.20-45  2021-09-22 [1] CRAN (R 4.1.2)
##  latticeExtra           0.6-29   2019-12-19 [1] CRAN (R 4.1.0)
##  lavaan                 0.6-11   2022-03-31 [1] CRAN (R 4.1.2)
##  libcoin                1.0-9    2021-09-27 [1] CRAN (R 4.1.0)
##  lifecycle              1.0.3    2022-10-07 [1] CRAN (R 4.1.2)
##  limma                  3.50.1   2022-02-17 [1] Bioconductor
##  locfit                 1.5-9.5  2022-03-03 [1] CRAN (R 4.1.2)
##  lubridate              1.8.0    2021-10-07 [1] CRAN (R 4.1.0)
##  magrittr             * 2.0.3    2022-03-30 [1] CRAN (R 4.1.2)
##  MASS                   7.3-55   2022-01-13 [1] CRAN (R 4.1.2)
##  Matrix                 1.4-0    2021-12-08 [1] CRAN (R 4.1.0)
##  MatrixGenerics         1.6.0    2021-10-26 [1] Bioconductor
##  matrixStats            0.61.0   2021-09-17 [1] CRAN (R 4.1.0)
##  memoise                2.0.1    2021-11-26 [1] CRAN (R 4.1.0)
##  metagenomeSeq          1.36.0   2021-10-26 [1] Bioconductor
##  mgcv                   1.8-39   2022-02-24 [1] CRAN (R 4.1.2)
##  mixedCCA               1.5.2    2022-07-14 [1] Github (irinagain/mixedCCA@c6d41a3)
##  mnormt                 2.0.2    2020-09-01 [1] CRAN (R 4.1.0)
##  modeltools             0.2-23   2020-03-05 [1] CRAN (R 4.1.0)
##  multcomp               1.4-18   2022-01-04 [1] CRAN (R 4.1.2)
##  multtest               2.50.0   2021-10-26 [1] Bioconductor
##  munsell                0.5.0    2018-06-12 [1] CRAN (R 4.1.0)
##  mvtnorm                1.1-3    2021-10-08 [1] CRAN (R 4.1.0)
##  mycor                  0.1.1    2018-04-10 [1] CRAN (R 4.1.0)
##  NADA                   1.6-1.1  2020-03-22 [1] CRAN (R 4.1.0)
##  NetCoMi              * 1.0.3    2022-07-14 [1] Github (stefpeschel/NetCoMi@d4d80d3)
##  nlme                   3.1-155  2022-01-13 [1] CRAN (R 4.1.2)
##  nnet                   7.3-17   2022-01-13 [1] CRAN (R 4.1.2)
##  pbapply                1.5-0    2021-09-16 [1] CRAN (R 4.1.0)
##  pbivnorm               0.6.0    2015-01-23 [1] CRAN (R 4.1.0)
##  pcaPP                  1.9-74   2021-04-23 [1] CRAN (R 4.1.0)
##  permute                0.9-7    2022-01-27 [1] CRAN (R 4.1.2)
##  pheatmap               1.0.12   2019-01-04 [1] CRAN (R 4.1.0)
##  phyloseq             * 1.38.0   2021-10-26 [1] Bioconductor
##  pillar                 1.7.0    2022-02-01 [1] CRAN (R 4.1.2)
##  pkgbuild               1.3.1    2021-12-20 [1] CRAN (R 4.1.0)
##  pkgconfig              2.0.3    2019-09-22 [1] CRAN (R 4.1.0)
##  pkgload                1.2.4    2021-11-30 [1] CRAN (R 4.1.0)
##  plyr                   1.8.6    2020-03-03 [1] CRAN (R 4.1.0)
##  png                    0.1-7    2013-12-03 [1] CRAN (R 4.1.0)
##  ppcor                  1.1      2015-12-03 [1] CRAN (R 4.1.0)
##  preprocessCore         1.56.0   2021-10-26 [1] Bioconductor
##  prettyunits            1.1.1    2020-01-24 [1] CRAN (R 4.1.0)
##  processx               3.5.2    2021-04-30 [1] CRAN (R 4.1.0)
##  proxy                  0.4-26   2021-06-07 [1] CRAN (R 4.1.0)
##  ps                     1.6.0    2021-02-28 [1] CRAN (R 4.1.0)
##  psych                  2.2.5    2022-05-10 [1] CRAN (R 4.1.2)
##  pulsar                 0.3.7    2020-08-07 [1] CRAN (R 4.1.0)
##  purrr                  0.3.4    2020-04-17 [1] CRAN (R 4.1.0)
##  qgraph                 1.9.2    2022-03-04 [1] CRAN (R 4.1.2)
##  R6                     2.5.1    2021-08-19 [1] CRAN (R 4.1.0)
##  rbibutils              2.2.7    2021-12-07 [1] CRAN (R 4.1.0)
##  RColorBrewer           1.1-2    2014-12-07 [1] CRAN (R 4.1.0)
##  Rcpp                 * 1.0.10   2023-01-22 [1] CRAN (R 4.1.2)
##  RCurl                  1.98-1.6 2022-02-08 [1] CRAN (R 4.1.2)
##  Rdpack                 2.2      2022-03-19 [1] CRAN (R 4.1.2)
##  readxl               * 1.4.0    2022-03-28 [1] CRAN (R 4.1.2)
##  remotes                2.4.2    2021-11-30 [1] CRAN (R 4.1.0)
##  reshape2               1.4.4    2020-04-09 [1] CRAN (R 4.1.0)
##  rhdf5                  2.38.1   2022-03-10 [1] Bioconductor
##  rhdf5filters           1.6.0    2021-10-26 [1] Bioconductor
##  Rhdf5lib               1.16.0   2021-10-26 [1] Bioconductor
##  rlang                  1.0.6    2022-09-24 [1] CRAN (R 4.1.2)
##  rmarkdown              2.17     2022-10-07 [1] CRAN (R 4.1.2)
##  rootSolve              1.8.2.3  2021-09-29 [1] CRAN (R 4.1.0)
##  rpart                  4.1.16   2022-01-24 [1] CRAN (R 4.1.2)
##  rprojroot              2.0.2    2020-11-15 [1] CRAN (R 4.1.0)
##  RSQLite                2.2.10   2022-02-17 [1] CRAN (R 4.1.2)
##  rstatix                0.7.0    2021-02-13 [1] CRAN (R 4.1.0)
##  rstudioapi             0.13     2020-11-12 [1] CRAN (R 4.1.0)
##  S4Vectors              0.32.3   2021-11-21 [1] Bioconductor
##  sandwich               3.0-1    2021-05-18 [1] CRAN (R 4.1.0)
##  sass                   0.4.2    2022-07-16 [1] CRAN (R 4.1.2)
##  scales                 1.2.1    2022-08-20 [1] CRAN (R 4.1.2)
##  sessioninfo            1.2.2    2021-12-06 [1] CRAN (R 4.1.0)
##  shape                  1.4.6    2021-05-19 [1] CRAN (R 4.1.0)
##  sjlabelled             1.2.0    2022-04-10 [1] CRAN (R 4.1.2)
##  sjmisc                 2.8.9    2021-12-03 [1] CRAN (R 4.1.0)
##  snow                   0.4-4    2021-10-27 [1] CRAN (R 4.1.0)
##  SpiecEasi            * 1.1.2    2022-07-14 [1] Github (zdk123/SpiecEasi@c463727)
##  SPRING                 1.0.4    2022-08-03 [1] Github (GraceYoon/SPRING@3d641a4)
##  stringi                1.7.8    2022-07-11 [1] CRAN (R 4.1.2)
##  stringr                1.4.1    2022-08-20 [1] CRAN (R 4.1.2)
##  SummarizedExperiment   1.24.0   2021-10-26 [1] Bioconductor
##  survival               3.4-0    2022-08-09 [1] CRAN (R 4.1.2)
##  systemfonts            1.0.4    2022-02-11 [1] CRAN (R 4.1.2)
##  testthat               3.1.2    2022-01-20 [1] CRAN (R 4.1.2)
##  TH.data                1.1-0    2021-09-27 [1] CRAN (R 4.1.0)
##  tibble               * 3.1.8    2022-07-22 [1] CRAN (R 4.1.2)
##  tidyr                  1.2.0    2022-02-01 [1] CRAN (R 4.1.2)
##  tidyselect             1.1.2    2022-02-21 [1] CRAN (R 4.1.2)
##  tmvnsim                1.0-2    2016-12-15 [1] CRAN (R 4.1.0)
##  truncnorm              1.0-8    2018-02-27 [1] CRAN (R 4.1.0)
##  usethis                2.1.5    2021-12-09 [1] CRAN (R 4.1.0)
##  utf8                   1.2.2    2021-07-24 [1] CRAN (R 4.1.0)
##  uuid                   1.0-3    2021-11-01 [1] CRAN (R 4.1.0)
##  vctrs                  0.5.1    2022-11-16 [1] CRAN (R 4.1.2)
##  vegan                  2.5-7    2020-11-28 [1] CRAN (R 4.1.0)
##  VGAM                   1.1-6    2022-02-14 [1] CRAN (R 4.1.2)
##  WGCNA                  1.71     2022-04-22 [1] CRAN (R 4.1.2)
##  withr                  2.5.0    2022-03-03 [1] CRAN (R 4.1.2)
##  Wrench                 1.12.0   2021-10-26 [1] Bioconductor
##  xfun                   0.34     2022-10-18 [1] CRAN (R 4.1.2)
##  XMAS2                * 2.1.8.7  2023-01-06 [1] local
##  XML                    3.99-0.9 2022-02-24 [1] CRAN (R 4.1.2)
##  xtable                 1.8-4    2019-04-21 [1] CRAN (R 4.1.0)
##  XVector                0.34.0   2021-10-26 [1] Bioconductor
##  yaml                   2.3.6    2022-10-18 [1] CRAN (R 4.1.2)
##  zCompositions          1.4.0    2022-01-13 [1] CRAN (R 4.1.2)
##  zlibbioc               1.40.0   2021-10-26 [1] Bioconductor
##  zoo                    1.8-9    2021-03-09 [1] CRAN (R 4.1.0)
## 
##  [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────