Chapter 2 Convert inputdata into phyloseq object
r Biocpkg(“phyloseq”) (McMurdie and Holmes 2013) is the most popular Biocondcutor package used by the microbiome research field, and phyloseq-class
objects are a great data-standard for microbiota data in R. Therefore, the core functions in XMAS
take phyloseq-class
object as input. In the phyloseq object, information on OTU abundances, taxonomy of OTUs, the phylogenetic tree and metadata is stored.
This tutorial will introduce you the basic steps to convert results from the in-house pipeline into phyloseq-class object. More importantly on how to look at your data and filter appropriately. We will use the inputs from /home/xuxiaomin/project/standardized_analytics_workflow_R_function/demo_data/.
Loading packages
library(XMAS2)
library(dplyr)
library(tibble)
library(phyloseq)
2.1 Metaphlan2/3
The result of the in-house Metaphlan2/3 pipeline.
2.1.1 Merging output of metaphlan
- go to the directory of metaphlan created by in-house metaphlan pipeline
cd /share/projects/Engineering/pipeline_output/PipelineJob_141157_20220823/
- extract the absolute path of output
ls /share/projects/Engineering/pipeline_output/PipelineJob_141157_20220823/*/humann2/*.tsv | grep -E "metaphlan" > metaphlan_BJ_RoundG_filepath.tsv
- Saving the following python codes into
merge_metaphlan.py
import argparse as ap
import os
import re
import pandas as pd
import numpy as np
= ap.ArgumentParser(description='combining results from metaphlan')
parser '-f', '--file', type=str,
parser.add_argument(help='file contains metaphlan results', required=True)
'-p', '--prefix', type=str,
parser.add_argument(help='prefix of output', required=True)
'-t', '--taxa', type=str, default="species",
parser.add_argument(help='specific taxa level', required=False)
'-k', '--kind', type=str, default="metaphlan2",
parser.add_argument(help='version of metaphlan', required=False)
'-o', '--out', type=str, default="./",
parser.add_argument(help='output path', required=False)
= parser.parse_args()
args
def Filename_to_filepath(filelist):
= {}
file2path with open(filelist, 'r') as f:
= f.readlines()
files for File in files:
= File.strip()
File if os.path.exists(File):
# seqid is either numeric(18933) or character (CJR0607)
= str(re.match(r'\S+[humann2|humann3]\/'
FileName r'(\d+|\d+\_\d+|\d+\_\d+\_\d+|\w+\d+)'
r'\_metaphlan_\S+_list.tsv',
1])
File)[= File
file2path[FileName] return(file2path)
def Read_File(filenames, samplenames, taxalevels, filetype):
if filetype == 'metaphlan2':
# skip row with '#' and the 1st row
= pd.read_table(filenames,
dat ='\t',
sep=True,
skip_blank_lines='#',
comment=1,
skiprows=None)
header= dat.iloc[:, 0:2]
dat1 else:
# skip row with '#'
= pd.read_table(filenames,
dat ='\t',
sep=True,
skip_blank_lines='#',
comment#skiprows=1,
=None)
header= dat.iloc[:, [0, 2]]
dat1
if taxalevels[0] == taxalevels[1]:
= dat1[dat1.iloc[:, 0].str.contains(taxalevels[0])]
df_temp else:
# filtering the rows where taxa doesn't contains the specific taxa level
= dat1[dat1.iloc[:, 0].str.contains(taxalevels[0])]
df = df[df.iloc[:, 0].str.contains(taxalevels[1]) == False]
df_temp # adding column name to the respective columns
= ['taxaid', samplenames]
df_temp.columns
= df_temp.copy()
res
# sorting by taxaid
'taxaid', inplace=True)
res.sort_values(
# dropping ALL duplicate values
res.drop_duplicates(='taxaid',
subset=False,
keep=True)
inplace
return(res)
def Merge_Metaphlan(filedict, taxa, filetype):
if taxa == "species":
= 's__|t__'
taxalevels elif taxa == "genus":
= 'g__|s__'
taxalevels elif taxa == "family":
= 'f__|g__'
taxalevels elif taxa == "order":
= 'o__|f__'
taxalevels elif taxa == "class":
= 'c__|o__'
taxalevels elif taxa == "phylum":
= 'p__|c__'
taxalevels
= taxalevels.split('|')
taxa_levels if len(taxa_levels) != 2:
print("please check your taxa")
exit()
= pd.DataFrame()
df for key in filedict:
= Read_File(filedict[key], key, taxa_levels, filetype)
temp_df if df.empty:
= temp_df
df else:
= pd.merge(df,
df
temp_df,="taxaid",
on='outer')
how= df.replace(np.nan, 0)
res return(res)
def Make_dir(dirpath):
if not os.path.exists(dirpath):
os.mkdir(dirpath)
def main():
file = args.file
= args.out
out = args.taxa
taxa = args.kind
kind = args.prefix
prefix
= Filename_to_filepath(file)
file2dic = Merge_Metaphlan(file2dic, taxa, kind)
df_res
Make_dir(out)= out + "/" + prefix + ".csv"
outfile_name ='\t', encoding='utf-8', index=False)
df_res.to_csv(outfile_name, sep
print('Congratulations, Program Ended Without Problem')
main()
- merging output: for example: species levels
python merge_metaphlan.py \
-f metaphlan_BJ_RoundG_filepath.tsv \
-p metaphlan2_BJ_RoundG_merge_species \
-t species \
-o ./profile/
Finally, you would obtain the file integrated all the output in this project folder /share/projects/Engineering/pipeline_output/PipelineJob_141157_20220823/
, and then use it to do data analysis.
2.1.2 Importing results
/home/xuxiaomin/project/standardized_analytics_workflow_R_function/demo_data/MGS/metaphlan2_merged.tsv
/home/xuxiaomin/project/standardized_analytics_workflow_R_function/demo_data/MGS/metadata.txt
<- read.table(
metaphlan2_res system.file(
"extdata", "metaphlan2_merged.tsv",
package = "XMAS2"
),header = TRUE,
stringsAsFactors = FALSE
)<- read.table(
metaphlan2_sam system.file(
"extdata", "metaphlan2_metadata.tsv",
package = "XMAS2"
),sep = "\t",
header = TRUE,
stringsAsFactors = FALSE
)
2.1.3 taxa table
<- import_metaphlan_taxa(data_metaphlan2 = metaphlan2_res,
metaphlan2_res_list taxa_level = "Species")
<- metaphlan2_res_list$tax_tab
tax_tab head(tax_tab)
## Kingdom Phylum Class Order Family Genus
## s__Actinomyces_graevenitzii k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## s__Actinomyces_johnsonii k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## s__Actinomyces_massiliensis k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## s__Actinomyces_odontolyticus k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## s__Actinomyces_oris k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## s__Actinomyces_viscosus k__Bacteria p__Actinobacteria c__Actinobacteria o__Actinomycetales f__Actinomycetaceae g__Actinomyces
## Species
## s__Actinomyces_graevenitzii s__Actinomyces_graevenitzii
## s__Actinomyces_johnsonii s__Actinomyces_johnsonii
## s__Actinomyces_massiliensis s__Actinomyces_massiliensis
## s__Actinomyces_odontolyticus s__Actinomyces_odontolyticus
## s__Actinomyces_oris s__Actinomyces_oris
## s__Actinomyces_viscosus s__Actinomyces_viscosus
2.1.4 otu table
<- import_metaphlan_taxa(data_metaphlan2 = metaphlan2_res,
metaphlan2_res_list taxa_level = "Species")
<- metaphlan2_res_list$abu_tab
otu_tab head(otu_tab)
## s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16
## s__Actinomyces_graevenitzii 3.58e-05 0 0.0e+00 0 0 0 7.20e-06 0.0e+00 0.0000000 0 1.40e-05 0e+00 0.00e+00 0.0e+00 0 0
## s__Actinomyces_johnsonii 0.00e+00 0 0.0e+00 0 0 0 0.00e+00 0.0e+00 0.0000000 0 0.00e+00 0e+00 1.15e-05 0.0e+00 0 0
## s__Actinomyces_massiliensis 0.00e+00 0 0.0e+00 0 0 0 2.95e-05 0.0e+00 0.0000000 0 0.00e+00 0e+00 0.00e+00 0.0e+00 0 0
## s__Actinomyces_odontolyticus 7.70e-05 0 1.7e-06 0 0 0 2.47e-05 5.8e-06 0.0001175 0 6.16e-05 0e+00 1.66e-05 3.9e-06 0 0
## s__Actinomyces_oris 0.00e+00 0 0.0e+00 0 0 0 2.81e-05 0.0e+00 0.0000135 0 0.00e+00 0e+00 0.00e+00 0.0e+00 0 0
## s__Actinomyces_viscosus 4.60e-06 0 0.0e+00 0 0 0 0.00e+00 0.0e+00 0.0000039 0 6.20e-06 7e-06 1.10e-06 0.0e+00 0 0
## s17 s18 s19 s20 s21 s22 refE
## s__Actinomyces_graevenitzii 0 6.1e-06 1.60e-06 0 0 0.00e+00 0
## s__Actinomyces_johnsonii 0 0.0e+00 0.00e+00 0 0 0.00e+00 0
## s__Actinomyces_massiliensis 0 0.0e+00 0.00e+00 0 0 2.52e-05 0
## s__Actinomyces_odontolyticus 0 0.0e+00 4.19e-05 0 0 0.00e+00 0
## s__Actinomyces_oris 0 0.0e+00 0.00e+00 0 0 7.40e-06 0
## s__Actinomyces_viscosus 0 0.0e+00 0.00e+00 0 0 7.28e-05 0
2.1.5 metadata table
<- metaphlan2_sam %>% tibble::column_to_rownames("SampleID")
sam_tab head(sam_tab)
## Group phynotype
## s1 BB 0.00
## s2 AA 2.50
## s3 BB 0.00
## s4 AA 1.25
## s5 AA 30.00
## s6 AA 15.00
2.1.6 phyloseq object
<- get_metaphlan_phyloseq(
metaphlan2_ps otu_tab = otu_tab,
sam_tab = sam_tab,
tax_tab = tax_tab)
metaphlan2_ps
## phyloseq-class experiment-level object
## otu_table() OTU Table: [ 322 taxa and 23 samples ]
## sample_data() Sample Data: [ 23 samples by 2 sample variables ]
## tax_table() Taxonomy Table: [ 322 taxa by 7 taxonomic ranks ]
we obtain the phyloseq-class object and then use it to perform data analysis.
Here, the phyloseq object comprises five components (OTU Table, Sample Data, and Taxonomy Table).
2.2 Transform the abundance of taxa whose relative abundance under Limit Of Detection (LOD) into Zeros
<- aggregate_LOD_taxa(ps = metaphlan2_ps,
metaphlan2_ps_LOD_species taxa_level = "Species",
cutoff = 1e-04)
metaphlan2_ps_LOD_species
## phyloseq-class experiment-level object
## otu_table() OTU Table: [ 192 taxa and 23 samples ]
## sample_data() Sample Data: [ 23 samples by 2 sample variables ]
## tax_table() Taxonomy Table: [ 192 taxa by 7 taxonomic ranks ]
2.3 Systematic Information
::session_info() devtools
## ─ 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)
## 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)
## 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
## 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)
## 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)
## 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)
## 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)
## 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)
## 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
##
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────