Loading packages
#===============================================================================
#BTC.LineZero.Header.1.1.0
#===============================================================================
#R Markdown environment setup and reporting utility.
#===============================================================================
#RLB.Dependencies:
# knitr, magrittr, pacman, rio, rmarkdown, rmdformats, tibble, yaml
#===============================================================================
#Input for document parameters, libraries, file paths, and options.
#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
path_working <- "/Users/minsikkim/Dropbox (Partners HealthCare)/Project_SICAS2_microbiome/5_Scripts/MGK/Host_depletion_git/"
path_library <- "/Library/Frameworks/R.framework/Resources/library"
str_libraries <- c(
"readxl", "phyloseq", "tidyverse", "pacman", "yaml"
)
path_working <- "/Users/minsikkim/Dropbox (Partners HealthCare)/Project_SICAS2_microbiome/5_Scripts/MGK/Host_depletion_git"
path_library <- "/Library/Frameworks/R.framework/Resources/library"
str_libraries <- c("readxl", "phyloseq", "tidyverse", "pacman", "yaml", "ggplot2", "vegan", "microbiome", "ggpubr", "viridis", "decontam", "gridExtra", "ggpubr", "lme4", "lmerTest", "writexl", "harrietr", "Maaslin2", "ggtext", "ggpmisc", "gridExtra", "gamm4", "reshape2", "kableExtra", "knitr")
YAML_header <-
'---
title: "Host-DNA depletion 1: data wrangling"
author: "Minsik Kim"
date: "2032.03.10"
output:
rmdformats::downcute:
downcute_theme: "chaos"
code_folding: hide
fig_width: 6
fig_height: 6
---'
seed <- "20230314"
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#Loads libraries, file paths, and other document options.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
FUN.LineZero.Boot <- function() {
.libPaths(path_library)
require(pacman)
pacman::p_load(c("knitr", "rmarkdown", "rmdformats", "yaml"))
knitr::opts_knit$set(root.dir = path_working)
str_libraries |> unique() |> sort() -> str_libraries
pacman::p_load(char = str_libraries)
set.seed(seed)
}
FUN.LineZero.Boot()
##
## The downloaded binary packages are in
## /var/folders/z2/kwm76s1n3jj2sjznjyj9thqc0000gn/T//RtmpHKVlTA/downloaded_packages
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#Outputs R environment report.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
FUN.LineZero.Report <- function() {
cat("Line Zero Environment:\n\n")
paste("R:", pacman::p_version(), "\n") |> cat()
cat("Libraries:\n")
for (str_libraries in str_libraries) {
paste(
" ", str_libraries, ": ", pacman::p_version(package = str_libraries),
"\n", sep = ""
) |> cat()
}
paste("\nOperating System:", pacman::p_detectOS(), "\n") |> cat()
paste(" Library Path:", path_library, "\n") |> cat()
paste(" Working Path:", path_working, "\n") |> cat()
paste("Seed:", seed, "\n\n") |> cat()
cat("YAML Header:\n")
cat(YAML_header)
}
FUN.LineZero.Report()
## Line Zero Environment:
##
## R: 4.2.2
## Libraries:
## readxl: 1.4.2
## phyloseq: 1.42.0
## tidyverse: 2.0.0
## pacman: 0.5.1
## yaml: 2.3.7
## ggplot2: 3.4.1
## vegan: 2.6.4
## microbiome: 1.20.0
## ggpubr: 0.6.0
## viridis: 0.6.2
## decontam: 1.18.0
## gridExtra: 2.3
## ggpubr: 0.6.0
## lme4: 1.1.31
## lmerTest: 3.1.3
## writexl: 1.4.2
## harrietr: 0.2.3
## Maaslin2: 1.12.0
## ggtext: 0.1.2
## ggpmisc: 0.5.2
## gridExtra: 2.3
## gamm4: 0.2.6
## reshape2: 1.4.4
## kableExtra: 1.3.4
## knitr: 1.42
##
## Operating System: Darwin
## Library Path: /Library/Frameworks/R.framework/Resources/library
## Working Path: /Users/minsikkim/Dropbox (Partners HealthCare)/Project_SICAS2_microbiome/5_Scripts/MGK/Host_depletion_git
## Seed: 20230314
##
## YAML Header:
## ---
## title: "Host-DNA depletion 1: data wrangling"
## author: "Minsik Kim"
## date: "2032.03.10"
## output:
## rmdformats::downcute:
## downcute_theme: "chaos"
## code_folding: hide
## fig_width: 6
## fig_height: 6
## ---
#Script description#
*1. Loading data 1.1. phyloseq obejct 1.2. qPCR data (controls)
QC Q1. How many samples failed sequencing Q2. How were changes in read stats and host DNA proportion? Q3. How were the extraction controls Q4. Prevalence / abundance filtering - red flag
Exploratory analysis *
data input required:
Meta data
qPCR - bacteria
qPCR - human
qPCR host %
Raw reads
final reads
sequencing host %
library prep failure status
Raw reads
subject_id
treatment
sample_type
subject_id
Sequencing result
samples
controls
Analysis
calculation of alpha-diversity indices
qPCR, by smaple type and treatment A. Total DNA B. Host DNA C. Bacterial DNA D. Host %
Sequencing results (treatment, raw reads, host reads, % host, final reads) –> both stratified and nonstratified library prep % vs sample_type + treatment + sample_type * treatment + subject_id (binary) log10(Final reads) vs sample_type + treatment + sample_type * treatment + subject_id (linear or binary, see regular and cumulative distribution) Host DNA % vs sample_type + treatment + sample_type * treatment + subject_id (linear or binary, see regular and cumulative distribution) –> both stratified and nonstratified
LM of taxa alpha diversity (richness) –> both stratified and nonstratified
Permanova (Taxa dist ~ log10(final reads) + sample_type + treatment + sample_type * treatment + subject_id) –> both stratified and nonstratified
DA analysis for taxa, by sample type and treatment –> both stratified and nonstratified –> look at level groups as well - phylum, etc.
Decontam - stratified by treatment –> both stratified and nonstratified
LM of taxa alpha diversity (Shannon) –> both stratified and nonstratified
LM of taxa alpha diversity (InvSimpson) –> both stratified and nonstratified
LM of taxa alpha diversity (BPI) –> both stratified and nonstratified
LM of function alpha diversity (richness) –> both stratified and nonstratified
LM of function alpha diversity (Shannon) –> both stratified and nonstratified
LM of function alpha diversity (InvSimpson) –> both stratified and nonstratified
LM of function alpha diversity (BPI) –> both stratified and nonstratified
permanova of function alpha diversity –> both stratified and nonstratified
#Loading data#
# Loading files -----------------------------------------------------------
#loading tidy phyloseq object
phyloseq <- read_rds("/Users/minsikkim/Dropbox (Partners HealthCare)/Project_SICAS2_microbiome/4_Data/2_Tidy/Phyloseq/PHY_20221129_MGK_host_tidy_tax.rds")
####Need to be removed after adding sequenicing data
data_qPCR <- read_csv("/Users/minsikkim/Dropbox (Partners HealthCare)/Project_SICAS2_microbiome/7_Manuscripts/2022_MGK_Host_Depletion/Tables/DAT_20230122_MGK_host_control_qPCR.csv")
#qPCR data of all the samples sent out sequencing
data_qPCR <- subset(data_qPCR, data_qPCR$baylor_other_id %in% c(sample_names(phyloseq$phyloseq_count)) | data_qPCR$baylor_other_id %in% c(read_excel("/Users/minsikkim/Dropbox (Partners HealthCare)/Project_Baylor/3_Documentation/Communications/2023-01-24_baylor_shipping_sicas2_nasal_host_depleted/CMMR_MetadataCapture_20230124_LaiP-PQ00430_SICAS2_NS.xlsx", skip = 27) %>% data.frame %>% .$`Optional..............secondary.ID`))
data_qPCR <- subset(data_qPCR, data_qPCR$sample_type %in% c("BAL", "nasal_swab", "Sputum", "neg_depletion", "pos_depletion"))
data_qPCR$sample_type <- factor(data_qPCR$sample_type, levels = c("BAL", "nasal_swab", "Sputum", "pos_depletion", "neg_depletion"),
labels = c("BAL", "Nasal swab", "Sputum", "P depletion", "N depletion"))
data_qPCR$treatment <- factor(data_qPCR$treatment, levels = c("control", "lyPMA", "benzonase", "host_zero", "molysis", "qiaamp"),
labels = c("Control", "lyPMA", "Benzonase", "Host zero", "Molysis", "QIAamp"))
#sample data loading
sample_data <- sample_data(phyloseq$phyloseq_count)
- QC Q1. How many samples failed sequencing Q2. How were changes in read stats and host DNA proportion? Q3. How were the extraction controls Q4. Decontam - were there any contaminants?
Q1. How many samples failed in sequencing?
# Initail QC --------------------------------------------------------------
#Quesetions - QC
#Q0. How many samples failed in sequencing
## figures -----raw data
sample_data %>%
subset(., !is.na(.$subject_id)) %>%
data.frame() %>%
mutate(host_seq_percent = sequencing_host_prop * 100,
.after = sequencing_host_prop,) %>%
gather(feature, value, Raw_reads:host_seq_percent) %>%
group_by(feature, sample_type) %>%
subset(., .$feature %in% c("Raw_reads", "Host_mapped", "Final_reads", "host_seq_percent")) %>%
mutate(feature = factor(feature, levels = c("Raw_reads", "Host_mapped", "Final_reads", "host_seq_percent"), labels = c("Raw reads", "Host mapped", "Final reads", "Host %"))) %>%
ggplot(aes(x = value, fill = treatment)) +
geom_histogram(bins = 97) +
theme(legend.position = "top") +
guides(fill=guide_legend(title="Treatment", nrow = 1)) +
facet_grid(sample_type~feature, scales = "free") +
ggtitle("log10 transfromed histrogram")
## figures -----log10
sample_data %>%
subset(., !is.na(.$subject_id)) %>%
data.frame() %>%
mutate(host_seq_percent = sqrt(sequencing_host_prop),
.after = sequencing_host_prop,) %>%
gather(feature, value, Raw_reads:host_seq_percent) %>%
group_by(feature, sample_type) %>%
subset(., .$feature %in% c("Raw_reads", "Host_mapped", "Final_reads", "host_seq_percent")) %>%
mutate(feature = factor(feature, levels = c("Raw_reads", "Host_mapped", "Final_reads", "host_seq_percent"), labels = c("Raw reads", "Host mapped", "Final reads", "Host %"))) %>%
ggplot(aes(x = log10(value), fill = treatment)) +
geom_histogram(bins = 97) +
theme(legend.position = "top") +
guides(fill=guide_legend(title="Treatment", nrow = 1)) +
facet_grid(sample_type~feature, scales = "free") +
ggtitle("log10 for reads, sqrt for host % transfromed histrogram")
# no somaple showed 0 reads
ggarrange(ggplot(sample_data %>% subset(., !is.na(.$subject_id)) %>% data.frame(), aes(x = Final_reads, fill = treatment)) +
geom_histogram(bins = 97) +
facet_wrap(~sample_type) +
theme_classic(base_family = "serif") +
ggtitle("Histogram of final reads by sample type and treatment") +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33"), name = "Treatment"),
ggplot(sample_data %>% subset(., !is.na(.$subject_id)) %>% data.frame(), aes(x = log10(Final_reads), fill = treatment)) +
geom_histogram(bins = 97) +
facet_wrap(~sample_type) +
theme_classic(base_family = "serif") +
ggtitle("Histogram of log10(final reads) by sample type and treatment") +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33"), name = "Treatment"),
common.legend = T, ncol = 1)
hist((log10((phyloseq$phyloseq_count %>% otu_table %>% colSums()) + 1)),100, main = "Histogram of total reads (sum of OTU table)") # 2 samples showed 0 total reads (sum of otu_table)
#how were the samples failed in library prep?
sample_data %>% data.frame %>% mutate(total_read = phyloseq$phyloseq_count %>% otu_table %>% colSums()) %>% rownames_to_column(var = "baylor_other_id") %>%
ggplot(aes(x = reorder(baylor_other_id, -total_read),
y = log10(total_read + 1),
col = lib_failed)) +
geom_point() +
theme_classic(base_family = "serif") +
theme(axis.title.y = element_markdown(), axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1, size = 4)) +
ylab("log<sub>10</sub>(Sum of OTU table reads)") +
xlab("Sample ID") +
guides(col=guide_legend(title="Library failed")) +
ggtitle("Sum of OTU reads by library failure status")
sample_data %>% data.frame %>% filter(phyloseq$phyloseq_count %>% otu_table %>% colSums() == 0) # two BAL sampels showed 0 total reads
sample_data(phyloseq$phyloseq_count) %>% data.frame() %>% subset(., .$lib_failed)
Results:
2.1.1 Modeling final read should be conducted with both linear and logistic regression. Host % need no transformation, and should be tested for both linear and binomial methods
2.1.2 13 samples failed in library prep
2.1.3. Two BAL sampels showed 0 total reads
2.1.4. Sequencing fail ≠ library prep fail
Comments from Baylor:
Q: What was the lab’s criteria for deciding which samples failed library prep.? There were 13 samples that you pointed as failed but their sequencing result actually looks pretty good (ie similar to samples that didn’t fail library prep)
A: To determine whether a library attempt “passed or failed” the lab looks at the picogreen concentrations and a library fragment size distribution trace. The trace files are an output from either the Fragment Analyzer or TapeStation (a copy of the trace files for PQ00331 is attached). If a sample has a background level pico concentration and no discernable fragment concentration on the trace (i.e. a flat trace line) it is considered failed library. If the sample is below the level of detection of our standard library QC methods, it is considered failure. It’s still possible that there is some small amounts of library in those samples that were successfully sequenced, but often those samples do not generate a meaningful amount of sequence data.
QC2 table
#sequencing result by sample type and control (1/0)
options(dplyr.summarise.inform = FALSE)
sample_data %>% data.frame() %>%
group_by(sample_type, treated) %>%
summarise(N = n(),
`Raw reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Raw_reads/10000000),2),nsmall = 2, big.mark = ","), " [", format(round(quantile(Raw_reads/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Raw_reads/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Host reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Host_mapped/10000000),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(Host_mapped/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Host_mapped/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Host reads proportion<br>(median [IQR])<br>[%]` = paste(format(round(median(sequencing_host_prop * 100),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(sequencing_host_prop * 100, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(sequencing_host_prop * 100, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Final reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Final_reads/10000000),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(Final_reads/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Final_reads/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
) %>%
rename(`Sample type` = sample_type, Treated = treated) %>%
data.frame(check.names = F) %>% mutate_all(linebreak) %>% kbl(format = "html", escape = F) %>% kable_styling(full_width = 0, html_font = "serif")
Sample type | Treated | N |
Raw reads (median [IQR]) [reads x 107] |
Host reads (median [IQR]) [reads x 107] |
Host reads proportion (median [IQR]) [%] |
Final reads (median [IQR]) [reads x 107] |
---|---|---|---|---|---|---|
BAL | 0 | 5 | 15.73 [6.35, 15.92] | 12.92 [5.21, 12.94] | 82.14 [82.12, 82.18] | 0.03 [0.03, 0.04] |
BAL | 1 | 25 | 6.17 [4.57, 17.43] | 4.65 [2.78, 12.80] | 75.59 [69.38, 78.44] | 0.17 [0.10, 0.37] |
Nasal swab | 0 | 10 | 13.09 [7.73, 16.93] | 10.05 [6.11, 13.04] | 77.34 [76.89, 79.45] | 0.48 [0.10, 0.87] |
Nasal swab | 1 | 25 | 4.08 [0.99, 6.40] | 0.81 [0.26, 1.36] | 27.46 [13.51, 64.58] | 0.97 [0.17, 3.42] |
Sputum | 0 | 5 | 8.59 [8.25, 9.27] | 6.87 [6.69, 7.50] | 80.61 [79.92, 80.89] | 0.06 [0.06, 0.09] |
Sputum | 1 | 25 | 12.23 [10.34, 13.73] | 7.71 [3.76, 8.82] | 58.64 [39.71, 74.93] | 1.16 [0.47, 4.19] |
Neg. ext. | 0 | 1 | 0.02 [0.02, 0.02] | 0.00 [0.00, 0.00] | 3.13 [3.13, 3.13] | 0.02 [0.02, 0.02] |
Pos. ext. | 0 | 1 | 11.87 [11.87, 11.87] | 0.00 [0.00, 0.00] | 0.02 [0.02, 0.02] | 9.96 [9.96, 9.96] |
sample_data %>% data.frame() %>%
#dplyr::filter(sample_type %in% c("Sputum", "nasal_swab", "BAL")) %>%
group_by (sample_type, treatment) %>%
summarise(N = n(),
`Raw reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Raw_reads/10000000),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(Raw_reads/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Raw_reads/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Host reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Host_mapped/10000000),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(Host_mapped/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Host_mapped/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Host reads proportion<br>(median [IQR])<br>[%]` = paste(format(round(median(sequencing_host_prop * 100),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(sequencing_host_prop * 100, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(sequencing_host_prop * 100, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
`Final reads<br>(median [IQR])<br>[reads x 10<sup>7</sup>]` = paste(format(round(median(Final_reads/10000000),2), nsmall = 2, big.mark = ","), " [", format(round(quantile(Final_reads/10000000, 0.25),2), nsmall = 2, big.mark = ","), ", ", format(round(quantile(Final_reads/10000000, 0.75),2), nsmall = 2, big.mark = ","), "]", sep = ""),
) %>% data.frame(check.names = F) %>%
arrange(sample_type, treatment) %>%
rename(`Sample type` = sample_type, Treatment = treatment) %>%
mutate_all(linebreak) %>% kbl(format = "html", escape = F) %>% kable_styling(full_width = 0, html_font = "serif")
Sample type | Treatment | N |
Raw reads (median [IQR]) [reads x 107] |
Host reads (median [IQR]) [reads x 107] |
Host reads proportion (median [IQR]) [%] |
Final reads (median [IQR]) [reads x 107] |
---|---|---|---|---|---|---|
BAL | Control | 5 | 15.73 [6.35, 15.92] | 12.92 [5.21, 12.94] | 82.14 [82.12, 82.18] | 0.03 [0.03, 0.04] |
BAL | lyPMA | 5 | 5.72 [3.59, 13.41] | 4.65 [2.79, 10.90] | 80.73 [77.85, 81.18] | 0.06 [0.04, 0.10] |
BAL | Benzonase | 5 | 18.59 [16.20, 23.63] | 14.77 [12.80, 18.16] | 79.02 [77.89, 79.45] | 0.17 [0.16, 0.22] |
BAL | Host zero | 5 | 4.57 [2.32, 4.71] | 2.69 [1.61, 2.93] | 66.98 [57.17, 68.95] | 0.24 [0.13, 0.82] |
BAL | Molysis | 5 | 4.76 [3.57, 4.86] | 2.78 [1.39, 3.61] | 74.39 [74.29, 75.59] | 0.29 [0.13, 1.56] |
BAL | QIAamp | 5 | 17.19 [15.35, 17.43] | 11.87 [10.79, 12.22] | 74.88 [71.08, 77.31] | 0.26 [0.10, 1.02] |
Nasal swab | Control | 10 | 13.09 [7.73, 16.93] | 10.05 [6.11, 13.04] | 77.34 [76.89, 79.45] | 0.48 [0.10, 0.87] |
Nasal swab | lyPMA | 5 | 0.98 [0.85, 1.24] | 0.63 [0.28, 0.88] | 71.37 [28.73, 74.68] | 0.07 [0.06, 0.08] |
Nasal swab | Benzonase | 5 | 5.75 [4.95, 6.57] | 3.66 [1.29, 5.05] | 64.58 [63.71, 76.83] | 0.28 [0.26, 1.04] |
Nasal swab | Host zero | 5 | 2.83 [1.42, 6.42] | 0.49 [0.03, 0.81] | 7.67 [2.33, 25.73] | 2.43 [0.97, 5.03] |
Nasal swab | Molysis | 5 | 0.99 [0.63, 4.08] | 0.42 [0.06, 0.64] | 41.04 [4.31, 64.24] | 0.32 [0.17, 2.53] |
Nasal swab | QIAamp | 5 | 6.40 [6.40, 6.80] | 0.86 [0.86, 1.17] | 17.24 [13.51, 19.57] | 4.63 [4.50, 4.67] |
Sputum | Control | 5 | 8.59 [8.25, 9.27] | 6.87 [6.69, 7.50] | 80.61 [79.92, 80.89] | 0.06 [0.06, 0.09] |
Sputum | lyPMA | 5 | 10.98 [5.22, 12.78] | 8.82 [3.76, 10.44] | 76.33 [72.02, 80.29] | 0.25 [0.15, 0.44] |
Sputum | Benzonase | 5 | 10.76 [10.34, 10.82] | 7.81 [7.75, 8.24] | 74.93 [72.13, 75.33] | 0.47 [0.45, 0.59] |
Sputum | Host zero | 5 | 13.14 [7.64, 13.95] | 4.39 [3.80, 7.71] | 49.71 [31.45, 55.49] | 2.91 [2.36, 3.67] |
Sputum | Molysis | 5 | 12.59 [10.84, 13.73] | 2.98 [1.83, 4.28] | 27.49 [14.62, 28.19] | 6.11 [5.56, 8.37] |
Sputum | QIAamp | 5 | 12.35 [12.23, 12.85] | 9.08 [8.41, 9.27] | 71.76 [56.69, 73.50] | 1.16 [1.13, 3.89] |
Neg. ext. | Control | 1 | 0.02 [0.02, 0.02] | 0.00 [0.00, 0.00] | 3.13 [3.13, 3.13] | 0.02 [0.02, 0.02] |
Pos. ext. | Control | 1 | 11.87 [11.87, 11.87] | 0.00 [0.00, 0.00] | 0.02 [0.02, 0.02] | 9.96 [9.96, 9.96] |
QC2 figure
# Summary figures - facet and z-score -------------------------------------
sample_data %>%
subset(., !is.na(.$subject_id)) %>%
data.frame() %>%
gather(feature, value, Raw_reads:sequencing_host_prop) %>%
group_by(feature, sample_type) %>%
subset(., .$feature %in% c("Raw_reads", "Host_mapped", "Final_reads", "sequencing_host_prop")) %>%
mutate(z_score = scale(value),
feature = factor(feature, levels = c("Raw_reads", "Host_mapped", "Final_reads", "sequencing_host_prop"), labels = c("Raw reads", "Host mapped", "Final reads", "Host %"))) %>%
ggplot(aes(x = treatment, y = z_score, fill = treatment)) +
geom_boxplot(lwd = 0.2) +
guides(fill=guide_legend(title="Treatment", nrow = 1)) +
facet_grid(sample_type~feature) +
xlab("Treatment") +
ylab("Z score") +
theme_classic(base_family = "serif", base_size = 14) +
guides( x = guide_axis(angle = 90)) +
theme(legend.position = "top") +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33"), name = "Treatment") #color using https://colorbrewer2.org/#type=qualitative&scheme=Set1&n=6
Results:
2.2.1. There were no differences between raw reads, however, final reads increased after some treatment, and host DNA proportion decreased
2.2.2. The changes in final reads were varied by treatment and sample type
comment: Should I normalize z-score to mean value of control?
Q3. How was the extraction controls, both pos and neg?
#Loading theoretical mock community
zymo_mock <- read_excel("/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_sicas2/data_raw/DAR_20210929_zymo_mock_data.xlsx") %>%
data.frame(row.names = T) %>% rename(mock_theoretical = Mock) %>% mutate(mock_theoretical = mock_theoretical/100) %>%
merge_phyloseq(otu_table(., taxa_are_rows = T), tax_table(phyloseq$phyloseq_count))
phyloseq_control_rel <- rbind(c("mock_theoretical", "mock")) %>% data.frame() %>%
column_to_rownames(var = "X1") %>% rename(sample_type = X2) %>% #making sample_data of mock community
merge_phyloseq(sample_data(.), zymo_mock) %>%
merge_phyloseq(., subset_samples(phyloseq$phyloseq_rel, sample_type == "Pos. ext." | sample_type == "Neg. ext." )) #adding data of controls
#Species richness of each control groups
cat("Species richness\n")
## Species richness
rowSums(t(otu_table(phyloseq_control_rel)) != 0)
## mock_theoretical 20220606_Pos 20220606_Neg
## 10 41 3
sample_data(phyloseq_control_rel)$sample_type <- factor(sample_data(phyloseq_control_rel)$sample_type,
levels = c("mock", "2", "1"),
labels = c("Mock, 10 spp.", "Pos., 41 spp.", "Neg., 3 spp."))
#Manipulating phyloseq - only top 10
tax_table(phyloseq_control_rel) %>%
cbind(species10 = "[Others]") %>%
{top10species <- head(taxa_sums(phyloseq_control_rel), 10) %>% names()
.[top10species, "species10"] <- as.character(.[top10species, "Species"])
.[, 8] <- .[, 8] %>% gsub("s__", "", .) %>% gsub("_", " ", .) %>% paste("<i>", ., "</i>", sep = "")
phyloseq_temp <- phyloseq_control_rel
tax_table(phyloseq_temp) <- tax_table(.)
phyloseq_temp
} %>%
plot_bar(., fill="species10") +
ylab("Relative abundancne") +
theme_classic(base_size = 11, base_family = "serif") +
ggtitle("Species richness of control data") +
theme(legend.text = element_markdown()) +
guides(fill=guide_legend(title="Top 10 species")) +
facet_wrap (~ sample_type, scales= "free_x", nrow=1)
#there could be opportunistic pathogens...
Results
2.3.1. Negative control showed minimal number of possible contaminants
2.3.2. Positive control contained various contaminants
Results:
2.2.1. There were no differences between raw reads, however, final reads increased after some treatment, and host DNA proportion decreased
2.2.2. The changes in final reads were varied by treatment and sample type
Q4. Prevalence filtering - red flag
#Calculation of sample prevalence, standard deviation, median abundance across all samples for all bugs and making into a table.
#
#• In initial analysis we will not perform prevalence or abundance filtering (though we may consider this for secondary differential abundance analyses to manage p (features) > n (sample size) problem and issues with multiple hypothesis correction)
taxa_qc <- data.frame("species" = otu_table(phyloseq$phyloseq_rel) %>% t() %>% colnames(),
"prevalence" = ifelse(phyloseq$phyloseq_count %>% otu_table() > 0, 1, 0) %>% t() %>% colSums(), #Prevalence of taxa
"mean_rel_abd" = phyloseq$phyloseq_rel %>% otu_table() %>% t() %>% colMeans(na.rm = T) #mean relativ abundacne
)
hist(log10(taxa_qc$prevalence), xlab = "log10(Taxa prevalence)", main = "Histogram of prevalence of taxa")
hist(log10(taxa_qc$mean_rel_abd), xlab = "log10(Mean relative abundance)", main = "Histogram of mean relative abundance")
• In initial analysis we will not perform prevalence or abundance filtering (though we may consider this for secondary differentialabundance analyses to manage p (features) > n (sample size) problem and issues with multiple hypothesis correction) • Calculation of sample prevalence, standard deviation, median abundance across all samples for all bugs and making into a table.
Although we don’t consider the prevalence of abundance at this time, we can consider their red-flags after running the DA analysis
- red flag
red_flag_taxa <- data.frame(species = taxa_qc$species,
red_flag_prev_abd = ifelse(taxa_qc$prevalence < otu_table(phyloseq$phyloseq_rel) %>% t %>% rownames() %>% length * 0.05 & taxa_qc$mean_rel_abd < quantile(taxa_qc$mean_rel_abd, 0.75), 1, 0)
)
#Analysis#
#0. calculation of alpha-diversity indices#
alpha_diversity <- function(data) {
otu_table <- otu_table(data) %>% .[colSums(.) !=0]
S.obs <- rowSums(t(otu_table) != 0)
sample_data <- sample_data(data)
data_evenness <- vegan::diversity(t(otu_table)) / log(vegan::specnumber(t(otu_table))) # calculate evenness index using vegan package
data_shannon <- vegan::diversity(t(otu_table), index = "shannon") # calculate Shannon index using vegan package
data_hill <- exp(data_shannon) # calculate Hills index
data_dominance <- microbiome::dominance(otu_table, index = "all", rank = 1, aggregate = TRUE) # dominance (Berger-Parker index), etc.
data_invsimpson <- vegan::diversity(t(otu_table), index = "invsimpson") # calculate Shannon index using vegan package
alpha_diversity <- cbind(S.obs, data_shannon, data_hill, data_invsimpson, data_evenness,data_dominance) # combine all indices in one data table
sample_data <- merge(data.frame(sample_data), alpha_diversity, by = 0, all = T) %>% column_to_rownames(var = "Row.names")
}
sample_data(phyloseq$phyloseq_rel) <- sample_data(alpha_diversity(phyloseq$phyloseq_count))
sample_data(phyloseq$phyloseq_count) <- sample_data(alpha_diversity(phyloseq$phyloseq_count))
sample_data(phyloseq$phyloseq_path_rpkm) <- sample_data(alpha_diversity(phyloseq$phyloseq_path_rpkm))
#1. qPCR, by smaple type and treatment# A. Total DNA B. Host DNA C. Bacterial DNA D. Host %
#2A: Change in total DNA (qPCR)
f2a <- ggplot(data_qPCR, aes(x = sample_type, y = log10(DNA_host_nondil + DNA_bac_nondil))) +
geom_boxplot(aes(fill = treatment), lwd = 0.2) +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33")) + #color using https://colorbrewer2.org/#type=qualitative&scheme=Set1&n=6
ylab("log<sub>10</sub>(qPCR total DNA)<br>(ng/μL)") +
xlab("Sample type") +
theme_classic (base_size = 12, base_family = "serif") +
labs(tag = "A") +
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
theme(plot.tag = element_text(size = 15), axis.title.y = element_markdown()) + # Plot title size
guides(fill = guide_legend(nrow = 1, title = "Treatment"))
#2B: Change in human DNA (qPCR)
f2b <- ggplot(data_qPCR, aes(x = sample_type, y = log10(DNA_host_nondil))) +
geom_boxplot(aes(fill = treatment), lwd = 0.2) +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33")) +
ylab("log<sub>10</sub>(qPCR host DNA)<br>(ng/μL)") +
xlab("Sample type") +
theme_classic (base_size = 12, base_family = "serif")+
labs(tag = "B") +
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
theme(plot.tag = element_text(size = 15), axis.title.y = element_markdown()) + # Plot title size
guides(fill = guide_legend(nrow = 1, title = "Treatment"))
#2C: Change in 16S DNA (qPCR)
f2c <- ggplot(data_qPCR, aes(x = sample_type, y = log10(DNA_bac_nondil))) +
geom_boxplot(aes(fill = treatment), lwd = 0.2) +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33")) +
ylab("log<sub>10</sub>(qPCR bacterial DNA)<br>(ng/μL)") +
xlab("Sample type") +
theme_classic (base_size = 12, base_family = "serif")+
labs(tag = "C") +
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
theme(plot.tag = element_text(size = 15), axis.title.y = element_markdown()) + # Plot title size
guides(fill = guide_legend(nrow = 1, title = "Treatment"))
#2D. Change in % host (qPCR)
f2d <- ggplot(data_qPCR, aes(x = sample_type, y = log10(host_proportion * 100))) +
geom_boxplot(aes(fill = treatment), lwd = 0.2) +
scale_fill_manual(values = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33")) +
ylab("log<sub>10</sub>(host DNA) (%)") +
xlab("Sample type") +
theme_classic (base_size = 12, base_family = "serif") +
labs(tag = "D") +
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
theme(plot.tag = element_text(size = 15), axis.title.y = element_markdown()) + # Plot title size
guides(fill = guide_legend(nrow = 1, title = "Treatment"))
#output for markdown
ggarrange(f2a, f2b, f2c, f2d, common.legend = T , align = "hv")
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on '(ng/μL)' in 'mbcsToSbcs': dot substituted for <ce>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on '(ng/μL)' in 'mbcsToSbcs': dot substituted for <bc>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on '(ng/μL)' in 'mbcsToSbcs': dot substituted for <ce>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on '(ng/μL)' in 'mbcsToSbcs': dot substituted for <bc>
#2. Sequencing results (treatment, raw reads, host reads, % host, final reads)# –> both stratified and nonstratified library prep % vs sample_type + treatment + sample_type * treatment + subject_id (binary) log10(Final reads) vs sample_type + treatment + sample_type * treatment + subject_id (linear or binary, see regular and cumulative distribution) Host DNA % vs sample_type + treatment + sample_type * treatment + subject_id (linear or binary, see regular and cumulative distribution) –> both stratified and nonstratified
cat("Binomial - library failed? \n\n")
## Binomial - library failed?
glmer(lib_failed ~ sample_type + treatment + sample_type * treatment + (1|subject_id), data = sample_data %>% data.frame) %>%
summary %>% .$coefficients %>% data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`t value`) > 2 ~ "*", .default = " ")) %>%
kbl(format = "html") %>% kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | t value | ||
---|---|---|---|---|
(Intercept) | 0.0000000 | 0.1167011 | 0.0000000 | |
sample_typeNasal swab | -0.0204626 | 0.1470919 | -0.1391145 | |
sample_typeSputum | 0.0000000 | 0.1650403 | 0.0000000 | |
treatmentlyPMA | 0.2000000 | 0.1619675 | 1.2348160 | |
treatmentBenzonase | 0.0000000 | 0.1619675 | 0.0000000 | |
treatmentHost zero | 0.2000000 | 0.1619675 | 1.2348160 | |
treatmentMolysis | 0.2000000 | 0.1619675 | 1.2348160 | |
treatmentQIAamp | 0.0000000 | 0.1619675 | 0.0000000 | |
sample_typeNasal swab:treatmentlyPMA | 0.5978181 | 0.2143680 | 2.7887474 |
|
sample_typeSputum:treatmentlyPMA | -0.2000000 | 0.2290566 | -0.8731468 | |
sample_typeNasal swab:treatmentBenzonase | -0.0021819 | 0.2143680 | -0.0101781 | |
sample_typeSputum:treatmentBenzonase | 0.0000000 | 0.2290566 | 0.0000000 | |
sample_typeNasal swab:treatmentHost zero | 0.1978181 | 0.2143680 | 0.9227971 | |
sample_typeSputum:treatmentHost zero | -0.2000000 | 0.2290566 | -0.8731468 | |
sample_typeNasal swab:treatmentMolysis | 0.6021819 | 0.2143680 | 2.8091035 |
|
sample_typeSputum:treatmentMolysis | -0.2000000 | 0.2290566 | -0.8731468 | |
sample_typeNasal swab:treatmentQIAamp | 0.0021819 | 0.2143680 | 0.0101781 | |
sample_typeSputum:treatmentQIAamp | 0.0000000 | 0.2290566 | 0.0000000 |
cat("Binomial - Final reads? \n\n")
## Binomial - Final reads?
glmer(log10(Final_reads) ~ sample_type + treatment + sample_type * treatment + (1|subject_id), data = sample_data %>% data.frame) %>%
summary %>% .$coefficients %>% data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`t value`) > 2 ~ "*", .default = " ")) %>%
kbl(format = "html") %>% kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | t value | ||
---|---|---|---|---|
(Intercept) | 5.4933063 | 0.2095210 | 26.2184086 |
|
sample_typeNasal swab | 1.1246781 | 0.2789651 | 4.0316080 |
|
sample_typeSputum | 0.3332900 | 0.2963074 | 1.1248117 | |
treatmentlyPMA | 0.3521385 | 0.2733402 | 1.2882794 | |
treatmentBenzonase | 0.8109049 | 0.2733402 | 2.9666509 |
|
treatmentHost zero | 0.9501904 | 0.2733402 | 3.4762193 |
|
treatmentMolysis | 1.0358039 | 0.2733402 | 3.7894313 |
|
treatmentQIAamp | 1.0480985 | 0.2733402 | 3.8344107 |
|
sample_typeNasal swab:treatmentlyPMA | -0.8774152 | 0.3621899 | -2.4225278 |
|
sample_typeSputum:treatmentlyPMA | 0.1879364 | 0.3865614 | 0.4861747 | |
sample_typeNasal swab:treatmentBenzonase | -0.6887274 | 0.3621899 | -1.9015642 | |
sample_typeSputum:treatmentBenzonase | 0.0349655 | 0.3865614 | 0.0904526 | |
sample_typeNasal swab:treatmentHost zero | -0.1157121 | 0.3621899 | -0.3194791 | |
sample_typeSputum:treatmentHost zero | 0.7231403 | 0.3865614 | 1.8706997 | |
sample_typeNasal swab:treatmentMolysis | -0.8411412 | 0.3621899 | -2.3223760 |
|
sample_typeSputum:treatmentMolysis | 0.9543008 | 0.3865614 | 2.4686913 |
|
sample_typeNasal swab:treatmentQIAamp | 0.0236242 | 0.3621899 | 0.0652260 | |
sample_typeSputum:treatmentQIAamp | 0.3676901 | 0.3865614 | 0.9511817 |
cat("Linear - Final reads? \n\n")
## Linear - Final reads?
lmer(log10(Final_reads) ~ sample_type + treatment + sample_type * treatment + (1|subject_id), data = sample_data %>% data.frame) %>%
summary %>% .$coefficients %>% data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*", .default = " ")) %>%
kbl(format = "html") %>% kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 5.4933063 | 0.2095210 | 62.79820 | 26.2184086 | 0.0000000 |
|
sample_typeNasal swab | 1.1246781 | 0.2789651 | 37.26869 | 4.0316080 | 0.0002633 |
|
sample_typeSputum | 0.3332900 | 0.2963074 | 62.79820 | 1.1248117 | 0.2649498 | |
treatmentlyPMA | 0.3521385 | 0.2733402 | 67.65016 | 1.2882794 | 0.2020376 | |
treatmentBenzonase | 0.8109049 | 0.2733402 | 67.65016 | 2.9666509 | 0.0041580 |
|
treatmentHost zero | 0.9501904 | 0.2733402 | 67.65016 | 3.4762193 | 0.0008929 |
|
treatmentMolysis | 1.0358039 | 0.2733402 | 67.65016 | 3.7894313 | 0.0003238 |
|
treatmentQIAamp | 1.0480985 | 0.2733402 | 67.65016 | 3.8344107 | 0.0002788 |
|
sample_typeNasal swab:treatmentlyPMA | -0.8774152 | 0.3621899 | 68.18953 | -2.4225278 | 0.0180749 |
|
sample_typeSputum:treatmentlyPMA | 0.1879364 | 0.3865614 | 67.65016 | 0.4861747 | 0.6284145 | |
sample_typeNasal swab:treatmentBenzonase | -0.6887274 | 0.3621899 | 68.18953 | -1.9015642 | 0.0614539 | |
sample_typeSputum:treatmentBenzonase | 0.0349655 | 0.3865614 | 67.65016 | 0.0904526 | 0.9281949 | |
sample_typeNasal swab:treatmentHost zero | -0.1157121 | 0.3621899 | 68.18953 | -0.3194791 | 0.7503399 | |
sample_typeSputum:treatmentHost zero | 0.7231403 | 0.3865614 | 67.65016 | 1.8706997 | 0.0657128 | |
sample_typeNasal swab:treatmentMolysis | -0.8411412 | 0.3621899 | 68.18953 | -2.3223760 | 0.0232052 |
|
sample_typeSputum:treatmentMolysis | 0.9543008 | 0.3865614 | 67.65016 | 2.4686913 | 0.0160928 |
|
sample_typeNasal swab:treatmentQIAamp | 0.0236242 | 0.3621899 | 68.18953 | 0.0652260 | 0.9481849 | |
sample_typeSputum:treatmentQIAamp | 0.3676901 | 0.3865614 | 67.65016 | 0.9511817 | 0.3448982 |
cat("Binomial - Host DNA proportion? \n\n")
## Binomial - Host DNA proportion?
glmer(sequencing_host_prop ~ sample_type + treatment + sample_type * treatment + (1|subject_id), data = sample_data %>% data.frame) %>%
summary %>% .$coefficients %>% data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`t value`) > 2 ~ "*", .default = " ")) %>%
kbl(format = "html") %>% kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | t value | ||
---|---|---|---|---|
(Intercept) | 0.8200713 | 0.0646272 | 12.6892671 |
|
sample_typeNasal swab | -0.0378253 | 0.0799149 | -0.4733196 | |
sample_typeSputum | -0.0293956 | 0.0913966 | -0.3216265 | |
treatmentlyPMA | -0.0377605 | 0.0908962 | -0.4154243 | |
treatmentBenzonase | -0.0324363 | 0.0908962 | -0.3568498 | |
treatmentHost zero | -0.2000025 | 0.0908962 | -2.2003393 |
|
treatmentMolysis | -0.1577230 | 0.0908962 | -1.7351990 | |
treatmentQIAamp | -0.0928027 | 0.0908962 | -1.0209737 | |
sample_typeNasal swab:treatmentlyPMA | -0.1931415 | 0.1202628 | -1.6059959 | |
sample_typeSputum:treatmentlyPMA | 0.0106590 | 0.1285467 | 0.0829196 | |
sample_typeNasal swab:treatmentBenzonase | -0.1301969 | 0.1202628 | -1.0826036 | |
sample_typeSputum:treatmentBenzonase | -0.0432386 | 0.1285467 | -0.3363648 | |
sample_typeNasal swab:treatmentHost zero | -0.3924910 | 0.1202628 | -3.2636117 |
|
sample_typeSputum:treatmentHost zero | -0.1532698 | 0.1285467 | -1.1923278 | |
sample_typeNasal swab:treatmentMolysis | -0.2637315 | 0.1202628 | -2.1929608 |
|
sample_typeSputum:treatmentMolysis | -0.3863225 | 0.1285467 | -3.0053090 |
|
sample_typeNasal swab:treatmentQIAamp | -0.5240678 | 0.1202628 | -4.3576894 |
|
sample_typeSputum:treatmentQIAamp | -0.0370057 | 0.1285467 | -0.2878775 |
cat("Linear - Host DNA proportion? \n\n")
## Linear - Host DNA proportion?
lmer(sequencing_host_prop ~ sample_type + treatment + sample_type * treatment + (1|subject_id), data = sample_data %>% data.frame) %>%
summary %>% .$coefficients %>% data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*", .default = " ")) %>%
kbl(format = "html") %>% kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 0.8200713 | 0.0646272 | 75.67093 | 12.6892671 | 0.0000000 |
|
sample_typeNasal swab | -0.0378253 | 0.0799149 | 41.00023 | -0.4733196 | 0.6384957 | |
sample_typeSputum | -0.0293956 | 0.0913966 | 75.67093 | -0.3216265 | 0.7486224 | |
treatmentlyPMA | -0.0377605 | 0.0908962 | 68.23467 | -0.4154243 | 0.6791348 | |
treatmentBenzonase | -0.0324363 | 0.0908962 | 68.23467 | -0.3568498 | 0.7223055 | |
treatmentHost zero | -0.2000025 | 0.0908962 | 68.23467 | -2.2003393 | 0.0311715 |
|
treatmentMolysis | -0.1577230 | 0.0908962 | 68.23467 | -1.7351990 | 0.0872202 | |
treatmentQIAamp | -0.0928027 | 0.0908962 | 68.23467 | -1.0209737 | 0.3108732 | |
sample_typeNasal swab:treatmentlyPMA | -0.1931415 | 0.1202628 | 68.80454 | -1.6059959 | 0.1128550 | |
sample_typeSputum:treatmentlyPMA | 0.0106590 | 0.1285467 | 68.23467 | 0.0829196 | 0.9341582 | |
sample_typeNasal swab:treatmentBenzonase | -0.1301969 | 0.1202628 | 68.80454 | -1.0826036 | 0.2827639 | |
sample_typeSputum:treatmentBenzonase | -0.0432386 | 0.1285467 | 68.23467 | -0.3363648 | 0.7376281 | |
sample_typeNasal swab:treatmentHost zero | -0.3924910 | 0.1202628 | 68.80454 | -3.2636117 | 0.0017148 |
|
sample_typeSputum:treatmentHost zero | -0.1532698 | 0.1285467 | 68.23467 | -1.1923278 | 0.2372628 | |
sample_typeNasal swab:treatmentMolysis | -0.2637315 | 0.1202628 | 68.80454 | -2.1929608 | 0.0316937 |
|
sample_typeSputum:treatmentMolysis | -0.3863225 | 0.1285467 | 68.23467 | -3.0053090 | 0.0037094 |
|
sample_typeNasal swab:treatmentQIAamp | -0.5240678 | 0.1202628 | 68.80454 | -4.3576894 | 0.0000449 |
|
sample_typeSputum:treatmentQIAamp | -0.0370057 | 0.1285467 | 68.23467 | -0.2878775 | 0.7743131 |
#3. LM of taxa alpha diversity# –> both stratified and nonstratified
sample_data <- sample_data(phyloseq$phyloseq_count) %>% data.frame(check.names = F) %>% subset(., !is.nan(.$simpson))
cat("Species richness of all samples\n\n")
## Species richness of all samples
cat("S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|subject_id), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -62.286176 | 18.946348 | 73.91996 | -3.2875031 | 0.0015486 |
|
sample_typeNasal swab | -9.894010 | 13.143390 | 19.76996 | -0.7527746 | 0.4604558 | |
sample_typeSputum | 5.066489 | 11.833705 | 23.07241 | 0.4281405 | 0.6725190 | |
treatmentlyPMA | -3.032607 | 7.992068 | 64.29757 | -0.3794521 | 0.7056025 | |
treatmentBenzonase | -4.719045 | 8.051585 | 65.30664 | -0.5861014 | 0.5598277 | |
treatmentHost zero | -2.064590 | 8.208256 | 65.44300 | -0.2515260 | 0.8021956 | |
treatmentMolysis | 10.862491 | 8.314322 | 65.52729 | 1.3064795 | 0.1959566 | |
treatmentQIAamp | -2.491588 | 8.330143 | 65.53938 | -0.2991050 | 0.7658063 | |
log10(Final_reads) | 12.532134 | 3.113656 | 67.56866 | 4.0248934 | 0.0001465 |
|
sample_typeNasal swab:treatmentlyPMA | 4.202591 | 10.419319 | 64.56848 | 0.4033461 | 0.6880263 | |
sample_typeSputum:treatmentlyPMA | 34.664316 | 10.599221 | 64.21630 | 3.2704588 | 0.0017287 |
|
sample_typeNasal swab:treatmentBenzonase | 1.775047 | 10.042806 | 64.92798 | 0.1767481 | 0.8602564 | |
sample_typeSputum:treatmentBenzonase | 62.518484 | 10.357810 | 64.45145 | 6.0358784 | 0.0000001 |
|
sample_typeNasal swab:treatmentHost zero | 4.793943 | 9.787379 | 64.68743 | 0.4898086 | 0.6259264 | |
sample_typeSputum:treatmentHost zero | 92.094185 | 10.559614 | 64.43191 | 8.7213589 | 0.0000000 |
|
sample_typeNasal swab:treatmentMolysis | -7.289176 | 10.178107 | 65.15977 | -0.7161623 | 0.4764500 | |
sample_typeSputum:treatmentMolysis | 87.197251 | 10.723044 | 64.48528 | 8.1317631 | 0.0000000 |
|
sample_typeNasal swab:treatmentQIAamp | -3.726532 | 9.774308 | 64.66718 | -0.3812579 | 0.7042616 | |
sample_typeSputum:treatmentQIAamp | 70.548734 | 10.400892 | 64.40670 | 6.7829501 | 0.0000000 |
|
#Species richness - stratified
cat("Species richness at NS\n\n")
## Species richness at NS
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|subject_id), data = subset(sample_data, sample_data$sample_type == "Nasal swab")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
## boundary (singular) fit: see help('isSingular')
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -26.0233860 | 9.340261 | 28 | -2.7861520 | 0.0094654 |
|
treatmentlyPMA | -2.1153025 | 2.324810 | 28 | -0.9098818 | 0.3706512 | |
treatmentBenzonase | -1.7637014 | 2.206148 | 28 | -0.7994486 | 0.4307605 | |
treatmentHost zero | 8.8224892 | 2.495655 | 28 | 3.5351399 | 0.0014386 |
|
treatmentMolysis | 4.5783098 | 2.217883 | 28 | 2.0642703 | 0.0483678 |
|
treatmentQIAamp | 0.8360832 | 2.678401 | 28 | 0.3121575 | 0.7572336 | |
log10(Final_reads) | 5.6349921 | 1.419898 | 28 | 3.9685903 | 0.0004571 |
|
cat("Species richness at BAL\n\n")
## Species richness at BAL
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|original_sample), data = subset(sample_data, sample_data$sample_type == "BAL")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -100.395549 | 25.504894 | 20.38095 | -3.9363249 | 0.0007925 |
|
treatmentlyPMA | -5.839094 | 7.201885 | 17.39942 | -0.8107731 | 0.4284473 | |
treatmentBenzonase | -10.667780 | 7.752673 | 18.42945 | -1.3760131 | 0.1853100 | |
treatmentHost zero | -8.986746 | 8.091470 | 18.61512 | -1.1106444 | 0.2808621 | |
treatmentMolysis | 3.342010 | 8.316699 | 18.72132 | 0.4018433 | 0.6923498 | |
treatmentQIAamp | -10.097992 | 8.350027 | 18.73603 | -1.2093364 | 0.2415732 | |
log10(Final_reads) | 19.520813 | 4.535759 | 19.97726 | 4.3037587 | 0.0003466 |
|
cat("Species richness at sputum\n\n")
## Species richness at sputum
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|original_sample), data = subset(sample_data, sample_data$sample_type == "Sputum")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -166.73637 | 94.19800 | 20.78908 | -1.770063 | 0.0913826 | |
treatmentlyPMA | 21.48046 | 13.48708 | 19.68002 | 1.592670 | 0.1271695 | |
treatmentBenzonase | 41.90046 | 17.06102 | 19.99448 | 2.455918 | 0.0233254 |
|
treatmentHost zero | 58.57768 | 28.77613 | 20.32431 | 2.035634 | 0.0550337 | |
treatmentMolysis | 60.65374 | 33.57099 | 20.37080 | 1.806731 | 0.0855997 | |
treatmentQIAamp | 41.44599 | 24.96239 | 20.26633 | 1.660337 | 0.1122410 | |
log10(Final_reads) | 31.32813 | 16.05007 | 20.49824 | 1.951899 | 0.0647464 |
#Shannon
cat("Shannon index\n\n")
## Shannon index
cat("Shannon ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## Shannon ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(data_shannon ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 1.8948018 | 0.8689906 | 73.16148 | 2.1804629 | 0.0324397 |
|
sample_typeNasal swab | 0.3612177 | 0.4227092 | 52.85894 | 0.8545299 | 0.3966679 | |
sample_typeSputum | 0.5229775 | 0.4502631 | 46.00549 | 1.1614932 | 0.2514323 | |
treatmentlyPMA | 0.1432302 | 0.3457153 | 59.27054 | 0.4143009 | 0.6801493 | |
treatmentBenzonase | 0.3245806 | 0.3510837 | 61.59790 | 0.9245107 | 0.3588282 | |
treatmentHost zero | 0.1622396 | 0.3591607 | 62.11606 | 0.4517187 | 0.6530450 | |
treatmentMolysis | 0.9220443 | 0.3646163 | 62.43914 | 2.5288070 | 0.0139853 |
|
treatmentQIAamp | 0.3416438 | 0.3654292 | 62.48560 | 0.9349109 | 0.3534333 | |
log10(Final_reads) | -0.2037567 | 0.1481509 | 70.28159 | -1.3753323 | 0.1733965 | |
sample_typeNasal swab:treatmentlyPMA | -0.3349724 | 0.4621995 | 62.11790 | -0.7247356 | 0.4713354 | |
sample_typeSputum:treatmentlyPMA | 0.9305639 | 0.4573666 | 58.90852 | 2.0346129 | 0.0463989 |
|
sample_typeNasal swab:treatmentBenzonase | -0.1716183 | 0.4431174 | 62.20574 | -0.3872975 | 0.6998579 | |
sample_typeSputum:treatmentBenzonase | 1.1940106 | 0.4466493 | 59.19803 | 2.6732618 | 0.0096921 |
|
sample_typeNasal swab:treatmentHost zero | 0.1836222 | 0.4309190 | 61.71186 | 0.4261176 | 0.6715048 | |
sample_typeSputum:treatmentHost zero | 1.4844081 | 0.4573881 | 59.56239 | 3.2454017 | 0.0019263 |
|
sample_typeNasal swab:treatmentMolysis | -0.6161157 | 0.4488821 | 62.42148 | -1.3725557 | 0.1748022 | |
sample_typeSputum:treatmentMolysis | 0.9186726 | 0.4659713 | 59.93997 | 1.9715216 | 0.0532853 | |
sample_typeNasal swab:treatmentQIAamp | -0.2466370 | 0.4305635 | 61.76297 | -0.5728238 | 0.5688436 | |
sample_typeSputum:treatmentQIAamp | 1.0739999 | 0.4489918 | 59.21646 | 2.3920256 | 0.0199485 |
|
#Simpson
cat("Inverse Simpson index\n\n")
## Inverse Simpson index
cat("InvSimp ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## InvSimp ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(data_invsimpson ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 5.0016985 | 4.1346231 | 73.75264 | 1.2097109 | 0.2302531 | |
sample_typeNasal swab | -0.1347032 | 1.9113437 | 60.99582 | -0.0704757 | 0.9440456 | |
sample_typeSputum | 0.3376540 | 2.0144643 | 55.69325 | 0.1676148 | 0.8674935 | |
treatmentlyPMA | -0.0446283 | 1.6994301 | 60.26753 | -0.0262607 | 0.9791362 | |
treatmentBenzonase | -0.0159936 | 1.7179035 | 63.20493 | -0.0093099 | 0.9926012 | |
treatmentHost zero | -0.5969192 | 1.7555995 | 63.84335 | -0.3400088 | 0.7349661 | |
treatmentMolysis | 2.8388719 | 1.7811019 | 64.24055 | 1.5938852 | 0.1158705 | |
treatmentQIAamp | -0.2830161 | 1.7849044 | 64.29760 | -0.1585609 | 0.8745118 | |
log10(Final_reads) | -0.4205707 | 0.7102118 | 72.89587 | -0.5921764 | 0.5555648 | |
sample_typeNasal swab:treatmentlyPMA | -0.2501880 | 2.2597896 | 63.56198 | -0.1107130 | 0.9121928 | |
sample_typeSputum:treatmentlyPMA | 3.6784976 | 2.2498385 | 59.81795 | 1.6350052 | 0.1073001 | |
sample_typeNasal swab:treatmentBenzonase | 0.5135753 | 2.1660273 | 63.71628 | 0.2371047 | 0.8133362 | |
sample_typeSputum:treatmentBenzonase | 8.4907847 | 2.1958416 | 60.21080 | 3.8667565 | 0.0002731 |
|
sample_typeNasal swab:treatmentHost zero | 1.1519699 | 2.1086029 | 63.04119 | 0.5463190 | 0.5867750 | |
sample_typeSputum:treatmentHost zero | 7.4853477 | 2.2470527 | 60.66550 | 3.3311847 | 0.0014760 |
|
sample_typeNasal swab:treatmentMolysis | -2.0541758 | 2.1931699 | 64.02401 | -0.9366241 | 0.3524716 | |
sample_typeSputum:treatmentMolysis | 4.7103881 | 2.2875456 | 61.13466 | 2.0591450 | 0.0437470 |
|
sample_typeNasal swab:treatmentQIAamp | 0.4812870 | 2.1067028 | 63.07313 | 0.2284551 | 0.8200315 | |
sample_typeSputum:treatmentQIAamp | 5.7791599 | 2.2072771 | 60.23515 | 2.6182303 | 0.0111632 |
|
#BPI
cat("Beger Parker index\n\n")
## Beger Parker index
cat("BPI ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## BPI ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(dbp ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -0.0429030 | 0.3089340 | 73.34596 | -0.1388743 | 0.8899301 | |
sample_typeNasal swab | -0.2254845 | 0.1470717 | 55.46609 | -1.5331600 | 0.1309210 | |
sample_typeSputum | -0.1615566 | 0.1559725 | 48.85446 | -1.0358016 | 0.3053947 | |
treatmentlyPMA | -0.0992353 | 0.1244133 | 59.03815 | -0.7976258 | 0.4282842 | |
treatmentBenzonase | -0.2090856 | 0.1261407 | 61.68022 | -1.6575576 | 0.1024850 | |
treatmentHost zero | -0.1071198 | 0.1289953 | 62.26501 | -0.8304161 | 0.4094764 | |
treatmentMolysis | -0.3789439 | 0.1309245 | 62.62965 | -2.8943694 | 0.0052227 |
|
treatmentQIAamp | -0.2002048 | 0.1312121 | 62.68208 | -1.5258106 | 0.1320873 | |
log10(Final_reads) | 0.1455197 | 0.0528497 | 71.25889 | 2.7534627 | 0.0074764 |
|
sample_typeNasal swab:treatmentlyPMA | 0.1074786 | 0.1660074 | 62.17039 | 0.6474324 | 0.5197358 | |
sample_typeSputum:treatmentlyPMA | -0.1999551 | 0.1646342 | 58.63042 | -1.2145416 | 0.2294101 | |
sample_typeNasal swab:treatmentBenzonase | 0.0783117 | 0.1591430 | 62.28479 | 0.4920838 | 0.6243901 | |
sample_typeSputum:treatmentBenzonase | -0.2242934 | 0.1607441 | 58.96684 | -1.3953444 | 0.1681450 | |
sample_typeNasal swab:treatmentHost zero | -0.0843810 | 0.1548174 | 61.70491 | -0.5450359 | 0.5876935 | |
sample_typeSputum:treatmentHost zero | -0.4349677 | 0.1645678 | 59.37801 | -2.6430911 | 0.0104899 |
|
sample_typeNasal swab:treatmentMolysis | 0.1755526 | 0.1611877 | 62.54326 | 1.0891189 | 0.2802803 | |
sample_typeSputum:treatmentMolysis | -0.2575968 | 0.1676125 | 59.80380 | -1.5368593 | 0.1296021 | |
sample_typeNasal swab:treatmentQIAamp | 0.1096753 | 0.1546846 | 61.75206 | 0.7090255 | 0.4809770 | |
sample_typeSputum:treatmentQIAamp | -0.2873906 | 0.1615851 | 58.98802 | -1.7785712 | 0.0804633 |
- Permanova (Taxa dist ~ log10(final reads) + sample_type + treatment + sample_type * treatment + subject_id) –> both stratified and nonstratified
phyloseq_rel_nz <- subset_samples(phyloseq$phyloseq_rel, S.obs != 0 & sample_type %in% c("BAL", "Nasal swab", "Sputum"))
bray_perm_uni <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + treatment + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + lypma + benzonase + host_zero + molysis + qiaamp + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_strata <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + lypma + benzonase + host_zero + molysis + qiaamp,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F),
strata = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F) %>% .$subject_id, permutations = 10000)
bray_perm_inter <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type * treatment + log10(Final_reads) + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_ns <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_bal <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "BAL"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "BAL") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_spt <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "Sputum"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "Sputum") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
cat("\nUnivariate analysis\n")
##
## Univariate analysis
bray_perm_uni %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "treatment" ~ 'Treatment',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 13.429 | 0.371 | 56.251 | 0.000 |
|
log10(Final reads) | 1 | 1.111 | 0.031 | 9.310 | 0.000 |
|
Treatment | 5 | 1.213 | 0.033 | 2.033 | 0.001 |
|
Subject | 10 | 11.639 | 0.321 | 9.751 | 0.000 |
|
Residual | 74 | 8.833 | 0.244 | NA | NA | |
Total | 92 | 36.225 | 1.000 | NA | NA |
cat("\nDetailed treatment\n")
##
## Detailed treatment
bray_perm %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 13.429 | 0.371 | 56.251 | 0.000 |
|
log10(Final reads) | 1 | 1.111 | 0.031 | 9.310 | 0.000 |
|
lyPMA | 1 | 0.140 | 0.004 | 1.172 | 0.287 | |
Benzonase | 1 | 0.092 | 0.003 | 0.774 | 0.607 | |
Host zero | 1 | 0.157 | 0.004 | 1.312 | 0.218 | |
Molysis | 1 | 0.200 | 0.006 | 1.676 | 0.103 | |
QIAamp | 1 | 0.624 | 0.017 | 5.229 | 0.000 |
|
Subject | 10 | 11.639 | 0.321 | 9.751 | 0.000 |
|
Residual | 74 | 8.833 | 0.244 | NA | NA | |
Total | 92 | 36.225 | 1.000 | NA | NA |
cat("\n Strata -detailed treatment\n")
##
## Strata -detailed treatment
bray_perm_strata %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 13.429 | 0.371 | 27.550 | 0.000 |
|
log10(Final reads) | 1 | 1.111 | 0.031 | 4.560 | 0.000 |
|
lyPMA | 1 | 0.140 | 0.004 | 0.574 | 0.530 | |
Benzonase | 1 | 0.092 | 0.003 | 0.379 | 0.665 | |
Host zero | 1 | 0.157 | 0.004 | 0.643 | 0.406 | |
Molysis | 1 | 0.200 | 0.006 | 0.821 | 0.167 | |
QIAamp | 1 | 0.624 | 0.017 | 2.561 | 0.003 |
|
Residual | 84 | 20.472 | 0.565 | NA | NA | |
Total | 92 | 36.225 | 1.000 | NA | NA |
cat("\n Interaction term \n")
##
## Interaction term
bray_perm_inter %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "treatment" ~ 'Treatment',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "sample_type:treatment" ~ 'Sample type X treatment',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 13.429 | 0.371 | 65.605 | 0 |
|
Treatment | 5 | 1.184 | 0.033 | 2.314 | 0 |
|
log10(Final reads) | 1 | 1.140 | 0.031 | 11.142 | 0 |
|
Subject | 10 | 11.639 | 0.321 | 11.372 | 0 |
|
Sample type X treatment | 10 | 2.283 | 0.063 | 2.231 | 0 |
|
Residual | 64 | 6.550 | 0.181 | NA | NA | |
Total | 92 | 36.225 | 1.000 | NA | NA |
cat("\n Stratified - nasal swab \n")
##
## Stratified - nasal swab
bray_perm_ns %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.730 | 0.120 | 5.122 | 0.004 |
|
Benzonase | 1 | 0.191 | 0.031 | 1.342 | 0.262 | |
Host zero | 1 | 0.171 | 0.028 | 1.201 | 0.306 | |
Molysis | 1 | 0.137 | 0.022 | 0.961 | 0.405 | |
QIAamp | 1 | 0.254 | 0.042 | 1.780 | 0.148 | |
log10(Final reads) | 1 | 0.428 | 0.070 | 3.007 | 0.036 |
|
Subject id | 2 | 0.488 | 0.080 | 1.714 | 0.119 | |
Residual | 26 | 3.704 | 0.607 | NA | NA | |
Total | 34 | 6.103 | 1.000 | NA | NA |
cat("\n Stratified - BAL \n")
##
## Stratified - BAL
bray_perm_bal %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.100 | 0.010 | 1.144 | 0.308 | |
Benzonase | 1 | 0.025 | 0.003 | 0.288 | 0.934 | |
Host zero | 1 | 0.086 | 0.009 | 0.990 | 0.418 | |
Molysis | 1 | 0.085 | 0.009 | 0.969 | 0.428 | |
QIAamp | 1 | 0.229 | 0.024 | 2.625 | 0.035 |
|
log10(Final reads) | 1 | 1.482 | 0.152 | 16.966 | 0.000 |
|
Subject id | 4 | 6.241 | 0.641 | 17.864 | 0.000 |
|
Residual | 17 | 1.485 | 0.153 | NA | NA | |
Total | 27 | 9.734 | 1.000 | NA | NA |
cat("\n Stratified - sputum \n")
##
## Stratified - sputum
bray_perm_spt %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.139 | 0.020 | 2.565 | 0.046 |
|
Benzonase | 1 | 0.037 | 0.005 | 0.688 | 0.635 | |
Host zero | 1 | 0.171 | 0.025 | 3.150 | 0.018 |
|
Molysis | 1 | 0.436 | 0.063 | 8.046 | 0.000 |
|
QIAamp | 1 | 0.953 | 0.137 | 17.588 | 0.000 |
|
log10(Final reads) | 1 | 0.172 | 0.025 | 3.174 | 0.017 |
|
Subject id | 4 | 4.022 | 0.578 | 18.555 | 0.000 |
|
Residual | 19 | 1.030 | 0.148 | NA | NA | |
Total | 29 | 6.960 | 1.000 | NA | NA |
- DA analysis for taxa, by sample type and treatment –> both stratified and nonstratified –> look at level groups as well - phylum, etc.
#DA analysis - MaAslin
sample_data(phyloseq_rel_nz)$log10.Final_reads <- log10(sample_data(phyloseq_rel_nz)$Final_reads)
sample_data(phyloseq_rel_nz)$sampletype_treatment <- paste(sample_data(phyloseq_rel_nz)$sample_type, sample_data(phyloseq_rel_nz)$treatment, sep = ":")
#Running MaAslin for all sample without decontam
#for taxa differentially abundant by host depletion method, look to see which ones overlap with potential contaminant taxa
# Maaslin - # # y ~ log(final reads) + sample_type + treatment -----------
phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F)
#all samples
maaslin_all = Maaslin2(input_data = otu_table(phyloseq_rel_nz) %>% t %>% data.frame(),
input_metadata = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("sample_type", "log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
reference = c("sample_type,BAL"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:46:48 INFO::Writing function arguments to log file
## 2023-03-21 22:46:48 INFO::Verifying options selected are valid
## 2023-03-21 22:46:48 INFO::Determining format of input files
## 2023-03-21 22:46:48 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:46:48 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:46:48 INFO::Formula for fixed effects: expr ~ sample_type + log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:46:48 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:46:48 INFO::Total samples in data: 93
## 2023-03-21 22:46:48 INFO::Min samples required with min abundance for a feature not to be filtered: 9.300000
## 2023-03-21 22:46:48 INFO::Total filtered features: 183
## 2023-03-21 22:46:48 INFO::Filtered feature names from abundance and prevalence filtering: Actinomyces_sp_oral_taxon_414, Actinomyces_sp_oral_taxon_448, Actinomyces_sp_oral_taxon_897, Parascardovia_denticolens, Corynebacterium_afermentans, Corynebacterium_aurimucosum, Corynebacterium_kroppenstedtii, Corynebacterium_matruchotii, Corynebacterium_tuberculostearicum, Mycobacterium_chimaera, Mycobacterium_intracellulare, Micrococcus_luteus, Tropheryma_whipplei, Cutibacterium_avidum, Atopobium_deltae, Adlercreutzia_equolifaciens, Rubrobacter_radiotolerans, Patulibacter_medicamentivorans, Prevotella_oris, Capnocytophaga_leadbetteri, Brochothrix_campestris, Staphylococcus_capitis, Enterococcus_faecalis, Lactobacillus_rhamnosus, Streptococcus_sinensis, Eubacterium_nodatum, Lachnospiraceae_bacterium_oral_taxon_096, Oribacterium_parvum, Shuttleworthia_satelles, Selenomonas_noxia, Selenomonas_sputigena, Anaerococcus_nagyae, Anaerococcus_octavius, Peptoniphilus_lacrimalis, Leptotrichia_wadei, Achromobacter_denitrificans, Achromobacter_ruhlandii, Achromobacter_xylosoxidans, Lautropia_mirabilis, Leptothrix_ochracea, Cardiobacterium_hominis, Escherichia_coli, Klebsiella_michiganensis, Klebsiella_oxytoca, Serratia_liquefaciens, Fretibacterium_fastidiosum, Aspergillus_eucalypticola, Aspergillus_kawachii, Aspergillus_lacticoffeatus, Aspergillus_niger, Aspergillus_phoenicis, Aspergillus_sydowii, Aspergillus_thermomutatus, Aspergillus_tubingensis, Aspergillus_turcosus, Aspergillus_vadensis, Aspergillus_welwitschiae, Candida_tropicalis, Malassezia_globosa, Actinomyces_cardiffensis, Actinomyces_denticolens, Actinomyces_radingae, Actinomyces_turicensis, Varibaculum_cambriense, Bifidobacterium_breve, Gardnerella_vaginalis, Scardovia_inopinata, Corynebacterium_pyruviciproducens, Gordonia_polyisoprenivorans, Mycolicibacterium_fortuitum, Mycolicibacterium_rufum, Nakamurella_silvestris, Atopobium_minutum, Gordonibacter_pamelaeae, Bacteroidetes_oral_taxon_274, Porphyromonas_asaccharolytica, Porphyromonas_canoris, Porphyromonas_catoniae, Porphyromonas_uenonis, Alloprevotella_rava, Alloprevotella_tannerae, Prevotella_buccae, Prevotella_denticola, Prevotella_intermedia, Prevotella_nigrescens, Prevotella_oulorum, Prevotella_pleuritidis, Prevotella_scopos, Prevotella_sp_F0091, Prevotella_sp_oral_taxon_306, Prevotella_veroralis, Tannerella_forsythia, Tannerella_sp_oral_taxon_808, Capnocytophaga_granulosa, Capnocytophaga_sputigena, Litorilinea_aerophila, Bacillus_cereus_group, Bacillus_ginsengihumi, Listeria_floridensis, Agitococcus_lubricus, Lactobacillus_fermentum, Lactobacillus_gasseri, Lactobacillus_oris, Lactobacillus_paragasseri, Lactobacillus_reuteri, Lactobacillus_salivarius, Sharpea_azabuensis, Streptococcus_massiliensis, Streptococcus_sp_SK643, Streptococcus_sp_oral_taxon_056, Mageeibacillus_indolicus, Oribacterium_asaccharolyticum, Peptostreptococcus_sp_MV1, Leptotrichia_sp_oral_taxon_212, Desulfobulbus_oralis, Moraxella_catarrhalis, Stenotrophomonas_pavanii, Treponema_socranskii, Bacillus_intestinalis, Listeria_innocua, Listeria_monocytogenes, Staphylococcus_haemolyticus, Enterococcus_avium, Streptococcus_downei, Streptococcus_pyogenes, Streptococcus_salivarius_CAG_79, Streptococcus_sobrinus, Streptococcus_sp_DD11, Streptococcus_sp_HMSC070B10, Streptococcus_sp_NLAE_zl_C503, Streptococcus_thermophilus, Streptococcus_viridans, Eubacterium_saphenum, Eubacterium_rectale, Filifactor_alocis, Eggerthia_catenaformis, Selenomonas_flueggei, Selenomonas_sp_oral_taxon_892, Selenomonas_sp_oral_taxon_920, Dialister_invisus, Dialister_micraerophilus, Negativicoccus_succinicivorans, Veillonella_tobetsuensis, Fusobacterium_periodonticum, Fusobacterium_sp_oral_taxon_370, Leptotrichia_buccalis, Leptotrichia_hofstadii, Leptotrichia_sp_oral_taxon_215, Leptotrichia_sp_oral_taxon_225, Leptotrichia_sp_oral_taxon_498, Leptotrichia_sp_oral_taxon_879, Fimbriiglobus_ruber, Rickettsia_felis, Burkholderia_multivorans, Eikenella_corrodens, Neisseria_elongata, Campylobacter_showae, Haemophilus_parainfluenzae, Candida_orthopsilosis, Rickettsia_typhi, Neisseria_macacae, Neisseria_mucosa, Neisseria_sicca, Nannocystis_exedens, Campylobacter_concisus, Campylobacter_gracilis, Campylobacter_mucosalis, Franconibacter_helveticus, Klebsiella_pneumoniae, Salmonella_enterica, Superficieibacter_electus, Serratia_marcescens, Haemophilus_sp_HMSC71H05, Pseudomonas_fluorescens_group, Pseudomonas_geniculata, Aspergillus_fumigatus, Saccharomyces_cerevisiae, Saccharomyces_cerevisiae_x_Saccharomyces_kudriavzevii, Saccharomyces_kudriavzevii, Cryptococcus_gattii_VGI, Cryptococcus_gattii_VGII, Cryptococcus_gattii_VGIII, Cryptococcus_neoformans
## 2023-03-21 22:46:48 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:46:48 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:46:48 INFO::Running selected normalization method: TSS
## 2023-03-21 22:46:48 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:46:48 INFO::Running selected transform method: LOG
## 2023-03-21 22:46:48 INFO::Running selected analysis method: LM
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 1, Actinobaculum_sp_oral_taxon_183
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 2, Actinomyces_georgiae
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 3, Actinomyces_graevenitzii
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 4, Actinomyces_hongkongensis
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 5, Actinomyces_johnsonii
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 6, Actinomyces_massiliensis
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 7, Actinomyces_meyeri
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 8, Actinomyces_naeslundii
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 9, Actinomyces_odontolyticus
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 10, Actinomyces_oris
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 11, Actinomyces_sp_HMSC035G02
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 12, Actinomyces_sp_HPA0247
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 13, Actinomyces_sp_ICM47
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 14, Actinomyces_sp_S6_Spd3
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 15, Actinomyces_sp_oral_taxon_170
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 16, Actinomyces_sp_oral_taxon_180
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 17, Actinomyces_sp_oral_taxon_181
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 18, Actinomyces_viscosus
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 19, Aeriscardovia_aeriphila
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 20, Alloscardovia_omnicolens
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 21, Bifidobacterium_dentium
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 22, Bifidobacterium_longum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 23, Scardovia_wiggsiae
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 24, Corynebacterium_accolens
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 25, Corynebacterium_atypicum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 26, Corynebacterium_durum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 27, Corynebacterium_pseudodiphtheriticum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 28, Corynebacterium_pseudogenitalium
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 29, Rothia_aeria
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 30, Rothia_dentocariosa
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 31, Rothia_mucilaginosa
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 32, Cutibacterium_acnes
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 33, Cutibacterium_granulosum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 34, Propionibacterium_humerusii
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 35, Propionibacterium_namnetense
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 36, Propionibacterium_acidifaciens
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 37, Pseudopropionibacterium_propionicum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 38, Atopobium_parvulum
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 39, Atopobium_rimae
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 40, Olsenella_profusa
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 41, Olsenella_scatoligenes
## 2023-03-21 22:46:48 INFO::Fitting model to feature number 42, Olsenella_uli
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 43, Collinsella_aerofaciens
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 44, Collinsella_intestinalis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 45, Collinsella_stercoris
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 46, Enorma_massiliensis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 47, X.Collinsella._massiliensis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 48, Asaccharobacter_celatus
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 49, Denitrobacterium_detoxificans
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 50, Enterorhabdus_caecimuris
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 51, Slackia_exigua
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 52, Slackia_isoflavoniconvertens
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 53, Thermoleophilum_album
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 54, Porphyromonas_endodontalis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 55, Porphyromonas_somerae
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 56, Prevotella_histicola
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 57, Prevotella_melaninogenica
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 58, Kouleothrix_aurantiaca
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 59, Hydrogenibacillus_schlegelii
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 60, Gemella_asaccharolytica
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 61, Gemella_bergeri
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 62, Gemella_haemolysans
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 63, Gemella_morbillorum
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 64, Gemella_sanguinis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 65, Staphylococcus_argenteus
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 66, Staphylococcus_aureus
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 67, Staphylococcus_epidermidis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 68, Staphylococcus_schweitzeri
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 69, Abiotrophia_defectiva
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 70, Abiotrophia_sp_HMSC24B09
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 71, Dolosigranulum_pigrum
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 72, Granulicatella_adiacens
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 73, Granulicatella_elegans
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 74, Streptococcus_anginosus_group
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 75, Streptococcus_australis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 76, Streptococcus_cristatus
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 77, Streptococcus_gordonii
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 78, Streptococcus_infantis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 79, Streptococcus_milleri
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 80, Streptococcus_mitis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 81, Streptococcus_oralis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 82, Streptococcus_parasanguinis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 83, Streptococcus_peroris
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 84, Streptococcus_pneumoniae
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 85, Streptococcus_pseudopneumoniae
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 86, Streptococcus_salivarius
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 87, Streptococcus_sanguinis
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 88, Streptococcus_sp_A12
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 89, Streptococcus_sp_F0442
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 90, Streptococcus_sp_HMSC034E03
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 91, Streptococcus_sp_HMSC067H01
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 92, Streptococcus_sp_HMSC071D03
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 93, Streptococcus_sp_HPH0090
## 2023-03-21 22:46:49 INFO::Fitting model to feature number 94, Streptococcus_sp_M334
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 95, Streptococcus_vestibularis
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 96, Eubacterium_brachy
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 97, Eubacterium_infirmum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 98, Eubacterium_sulci
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 99, Mogibacterium_diversum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 100, Mogibacterium_pumilum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 101, Mogibacterium_timidum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 102, Lachnoanaerobaculum_saburreum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 103, Oribacterium_sinus
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 104, Oribacterium_sp_oral_taxon_078
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 105, Stomatobaculum_longum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 106, Peptostreptococcus_stomatis
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 107, Bulleidia_extructa
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 108, Solobacterium_moorei
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 109, Limnochorda_pilosa
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 110, Veillonella_atypica
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 111, Veillonella_dispar
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 112, Veillonella_infantium
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 113, Veillonella_parvula
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 114, Veillonella_sp_T11011_6
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 115, Finegoldia_magna
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 116, Parvimonas_micra
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 117, Parvimonas_sp_oral_taxon_110
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 118, Parvimonas_sp_oral_taxon_393
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 119, Fusobacterium_nucleatum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 120, Gemmata_obscuriglobus
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 121, Paludisphaera_borealis
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 122, Cupriavidus_sp
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 123, Sutterella_parvirubra
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 124, Anaerobiospirillum_thomasii
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 125, Cardiobacterium_valvarum
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 126, Alkalilimnicola_ehrlichii
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 127, Thiohalorhabdus_denitrificans
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 128, Pseudomonas_aeruginosa_group
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 129, Acholeplasma_oculi
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 130, Candida_albicans
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 131, Candida_dubliniensis
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 132, Candida_parapsilosis
## 2023-03-21 22:46:50 INFO::Fitting model to feature number 133, Malassezia_restricta
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 134, Prevotella_jejuni
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 135, Prevotella_pallens
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 136, Prevotella_salivae
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 137, Tannerella_sp_oral_taxon_HOT_286
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 138, Capnocytophaga_gingivalis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 139, Streptococcus_mutans
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 140, Megasphaera_micronuciformis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 141, Neisseria_flavescens
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 142, Neisseria_subflava
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 143, Stenotrophomonas_maltophilia
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 144, Stenotrophomonas_rhizophila
## 2023-03-21 22:46:51 INFO::Counting total values for each feature
## 2023-03-21 22:46:51 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:51 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:51 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:51 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:51 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:51 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:51 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:46:51 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
#Checking number of bugs for the main text of the manuscript
cat("Number of differentially abundant bugs by each metadata")
## Number of differentially abundant bugs by each metadata
maaslin_all$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 8 6 50 14
## molysis qiaamp sample_type
## 9 2 66
cat("Decreased bugs by each metadata")
## Decreased bugs by each metadata
maaslin_all$results %>% subset(., .$qval < 0.1 & .$coef < 0) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 1 1 1 2
## molysis sample_type
## 1 1
cat("Incrased")
## Incrased
maaslin_all$results %>% subset(., .$qval < 0.1 & .$coef > 0) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 7 5 49 12
## molysis qiaamp sample_type
## 8 2 65
#NS
# # y ~ log(final reads) + sample_type + treatment
fit_data_ns = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:46:51 INFO::Writing function arguments to log file
## 2023-03-21 22:46:51 INFO::Verifying options selected are valid
## 2023-03-21 22:46:51 INFO::Determining format of input files
## 2023-03-21 22:46:51 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:46:51 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:46:51 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:46:51 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:46:51 INFO::Total samples in data: 35
## 2023-03-21 22:46:51 INFO::Min samples required with min abundance for a feature not to be filtered: 3.500000
## 2023-03-21 22:46:51 INFO::Total filtered features: 295
## 2023-03-21 22:46:51 INFO::Filtered feature names from abundance and prevalence filtering: Actinobaculum_sp_oral_taxon_183, Actinomyces_georgiae, Actinomyces_graevenitzii, Actinomyces_hongkongensis, Actinomyces_johnsonii, Actinomyces_massiliensis, Actinomyces_meyeri, Actinomyces_naeslundii, Actinomyces_odontolyticus, Actinomyces_oris, Actinomyces_sp_HMSC035G02, Actinomyces_sp_HPA0247, Actinomyces_sp_ICM47, Actinomyces_sp_S6_Spd3, Actinomyces_sp_oral_taxon_170, Actinomyces_sp_oral_taxon_180, Actinomyces_sp_oral_taxon_181, Actinomyces_sp_oral_taxon_414, Actinomyces_sp_oral_taxon_448, Actinomyces_sp_oral_taxon_897, Actinomyces_viscosus, Alloscardovia_omnicolens, Bifidobacterium_dentium, Bifidobacterium_longum, Parascardovia_denticolens, Scardovia_wiggsiae, Corynebacterium_afermentans, Corynebacterium_durum, Corynebacterium_kroppenstedtii, Corynebacterium_matruchotii, Corynebacterium_tuberculostearicum, Mycobacterium_chimaera, Mycobacterium_intracellulare, Micrococcus_luteus, Rothia_aeria, Rothia_dentocariosa, Tropheryma_whipplei, Propionibacterium_acidifaciens, Pseudopropionibacterium_propionicum, Atopobium_deltae, Atopobium_parvulum, Atopobium_rimae, Olsenella_profusa, Olsenella_scatoligenes, Olsenella_uli, Collinsella_stercoris, Enorma_massiliensis, Adlercreutzia_equolifaciens, Asaccharobacter_celatus, Denitrobacterium_detoxificans, Enterorhabdus_caecimuris, Slackia_exigua, Rubrobacter_radiotolerans, Patulibacter_medicamentivorans, Porphyromonas_endodontalis, Porphyromonas_somerae, Prevotella_histicola, Prevotella_melaninogenica, Prevotella_oris, Capnocytophaga_leadbetteri, Kouleothrix_aurantiaca, Hydrogenibacillus_schlegelii, Gemella_bergeri, Gemella_morbillorum, Brochothrix_campestris, Staphylococcus_schweitzeri, Abiotrophia_defectiva, Abiotrophia_sp_HMSC24B09, Granulicatella_adiacens, Granulicatella_elegans, Enterococcus_faecalis, Lactobacillus_rhamnosus, Streptococcus_anginosus_group, Streptococcus_australis, Streptococcus_cristatus, Streptococcus_gordonii, Streptococcus_infantis, Streptococcus_milleri, Streptococcus_mitis, Streptococcus_parasanguinis, Streptococcus_peroris, Streptococcus_pneumoniae, Streptococcus_pseudopneumoniae, Streptococcus_salivarius, Streptococcus_sanguinis, Streptococcus_sinensis, Streptococcus_sp_A12, Streptococcus_sp_F0442, Streptococcus_sp_HMSC034E03, Streptococcus_sp_HMSC067H01, Streptococcus_sp_HMSC071D03, Streptococcus_sp_HPH0090, Streptococcus_sp_M334, Streptococcus_vestibularis, Eubacterium_brachy, Eubacterium_infirmum, Eubacterium_nodatum, Eubacterium_sulci, Mogibacterium_diversum, Mogibacterium_pumilum, Mogibacterium_timidum, Lachnoanaerobaculum_saburreum, Lachnospiraceae_bacterium_oral_taxon_096, Oribacterium_parvum, Oribacterium_sinus, Oribacterium_sp_oral_taxon_078, Shuttleworthia_satelles, Stomatobaculum_longum, Peptostreptococcus_stomatis, Bulleidia_extructa, Solobacterium_moorei, Selenomonas_noxia, Selenomonas_sputigena, Veillonella_atypica, Veillonella_dispar, Veillonella_infantium, Veillonella_parvula, Veillonella_sp_T11011_6, Anaerococcus_octavius, Parvimonas_micra, Parvimonas_sp_oral_taxon_110, Parvimonas_sp_oral_taxon_393, Peptoniphilus_lacrimalis, Fusobacterium_nucleatum, Leptotrichia_wadei, Gemmata_obscuriglobus, Paludisphaera_borealis, Achromobacter_denitrificans, Achromobacter_ruhlandii, Achromobacter_xylosoxidans, Lautropia_mirabilis, Leptothrix_ochracea, Anaerobiospirillum_thomasii, Cardiobacterium_hominis, Cardiobacterium_valvarum, Alkalilimnicola_ehrlichii, Escherichia_coli, Klebsiella_michiganensis, Klebsiella_oxytoca, Serratia_liquefaciens, Thiohalorhabdus_denitrificans, Pseudomonas_aeruginosa_group, Fretibacterium_fastidiosum, Acholeplasma_oculi, Aspergillus_eucalypticola, Aspergillus_kawachii, Aspergillus_lacticoffeatus, Aspergillus_niger, Aspergillus_phoenicis, Aspergillus_sydowii, Aspergillus_thermomutatus, Aspergillus_tubingensis, Aspergillus_turcosus, Aspergillus_vadensis, Aspergillus_welwitschiae, Candida_albicans, Candida_dubliniensis, Candida_parapsilosis, Candida_tropicalis, Malassezia_globosa, Actinomyces_cardiffensis, Actinomyces_denticolens, Actinomyces_radingae, Actinomyces_turicensis, Varibaculum_cambriense, Bifidobacterium_breve, Gardnerella_vaginalis, Scardovia_inopinata, Corynebacterium_pyruviciproducens, Gordonia_polyisoprenivorans, Mycolicibacterium_fortuitum, Mycolicibacterium_rufum, Nakamurella_silvestris, Atopobium_minutum, Gordonibacter_pamelaeae, Bacteroidetes_oral_taxon_274, Porphyromonas_asaccharolytica, Porphyromonas_canoris, Porphyromonas_catoniae, Porphyromonas_uenonis, Alloprevotella_rava, Alloprevotella_tannerae, Prevotella_buccae, Prevotella_denticola, Prevotella_intermedia, Prevotella_jejuni, Prevotella_nigrescens, Prevotella_oulorum, Prevotella_pallens, Prevotella_pleuritidis, Prevotella_salivae, Prevotella_scopos, Prevotella_sp_F0091, Prevotella_sp_oral_taxon_306, Prevotella_veroralis, Tannerella_forsythia, Tannerella_sp_oral_taxon_808, Tannerella_sp_oral_taxon_HOT_286, Capnocytophaga_gingivalis, Capnocytophaga_granulosa, Capnocytophaga_sputigena, Litorilinea_aerophila, Bacillus_cereus_group, Bacillus_ginsengihumi, Listeria_floridensis, Agitococcus_lubricus, Lactobacillus_fermentum, Lactobacillus_gasseri, Lactobacillus_oris, Lactobacillus_paragasseri, Lactobacillus_reuteri, Lactobacillus_salivarius, Sharpea_azabuensis, Streptococcus_massiliensis, Streptococcus_mutans, Streptococcus_sp_SK643, Streptococcus_sp_oral_taxon_056, Mageeibacillus_indolicus, Oribacterium_asaccharolyticum, Peptostreptococcus_sp_MV1, Megasphaera_micronuciformis, Leptotrichia_sp_oral_taxon_212, Neisseria_flavescens, Neisseria_subflava, Desulfobulbus_oralis, Moraxella_catarrhalis, Stenotrophomonas_maltophilia, Stenotrophomonas_pavanii, Stenotrophomonas_rhizophila, Treponema_socranskii, Bacillus_intestinalis, Listeria_innocua, Listeria_monocytogenes, Staphylococcus_haemolyticus, Enterococcus_avium, Streptococcus_downei, Streptococcus_pyogenes, Streptococcus_salivarius_CAG_79, Streptococcus_sobrinus, Streptococcus_sp_DD11, Streptococcus_sp_HMSC070B10, Streptococcus_sp_NLAE_zl_C503, Streptococcus_thermophilus, Streptococcus_viridans, Eubacterium_saphenum, Eubacterium_rectale, Filifactor_alocis, Eggerthia_catenaformis, Selenomonas_flueggei, Selenomonas_sp_oral_taxon_892, Selenomonas_sp_oral_taxon_920, Dialister_invisus, Dialister_micraerophilus, Negativicoccus_succinicivorans, Veillonella_tobetsuensis, Fusobacterium_periodonticum, Fusobacterium_sp_oral_taxon_370, Leptotrichia_buccalis, Leptotrichia_hofstadii, Leptotrichia_sp_oral_taxon_215, Leptotrichia_sp_oral_taxon_225, Leptotrichia_sp_oral_taxon_498, Leptotrichia_sp_oral_taxon_879, Fimbriiglobus_ruber, Rickettsia_felis, Burkholderia_multivorans, Eikenella_corrodens, Neisseria_elongata, Campylobacter_showae, Haemophilus_parainfluenzae, Candida_orthopsilosis, Rickettsia_typhi, Neisseria_macacae, Neisseria_mucosa, Neisseria_sicca, Nannocystis_exedens, Campylobacter_concisus, Campylobacter_gracilis, Campylobacter_mucosalis, Franconibacter_helveticus, Klebsiella_pneumoniae, Salmonella_enterica, Superficieibacter_electus, Serratia_marcescens, Haemophilus_sp_HMSC71H05, Pseudomonas_fluorescens_group, Pseudomonas_geniculata, Aspergillus_fumigatus, Saccharomyces_cerevisiae, Saccharomyces_cerevisiae_x_Saccharomyces_kudriavzevii, Saccharomyces_kudriavzevii, Cryptococcus_gattii_VGI, Cryptococcus_gattii_VGII, Cryptococcus_gattii_VGIII, Cryptococcus_neoformans
## 2023-03-21 22:46:51 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:46:51 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:46:51 INFO::Running selected normalization method: TSS
## 2023-03-21 22:46:51 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:46:51 INFO::Running selected transform method: LOG
## 2023-03-21 22:46:51 INFO::Running selected analysis method: LM
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 1, Aeriscardovia_aeriphila
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 2, Corynebacterium_accolens
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 3, Corynebacterium_atypicum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 4, Corynebacterium_aurimucosum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 5, Corynebacterium_pseudodiphtheriticum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 6, Corynebacterium_pseudogenitalium
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 7, Rothia_mucilaginosa
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 8, Cutibacterium_acnes
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 9, Cutibacterium_avidum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 10, Cutibacterium_granulosum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 11, Propionibacterium_humerusii
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 12, Propionibacterium_namnetense
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 13, Collinsella_aerofaciens
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 14, Collinsella_intestinalis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 15, X.Collinsella._massiliensis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 16, Slackia_isoflavoniconvertens
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 17, Thermoleophilum_album
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 18, Gemella_asaccharolytica
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 19, Gemella_haemolysans
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 20, Gemella_sanguinis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 21, Staphylococcus_argenteus
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 22, Staphylococcus_aureus
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 23, Staphylococcus_capitis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 24, Staphylococcus_epidermidis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 25, Dolosigranulum_pigrum
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 26, Streptococcus_oralis
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 27, Limnochorda_pilosa
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 28, Anaerococcus_nagyae
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 29, Finegoldia_magna
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 30, Cupriavidus_sp
## 2023-03-21 22:46:51 INFO::Fitting model to feature number 31, Sutterella_parvirubra
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 32, Malassezia_restricta
## 2023-03-21 22:46:52 INFO::Counting total values for each feature
## 2023-03-21 22:46:52 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:52 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:52 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:52 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:52 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:52 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:52 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:46:52 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
#Checking number of bugs for the main text of the manuscript
cat("Number of differentially abundant bugs by each metadata in NS")
## Number of differentially abundant bugs by each metadata in NS
fit_data_ns$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 2 6 9 4
## molysis qiaamp
## 4 1
#bal
# # y ~ log(final reads) + sample_type + treatment
fit_data_bal = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "BAL")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "BAL")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:46:52 INFO::Writing function arguments to log file
## 2023-03-21 22:46:52 INFO::Verifying options selected are valid
## 2023-03-21 22:46:52 INFO::Determining format of input files
## 2023-03-21 22:46:52 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:46:52 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:46:52 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:46:52 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:46:52 INFO::Total samples in data: 28
## 2023-03-21 22:46:52 INFO::Min samples required with min abundance for a feature not to be filtered: 2.800000
## 2023-03-21 22:46:52 INFO::Total filtered features: 261
## 2023-03-21 22:46:52 INFO::Filtered feature names from abundance and prevalence filtering: Actinobaculum_sp_oral_taxon_183, Actinomyces_georgiae, Actinomyces_graevenitzii, Actinomyces_hongkongensis, Actinomyces_johnsonii, Actinomyces_massiliensis, Actinomyces_meyeri, Actinomyces_oris, Actinomyces_sp_HMSC035G02, Actinomyces_sp_ICM47, Actinomyces_sp_oral_taxon_170, Actinomyces_sp_oral_taxon_180, Actinomyces_sp_oral_taxon_414, Actinomyces_sp_oral_taxon_448, Actinomyces_sp_oral_taxon_897, Actinomyces_viscosus, Aeriscardovia_aeriphila, Alloscardovia_omnicolens, Bifidobacterium_dentium, Bifidobacterium_longum, Parascardovia_denticolens, Corynebacterium_accolens, Corynebacterium_afermentans, Corynebacterium_atypicum, Corynebacterium_aurimucosum, Corynebacterium_durum, Corynebacterium_kroppenstedtii, Corynebacterium_matruchotii, Corynebacterium_pseudodiphtheriticum, Corynebacterium_pseudogenitalium, Mycobacterium_chimaera, Mycobacterium_intracellulare, Micrococcus_luteus, Rothia_aeria, Rothia_dentocariosa, Tropheryma_whipplei, Cutibacterium_avidum, Cutibacterium_granulosum, Propionibacterium_humerusii, Propionibacterium_namnetense, Propionibacterium_acidifaciens, Pseudopropionibacterium_propionicum, Olsenella_profusa, Olsenella_uli, Collinsella_aerofaciens, Collinsella_intestinalis, Collinsella_stercoris, Enorma_massiliensis, X.Collinsella._massiliensis, Adlercreutzia_equolifaciens, Asaccharobacter_celatus, Denitrobacterium_detoxificans, Enterorhabdus_caecimuris, Slackia_exigua, Slackia_isoflavoniconvertens, Rubrobacter_radiotolerans, Patulibacter_medicamentivorans, Thermoleophilum_album, Porphyromonas_endodontalis, Porphyromonas_somerae, Prevotella_histicola, Capnocytophaga_leadbetteri, Kouleothrix_aurantiaca, Hydrogenibacillus_schlegelii, Brochothrix_campestris, Staphylococcus_capitis, Abiotrophia_defectiva, Abiotrophia_sp_HMSC24B09, Dolosigranulum_pigrum, Granulicatella_adiacens, Granulicatella_elegans, Lactobacillus_rhamnosus, Streptococcus_australis, Streptococcus_cristatus, Streptococcus_gordonii, Streptococcus_infantis, Streptococcus_milleri, Streptococcus_peroris, Streptococcus_pseudopneumoniae, Streptococcus_salivarius, Streptococcus_sanguinis, Streptococcus_sinensis, Streptococcus_sp_A12, Streptococcus_sp_F0442, Streptococcus_sp_HMSC034E03, Streptococcus_sp_HMSC067H01, Streptococcus_sp_HMSC071D03, Streptococcus_sp_HPH0090, Streptococcus_sp_M334, Streptococcus_vestibularis, Eubacterium_brachy, Eubacterium_nodatum, Eubacterium_sulci, Mogibacterium_diversum, Mogibacterium_pumilum, Mogibacterium_timidum, Lachnoanaerobaculum_saburreum, Lachnospiraceae_bacterium_oral_taxon_096, Oribacterium_parvum, Oribacterium_sinus, Oribacterium_sp_oral_taxon_078, Shuttleworthia_satelles, Stomatobaculum_longum, Solobacterium_moorei, Limnochorda_pilosa, Selenomonas_noxia, Selenomonas_sputigena, Veillonella_atypica, Veillonella_dispar, Veillonella_infantium, Veillonella_sp_T11011_6, Anaerococcus_nagyae, Anaerococcus_octavius, Parvimonas_sp_oral_taxon_110, Parvimonas_sp_oral_taxon_393, Peptoniphilus_lacrimalis, Leptotrichia_wadei, Gemmata_obscuriglobus, Paludisphaera_borealis, Achromobacter_denitrificans, Achromobacter_ruhlandii, Achromobacter_xylosoxidans, Lautropia_mirabilis, Leptothrix_ochracea, Anaerobiospirillum_thomasii, Cardiobacterium_hominis, Alkalilimnicola_ehrlichii, Escherichia_coli, Klebsiella_michiganensis, Klebsiella_oxytoca, Serratia_liquefaciens, Thiohalorhabdus_denitrificans, Pseudomonas_aeruginosa_group, Fretibacterium_fastidiosum, Acholeplasma_oculi, Aspergillus_eucalypticola, Aspergillus_kawachii, Aspergillus_lacticoffeatus, Aspergillus_niger, Aspergillus_phoenicis, Aspergillus_sydowii, Aspergillus_thermomutatus, Aspergillus_tubingensis, Aspergillus_turcosus, Aspergillus_vadensis, Aspergillus_welwitschiae, Candida_tropicalis, Malassezia_globosa, Malassezia_restricta, Actinomyces_cardiffensis, Actinomyces_denticolens, Actinomyces_turicensis, Bifidobacterium_breve, Gardnerella_vaginalis, Scardovia_inopinata, Corynebacterium_pyruviciproducens, Gordonia_polyisoprenivorans, Mycolicibacterium_fortuitum, Mycolicibacterium_rufum, Nakamurella_silvestris, Atopobium_minutum, Gordonibacter_pamelaeae, Bacteroidetes_oral_taxon_274, Porphyromonas_canoris, Porphyromonas_catoniae, Porphyromonas_uenonis, Prevotella_denticola, Prevotella_intermedia, Prevotella_nigrescens, Prevotella_oulorum, Prevotella_pallens, Prevotella_pleuritidis, Prevotella_scopos, Prevotella_sp_F0091, Tannerella_forsythia, Tannerella_sp_oral_taxon_808, Tannerella_sp_oral_taxon_HOT_286, Capnocytophaga_gingivalis, Capnocytophaga_granulosa, Capnocytophaga_sputigena, Litorilinea_aerophila, Bacillus_cereus_group, Bacillus_ginsengihumi, Listeria_floridensis, Agitococcus_lubricus, Lactobacillus_gasseri, Lactobacillus_oris, Lactobacillus_paragasseri, Lactobacillus_reuteri, Lactobacillus_salivarius, Sharpea_azabuensis, Streptococcus_massiliensis, Streptococcus_mutans, Streptococcus_sp_SK643, Streptococcus_sp_oral_taxon_056, Mageeibacillus_indolicus, Oribacterium_asaccharolyticum, Leptotrichia_sp_oral_taxon_212, Neisseria_subflava, Desulfobulbus_oralis, Moraxella_catarrhalis, Stenotrophomonas_maltophilia, Stenotrophomonas_pavanii, Stenotrophomonas_rhizophila, Treponema_socranskii, Bacillus_intestinalis, Listeria_innocua, Listeria_monocytogenes, Streptococcus_downei, Streptococcus_salivarius_CAG_79, Streptococcus_sobrinus, Streptococcus_sp_DD11, Streptococcus_sp_HMSC070B10, Streptococcus_sp_NLAE_zl_C503, Streptococcus_viridans, Eubacterium_saphenum, Eubacterium_rectale, Filifactor_alocis, Eggerthia_catenaformis, Selenomonas_flueggei, Selenomonas_sp_oral_taxon_892, Selenomonas_sp_oral_taxon_920, Dialister_micraerophilus, Veillonella_tobetsuensis, Fusobacterium_periodonticum, Fusobacterium_sp_oral_taxon_370, Leptotrichia_buccalis, Leptotrichia_hofstadii, Leptotrichia_sp_oral_taxon_215, Leptotrichia_sp_oral_taxon_225, Leptotrichia_sp_oral_taxon_498, Leptotrichia_sp_oral_taxon_879, Fimbriiglobus_ruber, Rickettsia_felis, Burkholderia_multivorans, Eikenella_corrodens, Neisseria_elongata, Campylobacter_showae, Haemophilus_parainfluenzae, Rickettsia_typhi, Neisseria_macacae, Neisseria_mucosa, Neisseria_sicca, Nannocystis_exedens, Campylobacter_gracilis, Campylobacter_mucosalis, Franconibacter_helveticus, Klebsiella_pneumoniae, Salmonella_enterica, Superficieibacter_electus, Haemophilus_sp_HMSC71H05, Pseudomonas_fluorescens_group, Pseudomonas_geniculata, Aspergillus_fumigatus, Saccharomyces_cerevisiae, Saccharomyces_cerevisiae_x_Saccharomyces_kudriavzevii, Saccharomyces_kudriavzevii, Cryptococcus_gattii_VGI, Cryptococcus_gattii_VGII, Cryptococcus_gattii_VGIII, Cryptococcus_neoformans
## 2023-03-21 22:46:52 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:46:52 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:46:52 INFO::Running selected normalization method: TSS
## 2023-03-21 22:46:52 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:46:52 INFO::Running selected transform method: LOG
## 2023-03-21 22:46:52 INFO::Running selected analysis method: LM
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 1, Actinomyces_naeslundii
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 2, Actinomyces_odontolyticus
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 3, Actinomyces_sp_HPA0247
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 4, Actinomyces_sp_S6_Spd3
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 5, Actinomyces_sp_oral_taxon_181
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 6, Scardovia_wiggsiae
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 7, Corynebacterium_tuberculostearicum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 8, Rothia_mucilaginosa
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 9, Cutibacterium_acnes
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 10, Atopobium_deltae
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 11, Atopobium_parvulum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 12, Atopobium_rimae
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 13, Olsenella_scatoligenes
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 14, Prevotella_melaninogenica
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 15, Prevotella_oris
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 16, Gemella_asaccharolytica
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 17, Gemella_bergeri
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 18, Gemella_haemolysans
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 19, Gemella_morbillorum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 20, Gemella_sanguinis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 21, Staphylococcus_argenteus
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 22, Staphylococcus_aureus
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 23, Staphylococcus_epidermidis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 24, Staphylococcus_schweitzeri
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 25, Enterococcus_faecalis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 26, Streptococcus_anginosus_group
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 27, Streptococcus_mitis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 28, Streptococcus_oralis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 29, Streptococcus_parasanguinis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 30, Streptococcus_pneumoniae
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 31, Eubacterium_infirmum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 32, Peptostreptococcus_stomatis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 33, Bulleidia_extructa
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 34, Veillonella_parvula
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 35, Finegoldia_magna
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 36, Parvimonas_micra
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 37, Fusobacterium_nucleatum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 38, Cupriavidus_sp
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 39, Sutterella_parvirubra
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 40, Cardiobacterium_valvarum
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 41, Candida_albicans
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 42, Candida_dubliniensis
## 2023-03-21 22:46:52 INFO::Fitting model to feature number 43, Candida_parapsilosis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 44, Actinomyces_radingae
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 45, Varibaculum_cambriense
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 46, Porphyromonas_asaccharolytica
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 47, Alloprevotella_rava
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 48, Alloprevotella_tannerae
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 49, Prevotella_buccae
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 50, Prevotella_jejuni
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 51, Prevotella_salivae
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 52, Prevotella_sp_oral_taxon_306
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 53, Prevotella_veroralis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 54, Lactobacillus_fermentum
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 55, Peptostreptococcus_sp_MV1
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 56, Megasphaera_micronuciformis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 57, Neisseria_flavescens
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 58, Staphylococcus_haemolyticus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 59, Enterococcus_avium
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 60, Streptococcus_pyogenes
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 61, Streptococcus_thermophilus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 62, Dialister_invisus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 63, Negativicoccus_succinicivorans
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 64, Candida_orthopsilosis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 65, Campylobacter_concisus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 66, Serratia_marcescens
## 2023-03-21 22:46:53 INFO::Counting total values for each feature
## 2023-03-21 22:46:53 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:53 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:53 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:53 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:53 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:53 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:53 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:46:53 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
cat("Number of differentially abundant bugs by each metadata in BAL")
## Number of differentially abundant bugs by each metadata in BAL
fit_data_bal$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## < table of extent 0 >
#sputum
# # y ~ log(final reads) + sample_type + treatment
fit_data_spt = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "Sputum")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "Sputum")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:46:53 INFO::Writing function arguments to log file
## 2023-03-21 22:46:53 INFO::Verifying options selected are valid
## 2023-03-21 22:46:53 INFO::Determining format of input files
## 2023-03-21 22:46:53 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:46:53 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:46:53 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:46:53 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:46:53 INFO::Total samples in data: 30
## 2023-03-21 22:46:53 INFO::Min samples required with min abundance for a feature not to be filtered: 3.000000
## 2023-03-21 22:46:53 INFO::Total filtered features: 155
## 2023-03-21 22:46:53 INFO::Filtered feature names from abundance and prevalence filtering: Parascardovia_denticolens, Corynebacterium_accolens, Corynebacterium_afermentans, Corynebacterium_aurimucosum, Corynebacterium_kroppenstedtii, Corynebacterium_pseudodiphtheriticum, Corynebacterium_pseudogenitalium, Corynebacterium_tuberculostearicum, Mycobacterium_chimaera, Mycobacterium_intracellulare, Micrococcus_luteus, Tropheryma_whipplei, Cutibacterium_avidum, Cutibacterium_granulosum, Propionibacterium_humerusii, Propionibacterium_namnetense, Patulibacter_medicamentivorans, Prevotella_oris, Gemella_asaccharolytica, Staphylococcus_capitis, Dolosigranulum_pigrum, Streptococcus_sinensis, Selenomonas_noxia, Selenomonas_sputigena, Anaerococcus_nagyae, Anaerococcus_octavius, Finegoldia_magna, Lautropia_mirabilis, Leptothrix_ochracea, Klebsiella_michiganensis, Klebsiella_oxytoca, Serratia_liquefaciens, Aspergillus_eucalypticola, Aspergillus_kawachii, Aspergillus_lacticoffeatus, Aspergillus_niger, Aspergillus_phoenicis, Aspergillus_sydowii, Aspergillus_thermomutatus, Aspergillus_tubingensis, Aspergillus_turcosus, Aspergillus_vadensis, Aspergillus_welwitschiae, Candida_albicans, Candida_dubliniensis, Candida_tropicalis, Malassezia_globosa, Malassezia_restricta, Actinomyces_cardiffensis, Actinomyces_denticolens, Actinomyces_radingae, Actinomyces_turicensis, Varibaculum_cambriense, Gardnerella_vaginalis, Scardovia_inopinata, Corynebacterium_pyruviciproducens, Gordonia_polyisoprenivorans, Mycolicibacterium_fortuitum, Mycolicibacterium_rufum, Atopobium_minutum, Gordonibacter_pamelaeae, Bacteroidetes_oral_taxon_274, Porphyromonas_asaccharolytica, Porphyromonas_canoris, Porphyromonas_uenonis, Alloprevotella_rava, Alloprevotella_tannerae, Prevotella_buccae, Prevotella_denticola, Prevotella_intermedia, Prevotella_nigrescens, Prevotella_oulorum, Prevotella_pleuritidis, Prevotella_scopos, Prevotella_sp_F0091, Prevotella_sp_oral_taxon_306, Prevotella_veroralis, Tannerella_sp_oral_taxon_808, Capnocytophaga_granulosa, Capnocytophaga_sputigena, Bacillus_cereus_group, Bacillus_ginsengihumi, Listeria_floridensis, Agitococcus_lubricus, Lactobacillus_fermentum, Lactobacillus_oris, Lactobacillus_paragasseri, Lactobacillus_reuteri, Lactobacillus_salivarius, Streptococcus_massiliensis, Streptococcus_sp_SK643, Mageeibacillus_indolicus, Peptostreptococcus_sp_MV1, Leptotrichia_sp_oral_taxon_212, Desulfobulbus_oralis, Moraxella_catarrhalis, Treponema_socranskii, Bacillus_intestinalis, Listeria_innocua, Listeria_monocytogenes, Staphylococcus_haemolyticus, Enterococcus_avium, Streptococcus_downei, Streptococcus_pyogenes, Streptococcus_salivarius_CAG_79, Streptococcus_sp_DD11, Streptococcus_sp_HMSC070B10, Streptococcus_sp_NLAE_zl_C503, Streptococcus_thermophilus, Eubacterium_rectale, Selenomonas_flueggei, Selenomonas_sp_oral_taxon_892, Selenomonas_sp_oral_taxon_920, Dialister_invisus, Dialister_micraerophilus, Negativicoccus_succinicivorans, Veillonella_tobetsuensis, Fusobacterium_periodonticum, Fusobacterium_sp_oral_taxon_370, Leptotrichia_buccalis, Leptotrichia_hofstadii, Leptotrichia_sp_oral_taxon_225, Leptotrichia_sp_oral_taxon_498, Leptotrichia_sp_oral_taxon_879, Fimbriiglobus_ruber, Rickettsia_felis, Burkholderia_multivorans, Eikenella_corrodens, Neisseria_elongata, Campylobacter_showae, Candida_orthopsilosis, Rickettsia_typhi, Neisseria_macacae, Neisseria_mucosa, Neisseria_sicca, Nannocystis_exedens, Campylobacter_concisus, Campylobacter_gracilis, Campylobacter_mucosalis, Franconibacter_helveticus, Klebsiella_pneumoniae, Salmonella_enterica, Superficieibacter_electus, Serratia_marcescens, Haemophilus_sp_HMSC71H05, Pseudomonas_fluorescens_group, Pseudomonas_geniculata, Aspergillus_fumigatus, Saccharomyces_cerevisiae, Saccharomyces_cerevisiae_x_Saccharomyces_kudriavzevii, Saccharomyces_kudriavzevii, Cryptococcus_gattii_VGI, Cryptococcus_gattii_VGII, Cryptococcus_gattii_VGIII, Cryptococcus_neoformans
## 2023-03-21 22:46:53 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:46:53 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:46:53 INFO::Running selected normalization method: TSS
## 2023-03-21 22:46:53 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:46:53 INFO::Running selected transform method: LOG
## 2023-03-21 22:46:53 INFO::Running selected analysis method: LM
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 1, Actinobaculum_sp_oral_taxon_183
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 2, Actinomyces_georgiae
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 3, Actinomyces_graevenitzii
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 4, Actinomyces_hongkongensis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 5, Actinomyces_johnsonii
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 6, Actinomyces_massiliensis
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 7, Actinomyces_meyeri
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 8, Actinomyces_naeslundii
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 9, Actinomyces_odontolyticus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 10, Actinomyces_oris
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 11, Actinomyces_sp_HMSC035G02
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 12, Actinomyces_sp_HPA0247
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 13, Actinomyces_sp_ICM47
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 14, Actinomyces_sp_S6_Spd3
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 15, Actinomyces_sp_oral_taxon_170
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 16, Actinomyces_sp_oral_taxon_180
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 17, Actinomyces_sp_oral_taxon_181
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 18, Actinomyces_sp_oral_taxon_414
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 19, Actinomyces_sp_oral_taxon_448
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 20, Actinomyces_sp_oral_taxon_897
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 21, Actinomyces_viscosus
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 22, Aeriscardovia_aeriphila
## 2023-03-21 22:46:53 INFO::Fitting model to feature number 23, Alloscardovia_omnicolens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 24, Bifidobacterium_dentium
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 25, Bifidobacterium_longum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 26, Scardovia_wiggsiae
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 27, Corynebacterium_atypicum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 28, Corynebacterium_durum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 29, Corynebacterium_matruchotii
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 30, Rothia_aeria
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 31, Rothia_dentocariosa
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 32, Rothia_mucilaginosa
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 33, Cutibacterium_acnes
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 34, Propionibacterium_acidifaciens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 35, Pseudopropionibacterium_propionicum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 36, Atopobium_deltae
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 37, Atopobium_parvulum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 38, Atopobium_rimae
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 39, Olsenella_profusa
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 40, Olsenella_scatoligenes
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 41, Olsenella_uli
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 42, Collinsella_aerofaciens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 43, Collinsella_intestinalis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 44, Collinsella_stercoris
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 45, Enorma_massiliensis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 46, X.Collinsella._massiliensis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 47, Adlercreutzia_equolifaciens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 48, Asaccharobacter_celatus
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 49, Denitrobacterium_detoxificans
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 50, Enterorhabdus_caecimuris
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 51, Slackia_exigua
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 52, Slackia_isoflavoniconvertens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 53, Rubrobacter_radiotolerans
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 54, Thermoleophilum_album
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 55, Porphyromonas_endodontalis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 56, Porphyromonas_somerae
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 57, Prevotella_histicola
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 58, Prevotella_melaninogenica
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 59, Capnocytophaga_leadbetteri
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 60, Kouleothrix_aurantiaca
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 61, Hydrogenibacillus_schlegelii
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 62, Gemella_bergeri
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 63, Gemella_haemolysans
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 64, Gemella_morbillorum
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 65, Gemella_sanguinis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 66, Brochothrix_campestris
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 67, Staphylococcus_argenteus
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 68, Staphylococcus_aureus
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 69, Staphylococcus_epidermidis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 70, Staphylococcus_schweitzeri
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 71, Abiotrophia_defectiva
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 72, Abiotrophia_sp_HMSC24B09
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 73, Granulicatella_adiacens
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 74, Granulicatella_elegans
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 75, Enterococcus_faecalis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 76, Lactobacillus_rhamnosus
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 77, Streptococcus_anginosus_group
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 78, Streptococcus_australis
## 2023-03-21 22:46:54 INFO::Fitting model to feature number 79, Streptococcus_cristatus
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 80, Streptococcus_gordonii
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 81, Streptococcus_infantis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 82, Streptococcus_milleri
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 83, Streptococcus_mitis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 84, Streptococcus_oralis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 85, Streptococcus_parasanguinis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 86, Streptococcus_peroris
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 87, Streptococcus_pneumoniae
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 88, Streptococcus_pseudopneumoniae
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 89, Streptococcus_salivarius
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 90, Streptococcus_sanguinis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 91, Streptococcus_sp_A12
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 92, Streptococcus_sp_F0442
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 93, Streptococcus_sp_HMSC034E03
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 94, Streptococcus_sp_HMSC067H01
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 95, Streptococcus_sp_HMSC071D03
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 96, Streptococcus_sp_HPH0090
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 97, Streptococcus_sp_M334
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 98, Streptococcus_vestibularis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 99, Eubacterium_brachy
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 100, Eubacterium_infirmum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 101, Eubacterium_nodatum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 102, Eubacterium_sulci
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 103, Mogibacterium_diversum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 104, Mogibacterium_pumilum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 105, Mogibacterium_timidum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 106, Lachnoanaerobaculum_saburreum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 107, Lachnospiraceae_bacterium_oral_taxon_096
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 108, Oribacterium_parvum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 109, Oribacterium_sinus
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 110, Oribacterium_sp_oral_taxon_078
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 111, Shuttleworthia_satelles
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 112, Stomatobaculum_longum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 113, Peptostreptococcus_stomatis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 114, Bulleidia_extructa
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 115, Solobacterium_moorei
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 116, Limnochorda_pilosa
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 117, Veillonella_atypica
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 118, Veillonella_dispar
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 119, Veillonella_infantium
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 120, Veillonella_parvula
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 121, Veillonella_sp_T11011_6
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 122, Parvimonas_micra
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 123, Parvimonas_sp_oral_taxon_110
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 124, Parvimonas_sp_oral_taxon_393
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 125, Peptoniphilus_lacrimalis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 126, Fusobacterium_nucleatum
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 127, Leptotrichia_wadei
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 128, Gemmata_obscuriglobus
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 129, Paludisphaera_borealis
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 130, Achromobacter_denitrificans
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 131, Achromobacter_ruhlandii
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 132, Achromobacter_xylosoxidans
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 133, Cupriavidus_sp
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 134, Sutterella_parvirubra
## 2023-03-21 22:46:55 INFO::Fitting model to feature number 135, Anaerobiospirillum_thomasii
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 136, Cardiobacterium_hominis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 137, Cardiobacterium_valvarum
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 138, Alkalilimnicola_ehrlichii
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 139, Escherichia_coli
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 140, Thiohalorhabdus_denitrificans
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 141, Pseudomonas_aeruginosa_group
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 142, Fretibacterium_fastidiosum
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 143, Acholeplasma_oculi
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 144, Candida_parapsilosis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 145, Bifidobacterium_breve
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 146, Nakamurella_silvestris
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 147, Porphyromonas_catoniae
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 148, Prevotella_jejuni
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 149, Prevotella_pallens
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 150, Prevotella_salivae
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 151, Tannerella_forsythia
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 152, Tannerella_sp_oral_taxon_HOT_286
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 153, Capnocytophaga_gingivalis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 154, Litorilinea_aerophila
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 155, Lactobacillus_gasseri
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 156, Sharpea_azabuensis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 157, Streptococcus_mutans
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 158, Streptococcus_sp_oral_taxon_056
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 159, Oribacterium_asaccharolyticum
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 160, Megasphaera_micronuciformis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 161, Neisseria_flavescens
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 162, Neisseria_subflava
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 163, Stenotrophomonas_maltophilia
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 164, Stenotrophomonas_pavanii
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 165, Stenotrophomonas_rhizophila
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 166, Streptococcus_sobrinus
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 167, Streptococcus_viridans
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 168, Eubacterium_saphenum
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 169, Filifactor_alocis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 170, Eggerthia_catenaformis
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 171, Leptotrichia_sp_oral_taxon_215
## 2023-03-21 22:46:56 INFO::Fitting model to feature number 172, Haemophilus_parainfluenzae
## 2023-03-21 22:46:56 INFO::Counting total values for each feature
## 2023-03-21 22:46:56 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:56 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:46:56 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:56 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:46:56 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:56 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:46:56 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:46:56 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
cat("Number of differentially abundant bugs by each metadata in sputum")
## Number of differentially abundant bugs by each metadata in sputum
fit_data_spt$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 8 5 1 8
## molysis qiaamp
## 8 7
cat("\nAdding control data to both all and stratified MaAslin will help identify the actual contaminant\n")
##
## Adding control data to both all and stratified MaAslin will help identify the actual contaminant
#Making significance table for figure
# Define a function to make species names italicized
species_italic <- function(data) {
names <- gsub("_", " ", rownames(data))
names <- gsub("[]]|[[]", "", names)
names <- gsub(" sp", " sp.", names)
names <- gsub(" sp.", "* sp.", names)
names <- gsub(" group", "* group.", names)
names <- ifelse(grepl("[*]", names), paste("*", names, sep = ""), paste("*", names, "*", sep = ""))
rownames(data) <- names
data
}
#volcano plot of MaAslin with all data
ggplot(maaslin_all$results, aes(y = -log10(qval), x = coef, col = metadata)) +
theme_classic(base_family = "serif") +
#labs(tag = "A") +
ggtitle("MaAslin with treatment types")+
geom_point(size = 2) +
xlab("MaAslin coefficient") +
ylab("-log<sub>10</sub>(*q*-value)") +
geom_hline(yintercept = 1, col = "gray") +
geom_vline(xintercept = 0, col = "gray") +
geom_richtext(aes( 4, 8, label = "*q*-value = 0.1, fold-change = 0", vjust = -1, fontface = 1), col = "grey", size = 3, family = "serif") +
theme(legend.position = "top", axis.title.y = ggtext::element_markdown()) +
scale_color_manual(values = c("#4daf4a", "#984ea3", "#f781bf", "#377eb8", "#ff7f00", "#ffff33", "#a65628")) +
guides(col = guide_legend(title = "Fixed effects", title.position = "top", nrow = 3))
# Make a significance table for each figure (top 20 taxa)
fit_data_spt$results
make_sig_table <- function(data) {
sig_data <- spread(data$results[order(data$results$qval), c("feature", "metadata", "qval")], metadata, qval)
sig_data$min <- apply(sig_data, 1, FUN = min)
sig_data <- sig_data[order(sig_data$min),] %>% .[1:20,]
sig_data[["feature"]] <- ifelse(sig_data[["feature"]] == "X.Collinsella._massiliensis", "[Collinsella]_massiliensis", sig_data[["feature"]])
sig_data_italic <- sig_data %>% rownames_to_column(var = "-") %>% column_to_rownames(var = "feature") %>% species_italic %>% select(-c("-", "min", "log10.Final_reads"))
sig_data_sig <- ifelse(sig_data_italic < 0.1, "*", NA)
return(list(data = sig_data, data_italic = sig_data_italic, data_sig = sig_data_sig))
}
fit_data_bal <- make_sig_table(fit_data_bal)
fit_data_ns <- make_sig_table(fit_data_ns)
fit_data_spt <- make_sig_table(fit_data_spt)
fit_data_ns$data
cat("\n\nStratified Masslin - significant of each but by treatment in BAL\n")
##
##
## Stratified Masslin - significant of each but by treatment in BAL
fit_data_bal$data_sig
## benzonase host_zero lypma molysis qiaamp
## *Actinomyces radingae* NA NA NA NA NA
## *Bulleidia extructa* NA NA NA NA NA
## *Candida dubliniensis* NA NA NA NA NA
## *Enterococcus avium* NA NA NA NA NA
## *Finegoldia magna* NA NA NA NA NA
## *Gemella morbillorum* NA NA NA NA NA
## *Peptostreptococcus* sp. MV1 NA NA NA NA NA
## *Peptostreptococcus stomatis* NA NA NA NA NA
## *Rothia mucilaginosa* NA NA NA NA NA
## *Staphylococcus epidermidis* NA NA NA NA NA
## *Staphylococcus schweitzeri* NA NA NA NA NA
## *Varibaculum cambriense* NA NA NA NA NA
## *Actinomyces naeslundii* NA NA NA NA NA
## *Corynebacterium tuberculostearicum* NA NA NA NA NA
## *Gemella asaccharolytica* NA NA NA NA NA
## *Gemella haemolysans* NA NA NA NA NA
## *Gemella sanguinis* NA NA NA NA NA
## *Negativicoccus succinicivorans* NA NA NA NA NA
## *Sutterella parvirubra* NA NA NA NA NA
## *Prevotella oris* NA NA NA NA NA
cat("\n\nStratified Masslin - significant of each but by treatment in nasal swab\n")
##
##
## Stratified Masslin - significant of each but by treatment in nasal swab
fit_data_ns$data_sig
## benzonase host_zero lypma molysis qiaamp
## *Cupriavidus* sp. "*" "*" "*" "*" NA
## *Streptococcus oralis* NA NA NA "*" NA
## *Staphylococcus epidermidis* NA NA "*" NA NA
## *Sutterella parvirubra* NA "*" "*" NA NA
## *Aeriscardovia aeriphila* NA NA NA NA NA
## *Rothia mucilaginosa* NA "*" NA "*" NA
## *Corynebacterium atypicum* NA NA NA NA NA
## *Propionibacterium namnetense* NA NA NA NA NA
## *Slackia isoflavoniconvertens* NA NA NA NA NA
## *Cutibacterium avidum* NA NA NA NA NA
## *Staphylococcus aureus* NA NA NA NA NA
## *Staphylococcus argenteus* NA "*" NA NA NA
## *Collinsella massiliensis* NA NA NA NA "*"
## *Limnochorda pilosa* NA NA NA "*" NA
## *Corynebacterium accolens* NA NA "*" NA NA
## *Malassezia restricta* "*" NA NA NA NA
## *Collinsella intestinalis* NA "*" NA NA NA
## *Finegoldia magna* NA "*" NA NA NA
## *Gemella haemolysans* NA NA NA NA NA
## *Thermoleophilum album* NA NA NA NA NA
cat("\n\nStratified Masslin - significant of each but by treatment in Sputum\n")
##
##
## Stratified Masslin - significant of each but by treatment in Sputum
fit_data_spt$data_sig
## benzonase host_zero lypma molysis qiaamp
## *Streptococcus infantis* "*" NA "*" NA NA
## *Gemella haemolysans* "*" NA "*" NA NA
## *Eubacterium sulci* "*" "*" NA "*" "*"
## *Granulicatella elegans* "*" NA "*" NA NA
## *Rothia dentocariosa* "*" NA "*" NA NA
## *Streptococcus* sp. F0442 "*" NA "*" NA NA
## *Bifidobacterium longum* "*" "*" NA "*" "*"
## *Pseudomonas aeruginosa* group. NA NA NA "*" "*"
## *Neisseria flavescens* "*" NA "*" NA NA
## *Rothia mucilaginosa* NA NA "*" NA NA
## *Actinomyces naeslundii* NA "*" NA "*" "*"
## *Denitrobacterium detoxificans* NA "*" NA "*" "*"
## *Actinomyces* sp. oral taxon 897 NA "*" NA "*" "*"
## *Prevotella melaninogenica* NA NA NA "*" "*"
## *Gemmata obscuriglobus* NA NA NA "*" NA
## *Streptococcus gordonii* NA NA "*" NA NA
## *Corynebacterium durum* NA NA NA NA NA
## *Actinomyces* sp. HPA0247 NA NA NA NA NA
## *Streptococcus sanguinis* NA NA NA NA NA
## *Actinomyces massiliensis* NA NA NA NA NA
Results After adding control data, MaAslin needs to be reanalyzed. Adding controls (mock communities) for each treatment group will show more statistically valid results in y ~ log(final reads) + sample_type + treatment, (re = subject_id))
- Decontam - stratified by treatment –> both stratified and nonstratified
input of DNA concentration: 16S qPCR data
https://github.com/benjjneb/decontam/issues/33
Ben Callahan: But in the more limited testing on qPCR data the method still seems to work, and other publications report strong patterns of inverse frequency of contaminants using qPCR data - which is the pattern the frequency method relies on.
Strategy:
2.4.1. run decontam for all samples (common contaminants, by extraction)
2.4.2. stratify decontam analysis per each treatment method (contaminants by depletion methods)
# Decontam package --------------------------------------------------------
# common contaminants across all the treatment methods
#Decontam - were there any contaminants?#
sample_data(phyloseq$phyloseq_rel)$is.neg <- grepl("Neg. ext.", sample_data(phyloseq$phyloseq_rel)$sample_type)
phyloseq_rel_nz <- subset_samples(phyloseq$phyloseq_rel, S.obs != 0)
#With all sampels
dec_f_all <- isContaminant(phyloseq_rel_nz, method="frequency", conc="DNA_bac_well")
dec_p_all <- isContaminant(phyloseq_rel_nz, method="prevalence", neg="is.neg", threshold=0.5)
dec_c_all <- isContaminant(phyloseq_rel_nz, method="combined", neg="is.neg", conc = "DNA_bac_well")
cat("decontam frequency - all sample")
## decontam frequency - all sample
dec_f_all %>% subset(.,.$contaminant)
cat("decontam prevalence - all sample")
## decontam prevalence - all sample
dec_p_all %>% subset(.,.$contaminant)
cat("decontam combined - all sample")
## decontam combined - all sample
dec_c_all %>% subset(.,.$contaminant)
#Stratified by sample type
cat("decontam prevalence - BAL")
## decontam prevalence - BAL
subset_samples(phyloseq_rel_nz, sample_type %in% c("BAL", "Neg. ext.")) %>%
isContaminant(., method="prevalence", neg = "is.neg", threshold = 0.5) %>% subset(.,.$contaminant)
cat("decontam prevalence - Nasal swab")
## decontam prevalence - Nasal swab
subset_samples(phyloseq_rel_nz, sample_type %in% c("Nasal swab", "Neg. ext.")) %>%
isContaminant(., method="prevalence", neg = "is.neg", threshold = 0.5) %>% subset(.,.$contaminant)
cat("decontam prevalence - Sputum")
## decontam prevalence - Sputum
subset_samples(phyloseq_rel_nz, sample_type %in% c("Sputum", "Neg. ext.")) %>%
isContaminant(., method="prevalence", neg = "is.neg", threshold = 0.5) %>% subset(.,.$contaminant)
cat("decontam frequency - BAL")
## decontam frequency - BAL
subset_samples(phyloseq_rel_nz, sample_type %in% c("BAL", "Neg. ext.")) %>%
isContaminant(method="frequency", conc="DNA_bac_well") %>% subset(.,.$contaminant)
cat("decontam frequency - Nasal swab")
## decontam frequency - Nasal swab
subset_samples(phyloseq_rel_nz, sample_type %in% c("Nasal swab", "Neg. ext.")) %>%
isContaminant(method="frequency", conc="DNA_bac_well") %>% subset(.,.$contaminant)
cat("decontam frequency - Sputum")
## decontam frequency - Sputum
subset_samples(phyloseq_rel_nz, sample_type %in% c("Sputum", "Neg. ext.")) %>%
isContaminant(method="frequency", conc="DNA_bac_well") %>% subset(.,.$contaminant)
cat("decontam combined - BAL")
## decontam combined - BAL
subset_samples(phyloseq_rel_nz, sample_type %in% c("BAL", "Neg. ext.")) %>%
isContaminant(method="combined", neg="is.neg", conc = "DNA_bac_well") %>% subset(.,.$contaminant)
cat("decontam combined - Nasal swab")
## decontam combined - Nasal swab
subset_samples(phyloseq_rel_nz, sample_type %in% c("Nasal swab", "Neg. ext.")) %>%
isContaminant(method="combined", neg="is.neg", conc = "DNA_bac_well") %>% subset(.,.$contaminant)
cat("decontam combined - Sputum")
## decontam combined - Sputum
subset_samples(phyloseq_rel_nz, sample_type %in% c("Sputum", "Neg. ext.")) %>%
isContaminant(method="combined", neg="is.neg", conc = "DNA_bac_well") %>% subset(.,.$contaminant)
#10. LM of function alpha diversity (richness)#
--> both stratified and nonstratified
sample_data <- sample_data(phyloseq$phyloseq_path_rpkm) %>% data.frame(check.names = F) %>% subset(., !is.nan(.$simpson))
cat("Species richness of all samples\n\n")
## Species richness of all samples
cat("S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ sample_type * treatment + log10 (Final_reads) + (1|subject_id), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -271.32533 | 63.94609 | 72.47916 | -4.2430322 | 0.0000643 |
|
sample_typeNasal swab | 66.71179 | 39.44578 | 32.64336 | 1.6912273 | 0.1003209 | |
sample_typeSputum | 142.80087 | 36.31835 | 41.80438 | 3.9319203 | 0.0003111 |
|
treatmentlyPMA | 59.31768 | 31.18858 | 64.39962 | 1.9019036 | 0.0616583 | |
treatmentBenzonase | 96.59262 | 31.65626 | 66.97650 | 3.0512965 | 0.0032643 |
|
treatmentHost zero | 129.84121 | 32.25492 | 67.36194 | 4.0254694 | 0.0001466 |
|
treatmentMolysis | 150.32258 | 32.65321 | 67.58822 | 4.6036081 | 0.0000189 |
|
treatmentQIAamp | 86.27368 | 32.71224 | 67.61999 | 2.6373516 | 0.0103578 |
|
log10(Final_reads) | 52.77944 | 11.01007 | 70.54314 | 4.7937427 | 0.0000088 |
|
sample_typeNasal swab:treatmentlyPMA | -23.81209 | 39.44179 | 64.87664 | -0.6037273 | 0.5481301 | |
sample_typeSputum:treatmentlyPMA | -5.02253 | 39.40167 | 62.83470 | -0.1274700 | 0.8989755 | |
sample_typeNasal swab:treatmentBenzonase | -80.25929 | 38.01990 | 65.40988 | -2.1109811 | 0.0386006 |
|
sample_typeSputum:treatmentBenzonase | -52.43718 | 38.65224 | 63.57018 | -1.3566400 | 0.1796940 | |
sample_typeNasal swab:treatmentHost zero | -106.90271 | 36.81521 | 64.23327 | -2.9037647 | 0.0050492 |
|
sample_typeSputum:treatmentHost zero | -76.35866 | 38.92443 | 62.75019 | -1.9617158 | 0.0542352 | |
sample_typeNasal swab:treatmentMolysis | -106.97855 | 38.54815 | 66.00383 | -2.7751931 | 0.0071693 |
|
sample_typeSputum:treatmentMolysis | -108.15918 | 39.34418 | 62.63915 | -2.7490513 | 0.0077999 |
|
sample_typeNasal swab:treatmentQIAamp | -75.62038 | 36.68939 | 64.06591 | -2.0610968 | 0.0433576 |
|
sample_typeSputum:treatmentQIAamp | -40.59820 | 38.59881 | 63.08680 | -1.0517993 | 0.2969039 |
#Species richness - stratified
cat("Species richness at NS\n\n")
## Species richness at NS
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|subject_id), data = subset(sample_data, sample_data$sample_type == "Nasal swab")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
## boundary (singular) fit: see help('isSingular')
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 68.35891 | 68.76371 | 28 | 0.9941131 | 0.3286817 | |
treatmentlyPMA | 13.88909 | 17.11543 | 28 | 0.8114955 | 0.4239262 | |
treatmentBenzonase | 20.95703 | 16.24183 | 28 | 1.2903126 | 0.2074965 | |
treatmentHost zero | 56.43052 | 18.37320 | 28 | 3.0713495 | 0.0047048 |
|
treatmentMolysis | 51.56131 | 16.32822 | 28 | 3.1578029 | 0.0037880 |
|
treatmentQIAamp | 54.41631 | 19.71859 | 28 | 2.7596444 | 0.0100871 |
|
log10(Final_reads) | 12.25116 | 10.45340 | 28 | 1.1719787 | 0.2510816 |
cat("Species richness at BAL\n\n")
## Species richness at BAL
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|original_sample), data = subset(sample_data, sample_data$sample_type == "BAL")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -640.83129 | 99.14027 | 19.00295 | -6.4638848 | 0.0000034 |
|
treatmentlyPMA | 14.46191 | 33.76511 | 18.36963 | 0.4283092 | 0.6734060 | |
treatmentBenzonase | 16.49562 | 35.65062 | 19.98741 | 0.4627021 | 0.6485757 | |
treatmentHost zero | 39.81066 | 36.93641 | 19.98154 | 1.0778162 | 0.2939563 | |
treatmentMolysis | 54.18626 | 37.78713 | 19.92262 | 1.4339874 | 0.1670859 | |
treatmentQIAamp | -10.73947 | 37.91284 | 19.91125 | -0.2832674 | 0.7798961 | |
log10(Final_reads) | 124.09731 | 17.94627 | 17.34430 | 6.9149360 | 0.0000022 |
|
cat("Species richness at sputum\n\n")
## Species richness at sputum
cat("S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## S.obs ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(S.obs ~ treatment + log10 (Final_reads) + (1|original_sample), data = subset(sample_data, sample_data$sample_type == "Sputum")) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | -127.58303 | 198.98655 | 21.38568 | -0.6411641 | 0.5282282 | |
treatmentlyPMA | 54.38241 | 28.77622 | 19.88708 | 1.8898385 | 0.0734460 | |
treatmentBenzonase | 44.29211 | 36.29072 | 20.41549 | 1.2204804 | 0.2361930 | |
treatmentHost zero | 53.75292 | 61.00733 | 20.95720 | 0.8810895 | 0.3882627 | |
treatmentMolysis | 42.48496 | 71.13867 | 21.03201 | 0.5972132 | 0.5567405 | |
treatmentQIAamp | 45.90423 | 52.95334 | 20.86328 | 0.8668807 | 0.3958683 | |
log10(Final_reads) | 52.61786 | 33.96577 | 21.23460 | 1.5491436 | 0.1361234 |
#Shannon
cat("Shannon index\n\n")
## Shannon index
cat("Shannon ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## Shannon ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(data_shannon ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 0.6277442 | 0.1923582 | 72.90417 | 3.2634128 | 0.0016771 |
|
sample_typeNasal swab | 0.3782276 | 0.0948640 | 66.24283 | 3.9870501 | 0.0001694 |
|
sample_typeSputum | 0.3038993 | 0.0968430 | 65.80070 | 3.1380607 | 0.0025449 |
|
treatmentlyPMA | 0.2080648 | 0.0912575 | 59.31888 | 2.2799751 | 0.0262196 |
|
treatmentBenzonase | 0.1074536 | 0.0924809 | 65.10258 | 1.1619011 | 0.2495177 | |
treatmentHost zero | 0.2663135 | 0.0943090 | 66.22861 | 2.8238390 | 0.0062621 |
|
treatmentMolysis | 0.3493594 | 0.0955289 | 66.88889 | 3.6571063 | 0.0005034 |
|
treatmentQIAamp | 0.0974529 | 0.0957099 | 66.98134 | 1.0182112 | 0.3122414 | |
log10(Final_reads) | -0.0167122 | 0.0335618 | 71.90795 | -0.4979546 | 0.6200356 | |
sample_typeNasal swab:treatmentlyPMA | -0.2199998 | 0.1167864 | 63.60638 | -1.8837795 | 0.0641674 | |
sample_typeSputum:treatmentlyPMA | -0.0942524 | 0.1154524 | 55.89187 | -0.8163741 | 0.4177521 | |
sample_typeNasal swab:treatmentBenzonase | -0.0695042 | 0.1120531 | 63.47768 | -0.6202792 | 0.5372946 | |
sample_typeSputum:treatmentBenzonase | 0.0023288 | 0.1130661 | 57.07248 | 0.0205967 | 0.9836392 | |
sample_typeNasal swab:treatmentHost zero | -0.2682060 | 0.1085902 | 60.90331 | -2.4698926 | 0.0163329 |
|
sample_typeSputum:treatmentHost zero | -0.2089075 | 0.1142346 | 56.03885 | -1.8287583 | 0.0727592 | |
sample_typeNasal swab:treatmentMolysis | -0.3849402 | 0.1134802 | 64.38350 | -3.3921345 | 0.0011901 |
|
sample_typeSputum:treatmentMolysis | -0.2757981 | 0.1156639 | 56.27671 | -2.3844786 | 0.0204979 |
|
sample_typeNasal swab:treatmentQIAamp | -0.1846564 | 0.1083181 | 60.79440 | -1.7047607 | 0.0933449 | |
sample_typeSputum:treatmentQIAamp | -0.0636306 | 0.1130449 | 56.24157 | -0.5628795 | 0.5757540 |
#Simpson
cat("Inverse Simpson index\n\n")
## Inverse Simpson index
cat("InvSimp ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## InvSimp ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(data_invsimpson ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 2.5338586 | 0.3135385 | 70.96294 | 8.0814913 | 0.0000000 |
|
sample_typeNasal swab | 0.2842938 | 0.1520494 | 68.03030 | 1.8697465 | 0.0658228 | |
sample_typeSputum | 0.3782501 | 0.1558509 | 70.95435 | 2.4270003 | 0.0177657 |
|
treatmentlyPMA | 0.3397324 | 0.1563898 | 61.65671 | 2.1723442 | 0.0336834 |
|
treatmentBenzonase | 0.0472378 | 0.1563836 | 68.23317 | 0.3020637 | 0.7635223 | |
treatmentHost zero | 0.2329645 | 0.1590151 | 69.37014 | 1.4650462 | 0.1474261 | |
treatmentMolysis | 0.3567617 | 0.1607861 | 70.00663 | 2.2188598 | 0.0297400 |
|
treatmentQIAamp | 0.0582910 | 0.1610497 | 70.09361 | 0.3619443 | 0.7184825 | |
log10(Final_reads) | -0.1644187 | 0.0540196 | 64.44675 | -3.0436866 | 0.0033807 |
|
sample_typeNasal swab:treatmentlyPMA | -0.4423346 | 0.1983466 | 65.97618 | -2.2301099 | 0.0291475 |
|
sample_typeSputum:treatmentlyPMA | -0.3759508 | 0.1993215 | 57.44567 | -1.8861530 | 0.0643330 | |
sample_typeNasal swab:treatmentBenzonase | -0.0381545 | 0.1903215 | 66.04230 | -0.2004738 | 0.8417261 | |
sample_typeSputum:treatmentBenzonase | -0.1934003 | 0.1947030 | 58.93845 | -0.9933096 | 0.3246198 | |
sample_typeNasal swab:treatmentHost zero | -0.3256749 | 0.1855479 | 62.96653 | -1.7552062 | 0.0840880 | |
sample_typeSputum:treatmentHost zero | -0.4518719 | 0.1971485 | 57.67798 | -2.2920381 | 0.0255722 |
|
sample_typeNasal swab:treatmentMolysis | -0.5649464 | 0.1923302 | 67.03548 | -2.9373781 | 0.0045336 |
|
sample_typeSputum:treatmentMolysis | -0.5317988 | 0.1995233 | 57.91638 | -2.6653467 | 0.0099491 |
|
sample_typeNasal swab:treatmentQIAamp | -0.1812611 | 0.1851750 | 62.57751 | -0.9788638 | 0.3314165 | |
sample_typeSputum:treatmentQIAamp | -0.3137393 | 0.1950063 | 57.95487 | -1.6088678 | 0.1130797 |
#BPI
cat("Beger Parker index\n\n")
## Beger Parker index
cat("BPI ~ sample_type + log10 (Final_reads) + (1|original_sample)\n\n")
## BPI ~ sample_type + log10 (Final_reads) + (1|original_sample)
lmer(dbp ~ sample_type * treatment + log10 (Final_reads) + (1|original_sample), data = sample_data) %>%
summary() %>%
.$coefficients %>%
data.frame(check.names = F) %>%
mutate(` ` = case_when(abs(`Pr(>|t|)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Estimate | Std. Error | df | t value | Pr(>|t|) | ||
---|---|---|---|---|---|---|
(Intercept) | 0.3440391 | 0.1258762 | 70.13993 | 2.7331535 | 0.0079332 |
|
sample_typeNasal swab | -0.0940641 | 0.0609175 | 68.34780 | -1.5441228 | 0.1271764 | |
sample_typeSputum | -0.1495148 | 0.0626267 | 71.73071 | -2.3873954 | 0.0196055 |
|
treatmentlyPMA | -0.1360672 | 0.0637784 | 62.70891 | -2.1334365 | 0.0368082 |
|
treatmentBenzonase | -0.0137189 | 0.0634994 | 69.15451 | -0.2160472 | 0.8295870 | |
treatmentHost zero | -0.0775264 | 0.0645073 | 70.21212 | -1.2018236 | 0.2334698 | |
treatmentMolysis | -0.1514704 | 0.0651879 | 70.79134 | -2.3235979 | 0.0230235 |
|
treatmentQIAamp | -0.0147607 | 0.0652893 | 70.86956 | -0.2260821 | 0.8217883 | |
log10(Final_reads) | 0.0701153 | 0.0215697 | 61.84125 | 3.2506433 | 0.0018652 |
|
sample_typeNasal swab:treatmentlyPMA | 0.1871812 | 0.0806756 | 66.80034 | 2.3201722 | 0.0233951 |
|
sample_typeSputum:treatmentlyPMA | 0.1784389 | 0.0814836 | 58.41893 | 2.1898742 | 0.0325394 |
|
sample_typeNasal swab:treatmentBenzonase | 0.0181788 | 0.0774064 | 66.92125 | 0.2348489 | 0.8150431 | |
sample_typeSputum:treatmentBenzonase | 0.0966450 | 0.0795283 | 59.95203 | 1.2152280 | 0.2290433 | |
sample_typeNasal swab:treatmentHost zero | 0.1112523 | 0.0756141 | 63.85620 | 1.4713183 | 0.1461162 | |
sample_typeSputum:treatmentHost zero | 0.1766839 | 0.0805844 | 58.67215 | 2.1925319 | 0.0323198 |
|
sample_typeNasal swab:treatmentMolysis | 0.2327702 | 0.0781693 | 67.88223 | 2.9777684 | 0.0040230 |
|
sample_typeSputum:treatmentMolysis | 0.2309710 | 0.0815446 | 58.89704 | 2.8324495 | 0.0063138 |
|
sample_typeNasal swab:treatmentQIAamp | 0.0548290 | 0.0754814 | 63.39830 | 0.7263905 | 0.4702729 | |
sample_typeSputum:treatmentQIAamp | 0.1291496 | 0.0796962 | 58.96349 | 1.6205246 | 0.1104560 |
- permanova of function beta diversity –> both stratified and nonstratified
phyloseq_rel_nz <- subset_samples(phyloseq$phyloseq_path_rpkm, S.obs != 0 & sample_type %in% c("BAL", "Nasal swab", "Sputum"))
bray_perm_uni <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + treatment + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + lypma + benzonase + host_zero + molysis + qiaamp + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_strata <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type + log10(Final_reads) + lypma + benzonase + host_zero + molysis + qiaamp,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F),
strata = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F) %>% .$subject_id, permutations = 10000)
bray_perm_inter <- vegan::adonis2(distance(phyloseq_rel_nz, method="bray") ~ sample_type * treatment + log10(Final_reads) + subject_id,
data = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_ns <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_bal <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "BAL"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "BAL") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
bray_perm_spt <- vegan::adonis2(distance(subset_samples(phyloseq_rel_nz, sample_type == "Sputum"), method="bray") ~ lypma + benzonase + host_zero + molysis + qiaamp + log10(Final_reads) + subject_id,
data = subset_samples(phyloseq_rel_nz, sample_type == "Sputum") %>% sample_data %>% data.frame(check.names = F), permutations = 10000)
cat("\nUnivariate analysis\n")
##
## Univariate analysis
bray_perm_uni %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "treatment" ~ 'Treatment',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 1.557 | 0.344 | 53.603 | 0.00 |
|
log10(Final reads) | 1 | 1.024 | 0.226 | 70.491 | 0.00 |
|
Treatment | 5 | 0.124 | 0.027 | 1.703 | 0.14 | |
Subject | 10 | 0.766 | 0.169 | 5.276 | 0.00 |
|
Residual | 73 | 1.060 | 0.234 | NA | NA | |
Total | 91 | 4.530 | 1.000 | NA | NA |
cat("\nDetailed treatment\n")
##
## Detailed treatment
bray_perm %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 1.557 | 0.344 | 53.603 | 0.000 |
|
log10(Final reads) | 1 | 1.024 | 0.226 | 70.491 | 0.000 |
|
lyPMA | 1 | 0.019 | 0.004 | 1.284 | 0.263 | |
Benzonase | 1 | 0.008 | 0.002 | 0.579 | 0.459 | |
Host zero | 1 | 0.008 | 0.002 | 0.564 | 0.460 | |
Molysis | 1 | 0.087 | 0.019 | 6.020 | 0.015 |
|
QIAamp | 1 | 0.001 | 0.000 | 0.067 | 0.836 | |
Subject | 10 | 0.766 | 0.169 | 5.276 | 0.000 |
|
Residual | 73 | 1.060 | 0.234 | NA | NA | |
Total | 91 | 4.530 | 1.000 | NA | NA |
cat("\n Strata -detailed treatment\n")
##
## Strata -detailed treatment
bray_perm_strata %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 1.557 | 0.344 | 35.378 | 0.000 |
|
log10(Final reads) | 1 | 1.024 | 0.226 | 46.525 | 0.000 |
|
lyPMA | 1 | 0.019 | 0.004 | 0.847 | 0.424 | |
Benzonase | 1 | 0.008 | 0.002 | 0.382 | 0.521 | |
Host zero | 1 | 0.008 | 0.002 | 0.372 | 0.570 | |
Molysis | 1 | 0.087 | 0.019 | 3.973 | 0.054 | |
QIAamp | 1 | 0.001 | 0.000 | 0.044 | 0.964 | |
Residual | 83 | 1.826 | 0.403 | NA | NA | |
Total | 91 | 4.530 | 1.000 | NA | NA |
cat("\n Interaction term \n")
##
## Interaction term
bray_perm_inter %>% data.frame(check.names = F) %>% rownames_to_column("row.names") %>%
mutate(row.names = case_when(row.names == "sample_type" ~ 'Sample type',
row.names == "treatment" ~ 'Treatment',
row.names == "subject_id" ~ 'Subject',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "sample_type:treatment" ~ 'Sample type X treatment',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
Sample type | 2 | 1.557 | 0.344 | 66.198 | 0.000 |
|
Treatment | 5 | 0.684 | 0.151 | 11.631 | 0.000 |
|
log10(Final reads) | 1 | 0.463 | 0.102 | 39.412 | 0.000 |
|
Subject | 10 | 0.766 | 0.169 | 6.515 | 0.000 |
|
Sample type X treatment | 10 | 0.319 | 0.070 | 2.715 | 0.008 |
|
Residual | 63 | 0.741 | 0.164 | NA | NA | |
Total | 91 | 4.530 | 1.000 | NA | NA |
cat("\n Stratified - nasal swab \n")
##
## Stratified - nasal swab
bray_perm_ns %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.011 | 0.042 | 2.049 | 0.147 | |
Benzonase | 1 | 0.011 | 0.040 | 1.940 | 0.159 | |
Host zero | 1 | 0.009 | 0.033 | 1.615 | 0.205 | |
Molysis | 1 | 0.014 | 0.052 | 2.566 | 0.104 | |
QIAamp | 1 | 0.054 | 0.197 | 9.648 | 0.003 |
|
log10(Final reads) | 1 | 0.028 | 0.103 | 5.051 | 0.027 |
|
Subject id | 2 | 0.001 | 0.003 | 0.083 | 0.980 | |
Residual | 26 | 0.146 | 0.530 | NA | NA | |
Total | 34 | 0.275 | 1.000 | NA | NA |
cat("\n Stratified - BAL \n")
##
## Stratified - BAL
bray_perm_bal %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.040 | 0.020 | 1.305 | 0.268 | |
Benzonase | 1 | 0.115 | 0.058 | 3.716 | 0.070 | |
Host zero | 1 | 0.027 | 0.014 | 0.886 | 0.370 | |
Molysis | 1 | 0.180 | 0.091 | 5.820 | 0.028 |
|
QIAamp | 1 | 0.001 | 0.000 | 0.029 | 0.904 | |
log10(Final reads) | 1 | 0.603 | 0.306 | 19.535 | 0.001 |
|
Subject id | 4 | 0.513 | 0.260 | 4.153 | 0.017 |
|
Residual | 16 | 0.494 | 0.250 | NA | NA | |
Total | 26 | 1.973 | 1.000 | NA | NA |
cat("\n Stratified - sputum \n")
##
## Stratified - sputum
bray_perm_spt %>% data.frame(check.names = F) %>% rownames_to_column('row.names') %>%
mutate(row.names = case_when(row.names == "lypma" ~ 'lyPMA',
row.names == "benzonase" ~ 'Benzonase',
row.names == "host_zero" ~ 'Host zero',
row.names == "molysis" ~ 'Molysis',
row.names == "qiaamp" ~ 'QIAamp',
row.names == "subject_id" ~ 'Subject id',
row.names == "log10(Final_reads)" ~ 'log10(Final reads)',
row.names == "Residual" ~ 'Residual',
row.names == "Total" ~ 'Total')) %>% column_to_rownames('row.names') %>%
round(3) %>% mutate(` ` = case_when(abs(`Pr(>F)`) < 0.05 ~ "*",
.default = " ")) %>%
kbl(format = "html") %>%
kable_styling(full_width = 0, html_font = "serif")
Df | SumOfSqs | R2 | F | Pr(>F) | ||
---|---|---|---|---|---|---|
lyPMA | 1 | 0.017 | 0.023 | 3.920 | 0.053 | |
Benzonase | 1 | 0.002 | 0.003 | 0.440 | 0.557 | |
Host zero | 1 | 0.064 | 0.089 | 15.072 | 0.001 |
|
Molysis | 1 | 0.139 | 0.191 | 32.510 | 0.000 |
|
QIAamp | 1 | 0.370 | 0.509 | 86.595 | 0.000 |
|
log10(Final reads) | 1 | 0.032 | 0.045 | 7.588 | 0.011 |
|
Subject id | 4 | 0.021 | 0.029 | 1.224 | 0.332 | |
Residual | 19 | 0.081 | 0.112 | NA | NA | |
Total | 29 | 0.726 | 1.000 | NA | NA |
- DA analysis for function, by sample type and treatment –> both stratified and nonstratified –> multiple levels?
sample_data(phyloseq_rel_nz)$log10.Final_reads <- log10(sample_data(phyloseq_rel_nz)$Final_reads)
sample_data(phyloseq_rel_nz)$sampletype_treatment <- paste(sample_data(phyloseq_rel_nz)$sample_type, sample_data(phyloseq_rel_nz)$treatment, sep = ":")
#Running MaAslin for all sample without decontam
#for taxa differentially abundant by host depletion method, look to see which ones overlap with potential contaminant taxa
# Maaslin - # # y ~ log(final reads) + sample_type + treatment -----------
phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F)
#all samples
maaslin_all = Maaslin2(input_data = otu_table(phyloseq_rel_nz) %>% t %>% data.frame(),
input_metadata = phyloseq_rel_nz %>% sample_data %>% data.frame(check.names = F),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("sample_type", "log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
reference = c("sample_type,BAL"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:47:57 INFO::Writing function arguments to log file
## 2023-03-21 22:47:57 INFO::Verifying options selected are valid
## 2023-03-21 22:47:57 INFO::Determining format of input files
## 2023-03-21 22:47:57 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:47:57 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:47:57 INFO::Formula for fixed effects: expr ~ sample_type + log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:47:57 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:47:57 INFO::Total samples in data: 92
## 2023-03-21 22:47:57 INFO::Min samples required with min abundance for a feature not to be filtered: 9.200000
## 2023-03-21 22:47:57 INFO::Total filtered features: 147
## 2023-03-21 22:47:57 INFO::Filtered feature names from abundance and prevalence filtering: X3.HYDROXYPHENYLACETATE.DEGRADATION.PWY, AEROBACTINSYN.PWY, ALL.CHORISMATE.PWY, ARGDEG.PWY, CODH.PWY, ECASYN.PWY, ENTBACSYN.PWY, FUC.RHAMCAT.PWY, FUCCAT.PWY, GALACT.GLUCUROCAT.PWY, GALACTUROCAT.PWY, HCAMHPDEG.PWY, ILEUDEG.PWY, KDO.NAGLIPASYN.PWY, LIPASYN.PWY, LPSSYN.PWY, MANNOSYL.CHITO.DOLICHOL.BIOSYNTHESIS, NONMEVIPP.PWY, ORNARGDEG.PWY, ORNDEG.PWY, P101.PWY, P162.PWY, P163.PWY, P562.PWY, P621.PWY, POLYAMINSYN3.PWY, PWY.101, PWY.1501, PWY.1622, PWY.2201, PWY.3502, PWY.3941, PWY.4221, PWY.4361, PWY.4722, PWY.5004, PWY.5044, PWY.5067, PWY.5079, PWY.5081, PWY.5088, PWY.5101, PWY.5121, PWY.5129, PWY.5178, PWY.5180, PWY.5182, PWY.5304, PWY.5306, PWY.5381, PWY.5392, PWY.5419, PWY.5420, PWY.5505, PWY.5507, PWY.5508, PWY.5509, PWY.5514, PWY.5532, PWY.5647, PWY.5654, PWY.5655, PWY.5656, PWY.5692, PWY.5705, PWY.5845, PWY.5850, PWY.5860, PWY.5862, PWY.5896, PWY.5941, PWY.5994, PWY.6074, PWY.6210, PWY.6215, PWY.6263, PWY.6269, PWY.6270, PWY.6307, PWY.6309, PWY.6313, PWY.6351, PWY.6352, PWY.6383, PWY.6396, PWY.6433, PWY.6435, PWY.6503, PWY.6505, PWY.6531, PWY.6596, PWY.6690, PWY.6749, PWY.6785, PWY.6797, PWY.6823, PWY.6829, PWY.6981, PWY.6992, PWY.7007, PWY.7036, PWY.7046, PWY.7049, PWY.7053, PWY.7059, PWY.7090, PWY.7118, PWY.7209, PWY.722, PWY.7245, PWY.7255, PWY.7283, PWY.7286, PWY.7294, PWY.7315, PWY.7337, PWY.7338, PWY.7371, PWY.7377, PWY.7384, PWY.7385, PWY.7389, PWY.7392, PWY.7409, PWY.7411, PWY.7431, PWY.7446, PWY.7456, PWY.7527, PWY.7528, PWY.7546, PWY.7560, PWY.7592, PWY.7606, PWY.7626, PWY0.1277, PWY0.41, PWY3DJ.35471, PWY490.3, PWY66.201, PWY6666.2, SPHINGOLIPID.SYN.PWY, THREOCAT.PWY, TRIGLSYN.PWY, TRYPTOPHAN.DEGRADATION.1, URDEGR.PWY, VALDEG.PWY
## 2023-03-21 22:47:57 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:47:57 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:47:57 INFO::Running selected normalization method: TSS
## 2023-03-21 22:47:57 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:47:57 INFO::Running selected transform method: LOG
## 2023-03-21 22:47:57 INFO::Running selected analysis method: LM
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 1, UNMAPPED
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 2, UNINTEGRATED
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 3, X1CMET2.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 4, ALLANTOINDEG.PWY
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 5, ANAEROFRUCAT.PWY
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 6, ANAGLYCOLYSIS.PWY
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 7, ARG.POLYAMINE.SYN
## 2023-03-21 22:47:57 INFO::Fitting model to feature number 8, ARGININE.SYN4.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 9, ARGORNPROST.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 10, ARGSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 11, ARGSYNBSUB.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 12, ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 13, ASPASN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 14, AST.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 15, BIOTIN.BIOSYNTHESIS.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 16, BRANCHED.CHAIN.AA.SYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 17, CALVIN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 18, CATECHOL.ORTHO.CLEAVAGE.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 19, CENTFERM.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 20, CITRULBIO.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 21, COA.PWY.1
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 22, COA.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 23, COBALSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 24, COLANSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 25, COMPLETE.ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 26, DAPLYSINESYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 27, DENITRIFICATION.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 28, DENOVOPURINE2.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 29, DTDPRHAMSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 30, FAO.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 31, FASYN.ELONG.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 32, FASYN.INITIAL.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 33, FERMENTATION.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 34, FOLSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 35, GALACTARDEG.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 36, GLCMANNANAUT.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 37, GLUCARDEG.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 38, GLUCARGALACTSUPER.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 39, GLUCONEO.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 40, GLUCOSE1PMETAB.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 41, GLUCUROCAT.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 42, GLUDEG.I.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 43, GLUTORN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 44, GLYCOCAT.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 45, GLYCOGENSYNTH.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 46, GLYCOL.GLYOXDEG.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 47, GLYCOLYSIS.E.D
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 48, GLYCOLYSIS.TCA.GLYOX.BYPASS
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 49, GLYCOLYSIS
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 50, GLYOXYLATE.BYPASS
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 51, GOLPDLCAT.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 52, HEME.BIOSYNTHESIS.II
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 53, HEMESYN2.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 54, HEXITOLDEGSUPER.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 55, HISDEG.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 56, HISTSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 57, HOMOSER.METSYN.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 58, HSERMETANA.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 59, ILEUSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 60, KETOGLUCONMET.PWY
## 2023-03-21 22:47:58 INFO::Fitting model to feature number 61, LACTOSECAT.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 62, LEU.DEG2.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 63, MET.SAM.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 64, METHGLYUT.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 65, METSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 66, NAD.BIOSYNTHESIS.II
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 67, NADSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 68, NAGLIPASYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 69, NONOXIPENT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 70, OANTIGEN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 71, P105.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 72, P108.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 73, P122.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 74, P124.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 75, P125.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 76, P161.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 77, P164.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 78, P165.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 79, P185.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 80, P221.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 81, P23.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 82, P4.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 83, P42.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 84, P441.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 85, P461.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 86, PANTO.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 87, PANTOSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 88, PENTOSE.P.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 89, PEPTIDOGLYCANSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 90, PHOSLIPSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 91, POLYAMSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 92, POLYISOPRENSYN.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 93, PPGPPMET.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 94, PROTOCATECHUATE.ORTHO.CLEAVAGE.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 95, PRPP.PWY
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 96, PWY.1042
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 97, PWY.1269
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 98, PWY.181
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 99, PWY.1861
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 100, PWY.241
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 101, PWY.2723
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 102, PWY.2941
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 103, PWY.2942
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 104, PWY.3001
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 105, PWY.3781
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 106, PWY.3801
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 107, PWY.3841
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 108, PWY.4041
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 109, PWY.4242
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 110, PWY.4321
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 111, PWY.4702
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 112, PWY.4981
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 113, PWY.4984
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 114, PWY.5005
## 2023-03-21 22:47:59 INFO::Fitting model to feature number 115, PWY.5022
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 116, PWY.5028
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 117, PWY.5030
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 118, PWY.5080
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 119, PWY.5083
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 120, PWY.5097
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 121, PWY.5100
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 122, PWY.5103
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 123, PWY.5104
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 124, PWY.5136
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 125, PWY.5138
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 126, PWY.5154
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 127, PWY.5173
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 128, PWY.5177
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 129, PWY.5181
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 130, PWY.5188
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 131, PWY.5189
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 132, PWY.5265
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 133, PWY.5345
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 134, PWY.5347
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 135, PWY.5367
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 136, PWY.5384
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 137, PWY.5415
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 138, PWY.5417
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 139, PWY.5431
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 140, PWY.5464
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 141, PWY.5484
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 142, PWY.561
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 143, PWY.5651
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 144, PWY.5659
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 145, PWY.5667
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 146, PWY.5675
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 147, PWY.5676
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 148, PWY.5686
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 149, PWY.5690
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 150, PWY.5695
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 151, PWY.5723
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 152, PWY.5747
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 153, PWY.5791
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 154, PWY.5837
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 155, PWY.5838
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 156, PWY.5840
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 157, PWY.5855
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 158, PWY.5856
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 159, PWY.5857
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 160, PWY.5861
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 161, PWY.5863
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 162, PWY.5870
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 163, PWY.5871
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 164, PWY.5872
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 165, PWY.5873
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 166, PWY.5897
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 167, PWY.5898
## 2023-03-21 22:48:00 INFO::Fitting model to feature number 168, PWY.5899
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 169, PWY.5910
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 170, PWY.5913
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 171, PWY.5918
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 172, PWY.5920
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 173, PWY.5971
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 174, PWY.5973
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 175, PWY.5989
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 176, PWY.6113
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 177, PWY.6121
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 178, PWY.6122
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 179, PWY.6123
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 180, PWY.6124
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 181, PWY.6125
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 182, PWY.6126
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 183, PWY.6147
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 184, PWY.6151
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 185, PWY.6163
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 186, PWY.6168
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 187, PWY.6182
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 188, PWY.6185
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 189, PWY.621
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 190, PWY.622
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 191, PWY.6277
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 192, PWY.6282
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 193, PWY.6284
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 194, PWY.6285
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 195, PWY.6305
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 196, PWY.6317
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 197, PWY.6318
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 198, PWY.6353
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 199, PWY.6385
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 200, PWY.6386
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 201, PWY.6387
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 202, PWY.6470
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 203, PWY.6471
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 204, PWY.6507
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 205, PWY.6519
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 206, PWY.6527
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 207, PWY.6545
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 208, PWY.6549
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 209, PWY.6588
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 210, PWY.6590
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 211, PWY.6595
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 212, PWY.6598
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 213, PWY.6606
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 214, PWY.6608
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 215, PWY.6609
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 216, PWY.6612
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 217, PWY.6628
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 218, PWY.6629
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 219, PWY.6630
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 220, PWY.6660
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 221, PWY.6662
## 2023-03-21 22:48:01 INFO::Fitting model to feature number 222, PWY.6700
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 223, PWY.6703
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 224, PWY.6708
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 225, PWY.6731
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 226, PWY.6737
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 227, PWY.6748
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 228, PWY.6803
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 229, PWY.6837
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 230, PWY.6859
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 231, PWY.6891
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 232, PWY.6892
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 233, PWY.6895
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 234, PWY.6897
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 235, PWY.6901
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 236, PWY.6936
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 237, PWY.6969
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 238, PWY.7003
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 239, PWY.7013
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 240, PWY.7039
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 241, PWY.7094
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 242, PWY.7111
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 243, PWY.7115
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 244, PWY.7117
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 245, PWY.7184
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 246, PWY.7187
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 247, PWY.7196
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 248, PWY.7197
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 249, PWY.7198
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 250, PWY.7199
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 251, PWY.7200
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 252, PWY.7204
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 253, PWY.7208
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 254, PWY.7210
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 255, PWY.7211
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 256, PWY.7219
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 257, PWY.7220
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 258, PWY.7221
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 259, PWY.7222
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 260, PWY.7228
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 261, PWY.7229
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 262, PWY.7234
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 263, PWY.7235
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 264, PWY.7237
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 265, PWY.7242
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 266, PWY.724
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 267, PWY.7254
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 268, PWY.7268
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 269, PWY.7269
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 270, PWY.7279
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 271, PWY.7282
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 272, PWY.7288
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 273, PWY.7323
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 274, PWY.7328
## 2023-03-21 22:48:02 INFO::Fitting model to feature number 275, PWY.7345
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 276, PWY.7357
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 277, PWY.7383
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 278, PWY.7388
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 279, PWY.7391
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 280, PWY.7400
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 281, PWY.7539
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 282, PWY.7616
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 283, PWY.7619
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 284, PWY.7663
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 285, PWY.7664
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 286, PWY.821
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 287, PWY.841
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 288, PWY.922
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 289, PWY0.1061
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 290, PWY0.1241
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 291, PWY0.1261
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 292, PWY0.1296
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 293, PWY0.1297
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 294, PWY0.1298
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 295, PWY0.1319
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 296, PWY0.1338
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 297, PWY0.1415
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 298, PWY0.1479
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 299, PWY0.1533
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 300, PWY0.1586
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 301, PWY0.162
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 302, PWY0.166
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 303, PWY0.42
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 304, PWY0.781
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 305, PWY0.845
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 306, PWY0.862
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 307, PWY0.881
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 308, PWY1F.823
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 309, PWY1G.0
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 310, PWY3O.19
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 311, PWY3O.355
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 312, PWY4FS.7
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 313, PWY4FS.8
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 314, PWY4LZ.257
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 315, PWY66.367
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 316, PWY66.388
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 317, PWY66.389
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 318, PWY66.391
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 319, PWY66.398
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 320, PWY66.399
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 321, PWY66.400
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 322, PWY66.409
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 323, PWY66.422
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 324, PWYG.321
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 325, PYRIDNUCSAL.PWY
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 326, PYRIDNUCSYN.PWY
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 327, PYRIDOXSYN.PWY
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 328, REDCITCYC
## 2023-03-21 22:48:03 INFO::Fitting model to feature number 329, RHAMCAT.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 330, RIBOSYN2.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 331, RUMP.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 332, SALVADEHYPOX.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 333, SER.GLYSYN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 334, SO4ASSIM.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 335, SULFATE.CYS.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 336, TCA.GLYOX.BYPASS
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 337, TCA
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 338, TEICHOICACID.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 339, THISYN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 340, THISYNARA.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 341, THRESYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 342, TRNA.CHARGING.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 343, TRPSYN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 344, TYRFUMCAT.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 345, UBISYN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 346, UDPNACETYLGALSYN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 347, UDPNAGSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 348, URSIN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 349, VALSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Counting total values for each feature
## 2023-03-21 22:48:04 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:04 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:04 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:04 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:04 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:04 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:04 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:48:04 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
#Checking number of bugs for the main text of the manuscript
cat("Number of differentially abundant bugs by each metadata")
## Number of differentially abundant bugs by each metadata
maaslin_all$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 100 125 162 90
## molysis qiaamp sample_type
## 185 66 288
cat("Decreased bugs by each metadata")
## Decreased bugs by each metadata
maaslin_all$results %>% subset(., .$qval < 0.1 & .$coef < 0) %>% .$metadata %>% table()
## .
## host_zero log10.Final_reads lypma molysis
## 1 31 2 2
## qiaamp sample_type
## 2 6
cat("Incrased")
## Incrased
maaslin_all$results %>% subset(., .$qval < 0.1 & .$coef > 0) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 100 124 131 88
## molysis qiaamp sample_type
## 183 64 282
#NS
# # y ~ log(final reads) + sample_type + treatment
fit_data_ns = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "Nasal swab")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:48:04 INFO::Writing function arguments to log file
## 2023-03-21 22:48:04 INFO::Verifying options selected are valid
## 2023-03-21 22:48:04 INFO::Determining format of input files
## 2023-03-21 22:48:04 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:48:04 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:48:04 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:48:04 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:48:04 INFO::Total samples in data: 35
## 2023-03-21 22:48:04 INFO::Min samples required with min abundance for a feature not to be filtered: 3.500000
## 2023-03-21 22:48:04 INFO::Total filtered features: 255
## 2023-03-21 22:48:04 INFO::Filtered feature names from abundance and prevalence filtering: X3.HYDROXYPHENYLACETATE.DEGRADATION.PWY, AEROBACTINSYN.PWY, ALL.CHORISMATE.PWY, ALLANTOINDEG.PWY, ARG.POLYAMINE.SYN, ARGDEG.PWY, AST.PWY, CATECHOL.ORTHO.CLEAVAGE.PWY, CENTFERM.PWY, COBALSYN.PWY, CODH.PWY, DENITRIFICATION.PWY, ECASYN.PWY, ENTBACSYN.PWY, FOLSYN.PWY, FUC.RHAMCAT.PWY, FUCCAT.PWY, GALACT.GLUCUROCAT.PWY, GALACTARDEG.PWY, GALACTUROCAT.PWY, GLUCARDEG.PWY, GLUCARGALACTSUPER.PWY, GLUCUROCAT.PWY, GLYCOL.GLYOXDEG.PWY, GOLPDLCAT.PWY, HCAMHPDEG.PWY, HEMESYN2.PWY, ILEUDEG.PWY, KDO.NAGLIPASYN.PWY, KETOGLUCONMET.PWY, LEU.DEG2.PWY, LIPASYN.PWY, LPSSYN.PWY, MANNOSYL.CHITO.DOLICHOL.BIOSYNTHESIS, METHGLYUT.PWY, NADSYN.PWY, NONMEVIPP.PWY, ORNARGDEG.PWY, ORNDEG.PWY, P101.PWY, P108.PWY, P122.PWY, P124.PWY, P161.PWY, P162.PWY, P163.PWY, P164.PWY, P165.PWY, P23.PWY, P441.PWY, P461.PWY, P562.PWY, P621.PWY, POLYAMINSYN3.PWY, POLYAMSYN.PWY, PROTOCATECHUATE.ORTHO.CLEAVAGE.PWY, PWY.101, PWY.1501, PWY.1622, PWY.181, PWY.2201, PWY.3502, PWY.3801, PWY.3941, PWY.4041, PWY.4221, PWY.4361, PWY.4702, PWY.4722, PWY.5004, PWY.5030, PWY.5044, PWY.5067, PWY.5079, PWY.5080, PWY.5081, PWY.5088, PWY.5101, PWY.5121, PWY.5129, PWY.5138, PWY.5178, PWY.5180, PWY.5181, PWY.5182, PWY.5304, PWY.5306, PWY.5367, PWY.5381, PWY.5392, PWY.5415, PWY.5417, PWY.5419, PWY.5420, PWY.5431, PWY.5464, PWY.5505, PWY.5507, PWY.5508, PWY.5509, PWY.5514, PWY.5532, PWY.5647, PWY.5651, PWY.5654, PWY.5655, PWY.5656, PWY.5692, PWY.5705, PWY.5723, PWY.5838, PWY.5845, PWY.5850, PWY.5860, PWY.5861, PWY.5862, PWY.5872, PWY.5896, PWY.5910, PWY.5941, PWY.5971, PWY.5994, PWY.6074, PWY.6113, PWY.6182, PWY.6185, PWY.6210, PWY.6215, PWY.622, PWY.6263, PWY.6269, PWY.6270, PWY.6284, PWY.6285, PWY.6305, PWY.6307, PWY.6309, PWY.6313, PWY.6351, PWY.6352, PWY.6383, PWY.6396, PWY.6433, PWY.6435, PWY.6470, PWY.6503, PWY.6505, PWY.6507, PWY.6531, PWY.6588, PWY.6590, PWY.6596, PWY.6598, PWY.6612, PWY.6629, PWY.6630, PWY.6660, PWY.6662, PWY.6690, PWY.6731, PWY.6748, PWY.6749, PWY.6785, PWY.6797, PWY.6803, PWY.6823, PWY.6829, PWY.6837, PWY.6891, PWY.6892, PWY.6895, PWY.6981, PWY.6992, PWY.7003, PWY.7007, PWY.7013, PWY.7036, PWY.7039, PWY.7046, PWY.7049, PWY.7053, PWY.7059, PWY.7090, PWY.7094, PWY.7118, PWY.7209, PWY.7210, PWY.722, PWY.7242, PWY.7245, PWY.7255, PWY.7268, PWY.7269, PWY.7283, PWY.7286, PWY.7288, PWY.7294, PWY.7315, PWY.7328, PWY.7337, PWY.7338, PWY.7345, PWY.7371, PWY.7377, PWY.7384, PWY.7385, PWY.7389, PWY.7391, PWY.7392, PWY.7409, PWY.7411, PWY.7431, PWY.7446, PWY.7456, PWY.7527, PWY.7528, PWY.7546, PWY.7560, PWY.7592, PWY.7606, PWY.7616, PWY.7619, PWY.7626, PWY.922, PWY0.1241, PWY0.1277, PWY0.1338, PWY0.1415, PWY0.1533, PWY0.41, PWY0.42, PWY0.881, PWY1F.823, PWY3DJ.35471, PWY3O.19, PWY3O.355, PWY490.3, PWY4LZ.257, PWY66.201, PWY66.367, PWY66.388, PWY66.391, PWY66.398, PWY6666.2, PYRIDNUCSAL.PWY, RHAMCAT.PWY, SPHINGOLIPID.SYN.PWY, THISYN.PWY, THREOCAT.PWY, TRIGLSYN.PWY, TRYPTOPHAN.DEGRADATION.1, UBISYN.PWY, URDEGR.PWY, URSIN.PWY, VALDEG.PWY
## 2023-03-21 22:48:04 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:48:04 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:48:04 INFO::Running selected normalization method: TSS
## 2023-03-21 22:48:04 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:48:04 INFO::Running selected transform method: LOG
## 2023-03-21 22:48:04 INFO::Running selected analysis method: LM
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 1, UNMAPPED
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 2, UNINTEGRATED
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 3, X1CMET2.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 4, ANAEROFRUCAT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 5, ANAGLYCOLYSIS.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 6, ARGININE.SYN4.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 7, ARGORNPROST.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 8, ARGSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 9, ARGSYNBSUB.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 10, ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 11, ASPASN.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 12, BIOTIN.BIOSYNTHESIS.PWY
## 2023-03-21 22:48:04 INFO::Fitting model to feature number 13, BRANCHED.CHAIN.AA.SYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 14, CALVIN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 15, CITRULBIO.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 16, COA.PWY.1
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 17, COA.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 18, COLANSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 19, COMPLETE.ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 20, DAPLYSINESYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 21, DENOVOPURINE2.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 22, DTDPRHAMSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 23, FAO.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 24, FASYN.ELONG.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 25, FASYN.INITIAL.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 26, FERMENTATION.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 27, GLCMANNANAUT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 28, GLUCONEO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 29, GLUCOSE1PMETAB.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 30, GLUDEG.I.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 31, GLUTORN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 32, GLYCOCAT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 33, GLYCOGENSYNTH.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 34, GLYCOLYSIS.E.D
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 35, GLYCOLYSIS.TCA.GLYOX.BYPASS
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 36, GLYCOLYSIS
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 37, GLYOXYLATE.BYPASS
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 38, HEME.BIOSYNTHESIS.II
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 39, HEXITOLDEGSUPER.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 40, HISDEG.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 41, HISTSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 42, HOMOSER.METSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 43, HSERMETANA.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 44, ILEUSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 45, LACTOSECAT.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 46, MET.SAM.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 47, METSYN.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 48, NAD.BIOSYNTHESIS.II
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 49, NAGLIPASYN.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 50, NONOXIPENT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 51, OANTIGEN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 52, P105.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 53, P125.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 54, P185.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 55, P221.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 56, P4.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 57, P42.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 58, PANTO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 59, PANTOSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 60, PENTOSE.P.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 61, PEPTIDOGLYCANSYN.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 62, PHOSLIPSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 63, POLYISOPRENSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 64, PPGPPMET.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 65, PRPP.PWY
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 66, PWY.1042
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 67, PWY.1269
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 68, PWY.1861
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 69, PWY.241
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 70, PWY.2723
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:05 INFO::Fitting model to feature number 71, PWY.2941
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 72, PWY.2942
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 73, PWY.3001
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 74, PWY.3781
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 75, PWY.3841
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 76, PWY.4242
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 77, PWY.4321
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 78, PWY.4981
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 79, PWY.4984
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 80, PWY.5005
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 81, PWY.5022
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 82, PWY.5028
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 83, PWY.5083
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 84, PWY.5097
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 85, PWY.5100
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 86, PWY.5103
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 87, PWY.5104
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 88, PWY.5136
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 89, PWY.5154
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 90, PWY.5173
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 91, PWY.5177
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 92, PWY.5188
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 93, PWY.5189
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 94, PWY.5265
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 95, PWY.5345
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 96, PWY.5347
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 97, PWY.5384
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 98, PWY.5484
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 99, PWY.561
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 100, PWY.5659
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 101, PWY.5667
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 102, PWY.5675
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 103, PWY.5676
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 104, PWY.5686
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 105, PWY.5690
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 106, PWY.5695
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 107, PWY.5747
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 108, PWY.5791
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 109, PWY.5837
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 110, PWY.5840
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 111, PWY.5855
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 112, PWY.5856
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 113, PWY.5857
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 114, PWY.5863
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 115, PWY.5870
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 116, PWY.5871
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 117, PWY.5873
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 118, PWY.5897
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 119, PWY.5898
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 120, PWY.5899
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 121, PWY.5913
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 122, PWY.5918
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 123, PWY.5920
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 124, PWY.5973
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 125, PWY.5989
## 2023-03-21 22:48:06 INFO::Fitting model to feature number 126, PWY.6121
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 127, PWY.6122
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 128, PWY.6123
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 129, PWY.6124
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 130, PWY.6125
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 131, PWY.6126
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 132, PWY.6147
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 133, PWY.6151
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 134, PWY.6163
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 135, PWY.6168
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 136, PWY.621
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 137, PWY.6277
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 138, PWY.6282
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 139, PWY.6317
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 140, PWY.6318
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 141, PWY.6353
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 142, PWY.6385
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 143, PWY.6386
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 144, PWY.6387
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 145, PWY.6471
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 146, PWY.6519
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 147, PWY.6527
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 148, PWY.6545
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 149, PWY.6549
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 150, PWY.6595
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 151, PWY.6606
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 152, PWY.6608
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 153, PWY.6609
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 154, PWY.6628
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 155, PWY.6700
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 156, PWY.6703
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 157, PWY.6708
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 158, PWY.6737
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 159, PWY.6859
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 160, PWY.6897
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 161, PWY.6901
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 162, PWY.6936
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 163, PWY.6969
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 164, PWY.7111
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 165, PWY.7115
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 166, PWY.7117
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 167, PWY.7184
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 168, PWY.7187
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 169, PWY.7196
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 170, PWY.7197
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 171, PWY.7198
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 172, PWY.7199
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 173, PWY.7200
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 174, PWY.7204
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 175, PWY.7208
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 176, PWY.7211
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 177, PWY.7219
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 178, PWY.7220
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 179, PWY.7221
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 180, PWY.7222
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 181, PWY.7228
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 182, PWY.7229
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 183, PWY.7234
## 2023-03-21 22:48:07 INFO::Fitting model to feature number 184, PWY.7235
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 185, PWY.7237
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 186, PWY.724
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 187, PWY.7254
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 188, PWY.7279
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 189, PWY.7282
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 190, PWY.7323
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 191, PWY.7357
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 192, PWY.7383
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 193, PWY.7388
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 194, PWY.7400
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 195, PWY.7539
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 196, PWY.7663
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 197, PWY.7664
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 198, PWY.821
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 199, PWY.841
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 200, PWY0.1061
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 201, PWY0.1261
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 202, PWY0.1296
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 203, PWY0.1297
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 204, PWY0.1298
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 205, PWY0.1319
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 206, PWY0.1479
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 207, PWY0.1586
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 208, PWY0.162
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 209, PWY0.166
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 210, PWY0.781
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 211, PWY0.845
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 212, PWY0.862
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 213, PWY1G.0
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 214, PWY4FS.7
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 215, PWY4FS.8
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 216, PWY66.389
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 217, PWY66.399
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 218, PWY66.400
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 219, PWY66.409
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 220, PWY66.422
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 221, PWYG.321
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 222, PYRIDNUCSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 223, PYRIDOXSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 224, REDCITCYC
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 225, RIBOSYN2.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 226, RUMP.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 227, SALVADEHYPOX.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 228, SER.GLYSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 229, SO4ASSIM.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 230, SULFATE.CYS.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 231, TCA.GLYOX.BYPASS
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 232, TCA
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 233, TEICHOICACID.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 234, THISYNARA.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 235, THRESYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 236, TRNA.CHARGING.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 237, TRPSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 238, TYRFUMCAT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 239, UDPNACETYLGALSYN.PWY
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 240, UDPNAGSYN.PWY
## 2023-03-21 22:48:08 INFO::Fitting model to feature number 241, VALSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Counting total values for each feature
## 2023-03-21 22:48:09 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:09 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:09 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:09 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:09 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:09 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:09 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:48:09 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
#Checking number of bugs for the main text of the manuscript
cat("Number of differentially abundant bugs by each metadata in NS")
## Number of differentially abundant bugs by each metadata in NS
fit_data_ns$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 6 64 67 55
## molysis qiaamp
## 64 20
#bal
# # y ~ log(final reads) + sample_type + treatment
fit_data_bal = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "BAL")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "BAL")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:48:09 INFO::Writing function arguments to log file
## 2023-03-21 22:48:09 INFO::Verifying options selected are valid
## 2023-03-21 22:48:09 INFO::Determining format of input files
## 2023-03-21 22:48:09 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:48:09 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:48:09 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:48:09 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:48:09 INFO::Total samples in data: 27
## 2023-03-21 22:48:09 INFO::Min samples required with min abundance for a feature not to be filtered: 2.700000
## 2023-03-21 22:48:09 INFO::Total filtered features: 174
## 2023-03-21 22:48:09 INFO::Filtered feature names from abundance and prevalence filtering: X3.HYDROXYPHENYLACETATE.DEGRADATION.PWY, AEROBACTINSYN.PWY, ALL.CHORISMATE.PWY, ALLANTOINDEG.PWY, ARGDEG.PWY, AST.PWY, DENITRIFICATION.PWY, ECASYN.PWY, ENTBACSYN.PWY, FUC.RHAMCAT.PWY, FUCCAT.PWY, GALACT.GLUCUROCAT.PWY, GALACTARDEG.PWY, GALACTUROCAT.PWY, GLUCARDEG.PWY, GLUCARGALACTSUPER.PWY, GLUCUROCAT.PWY, GLYCOL.GLYOXDEG.PWY, HCAMHPDEG.PWY, ILEUDEG.PWY, KDO.NAGLIPASYN.PWY, LEU.DEG2.PWY, LIPASYN.PWY, LPSSYN.PWY, MANNOSYL.CHITO.DOLICHOL.BIOSYNTHESIS, NAD.BIOSYNTHESIS.II, NONMEVIPP.PWY, ORNARGDEG.PWY, ORNDEG.PWY, P101.PWY, P122.PWY, P162.PWY, P163.PWY, P165.PWY, P562.PWY, P621.PWY, POLYAMINSYN3.PWY, PROTOCATECHUATE.ORTHO.CLEAVAGE.PWY, PWY.101, PWY.1501, PWY.1622, PWY.181, PWY.2201, PWY.3502, PWY.3941, PWY.4221, PWY.4361, PWY.4722, PWY.5004, PWY.5044, PWY.5067, PWY.5079, PWY.5081, PWY.5088, PWY.5101, PWY.5121, PWY.5129, PWY.5178, PWY.5180, PWY.5181, PWY.5182, PWY.5304, PWY.5306, PWY.5381, PWY.5392, PWY.5415, PWY.5417, PWY.5419, PWY.5420, PWY.5431, PWY.5505, PWY.5507, PWY.5508, PWY.5509, PWY.5532, PWY.5647, PWY.5654, PWY.5655, PWY.5656, PWY.5692, PWY.5705, PWY.5845, PWY.5850, PWY.5860, PWY.5862, PWY.5896, PWY.5994, PWY.6074, PWY.6182, PWY.6185, PWY.6210, PWY.6215, PWY.622, PWY.6263, PWY.6269, PWY.6270, PWY.6307, PWY.6309, PWY.6313, PWY.6352, PWY.6383, PWY.6396, PWY.6433, PWY.6435, PWY.6503, PWY.6505, PWY.6531, PWY.6596, PWY.6629, PWY.6630, PWY.6660, PWY.6662, PWY.6690, PWY.6731, PWY.6748, PWY.6749, PWY.6785, PWY.6823, PWY.6829, PWY.6837, PWY.6992, PWY.7007, PWY.7036, PWY.7046, PWY.7049, PWY.7053, PWY.7059, PWY.7090, PWY.7094, PWY.7115, PWY.7204, PWY.7209, PWY.722, PWY.7245, PWY.7255, PWY.7268, PWY.7283, PWY.7286, PWY.7294, PWY.7337, PWY.7338, PWY.7371, PWY.7377, PWY.7384, PWY.7385, PWY.7389, PWY.7392, PWY.7409, PWY.7431, PWY.7446, PWY.7527, PWY.7528, PWY.7546, PWY.7560, PWY.7592, PWY.7606, PWY.7616, PWY.7626, PWY0.1061, PWY0.1277, PWY0.1338, PWY0.41, PWY1F.823, PWY3DJ.35471, PWY490.3, PWY66.201, PWY66.367, PWY66.388, SPHINGOLIPID.SYN.PWY, THREOCAT.PWY, TRIGLSYN.PWY, TRYPTOPHAN.DEGRADATION.1, URDEGR.PWY, VALDEG.PWY
## 2023-03-21 22:48:09 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:48:09 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:48:09 INFO::Running selected normalization method: TSS
## 2023-03-21 22:48:09 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:48:09 INFO::Running selected transform method: LOG
## 2023-03-21 22:48:09 INFO::Running selected analysis method: LM
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 1, UNMAPPED
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 2, UNINTEGRATED
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 3, X1CMET2.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 4, ANAEROFRUCAT.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 5, ANAGLYCOLYSIS.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 6, ARG.POLYAMINE.SYN
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 7, ARGININE.SYN4.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 8, ARGORNPROST.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 9, ARGSYN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 10, ARGSYNBSUB.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 11, ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 12, ASPASN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 13, BIOTIN.BIOSYNTHESIS.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 14, BRANCHED.CHAIN.AA.SYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 15, CALVIN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 16, CATECHOL.ORTHO.CLEAVAGE.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 17, CENTFERM.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 18, CITRULBIO.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 19, COA.PWY.1
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 20, COA.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 21, COBALSYN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 22, CODH.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 23, COLANSYN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 24, COMPLETE.ARO.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 25, DAPLYSINESYN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 26, DENOVOPURINE2.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 27, DTDPRHAMSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 28, FAO.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 29, FASYN.ELONG.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 30, FASYN.INITIAL.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 31, FERMENTATION.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 32, FOLSYN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 33, GLCMANNANAUT.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 34, GLUCONEO.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 35, GLUCOSE1PMETAB.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 36, GLUDEG.I.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 37, GLUTORN.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 38, GLYCOCAT.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 39, GLYCOGENSYNTH.PWY
## 2023-03-21 22:48:09 INFO::Fitting model to feature number 40, GLYCOLYSIS.E.D
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 41, GLYCOLYSIS.TCA.GLYOX.BYPASS
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 42, GLYCOLYSIS
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 43, GLYOXYLATE.BYPASS
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 44, GOLPDLCAT.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 45, HEME.BIOSYNTHESIS.II
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 46, HEMESYN2.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 47, HEXITOLDEGSUPER.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 48, HISDEG.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 49, HISTSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 50, HOMOSER.METSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 51, HSERMETANA.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 52, ILEUSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 53, KETOGLUCONMET.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 54, LACTOSECAT.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 55, MET.SAM.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 56, METHGLYUT.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 57, METSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 58, NADSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 59, NAGLIPASYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 60, NONOXIPENT.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 61, OANTIGEN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 62, P105.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 63, P108.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 64, P124.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 65, P125.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 66, P161.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 67, P164.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 68, P185.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 69, P221.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 70, P23.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 71, P4.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 72, P42.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 73, P441.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 74, P461.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 75, PANTO.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 76, PANTOSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 77, PENTOSE.P.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 78, PEPTIDOGLYCANSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 79, PHOSLIPSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 80, POLYAMSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 81, POLYISOPRENSYN.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 82, PPGPPMET.PWY
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 83, PRPP.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 84, PWY.1042
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 85, PWY.1269
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 86, PWY.1861
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 87, PWY.241
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 88, PWY.2723
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 89, PWY.2941
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 90, PWY.2942
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 91, PWY.3001
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 92, PWY.3781
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 93, PWY.3801
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 94, PWY.3841
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 95, PWY.4041
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 96, PWY.4242
## 2023-03-21 22:48:10 INFO::Fitting model to feature number 97, PWY.4321
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 98, PWY.4702
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 99, PWY.4981
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 100, PWY.4984
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 101, PWY.5005
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 102, PWY.5022
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 103, PWY.5028
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 104, PWY.5030
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 105, PWY.5080
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 106, PWY.5083
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 107, PWY.5097
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 108, PWY.5100
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 109, PWY.5103
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 110, PWY.5104
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 111, PWY.5136
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 112, PWY.5138
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 113, PWY.5154
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 114, PWY.5173
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 115, PWY.5177
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 116, PWY.5188
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 117, PWY.5189
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 118, PWY.5265
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 119, PWY.5345
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 120, PWY.5347
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 121, PWY.5367
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 122, PWY.5384
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 123, PWY.5464
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 124, PWY.5484
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 125, PWY.5514
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 126, PWY.561
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 127, PWY.5651
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 128, PWY.5659
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 129, PWY.5667
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 130, PWY.5675
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 131, PWY.5676
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 132, PWY.5686
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 133, PWY.5690
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 134, PWY.5695
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 135, PWY.5723
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 136, PWY.5747
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 137, PWY.5791
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 138, PWY.5837
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 139, PWY.5838
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 140, PWY.5840
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 141, PWY.5855
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 142, PWY.5856
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 143, PWY.5857
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 144, PWY.5861
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 145, PWY.5863
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 146, PWY.5870
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 147, PWY.5871
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 148, PWY.5872
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 149, PWY.5873
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 150, PWY.5897
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 151, PWY.5898
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 152, PWY.5899
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 153, PWY.5910
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 154, PWY.5913
## 2023-03-21 22:48:11 INFO::Fitting model to feature number 155, PWY.5918
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 156, PWY.5920
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 157, PWY.5941
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 158, PWY.5971
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 159, PWY.5973
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 160, PWY.5989
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 161, PWY.6113
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 162, PWY.6121
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 163, PWY.6122
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 164, PWY.6123
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 165, PWY.6124
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 166, PWY.6125
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 167, PWY.6126
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 168, PWY.6147
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 169, PWY.6151
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 170, PWY.6163
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 171, PWY.6168
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 172, PWY.621
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 173, PWY.6277
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 174, PWY.6282
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 175, PWY.6284
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 176, PWY.6285
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 177, PWY.6305
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 178, PWY.6317
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 179, PWY.6318
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 180, PWY.6351
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 181, PWY.6353
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 182, PWY.6385
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 183, PWY.6386
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 184, PWY.6387
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 185, PWY.6470
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 186, PWY.6471
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 187, PWY.6507
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 188, PWY.6519
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 189, PWY.6527
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 190, PWY.6545
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 191, PWY.6549
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 192, PWY.6588
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 193, PWY.6590
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 194, PWY.6595
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 195, PWY.6598
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 196, PWY.6606
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 197, PWY.6608
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 198, PWY.6609
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 199, PWY.6612
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 200, PWY.6628
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 201, PWY.6700
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 202, PWY.6703
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 203, PWY.6708
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 204, PWY.6737
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 205, PWY.6797
## 2023-03-21 22:48:12 INFO::Fitting model to feature number 206, PWY.6803
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 207, PWY.6859
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 208, PWY.6891
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 209, PWY.6892
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 210, PWY.6895
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 211, PWY.6897
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 212, PWY.6901
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 213, PWY.6936
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 214, PWY.6969
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 215, PWY.6981
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 216, PWY.7003
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 217, PWY.7013
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 218, PWY.7039
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 219, PWY.7111
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 220, PWY.7117
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 221, PWY.7118
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 222, PWY.7184
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 223, PWY.7187
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 224, PWY.7196
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 225, PWY.7197
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 226, PWY.7198
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 227, PWY.7199
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 228, PWY.7200
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 229, PWY.7208
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 230, PWY.7210
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 231, PWY.7211
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 232, PWY.7219
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 233, PWY.7220
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 234, PWY.7221
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 235, PWY.7222
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 236, PWY.7228
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 237, PWY.7229
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 238, PWY.7234
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 239, PWY.7235
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 240, PWY.7237
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 241, PWY.7242
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 242, PWY.724
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 243, PWY.7254
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 244, PWY.7269
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 245, PWY.7279
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 246, PWY.7282
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 247, PWY.7288
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 248, PWY.7315
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 249, PWY.7323
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 250, PWY.7328
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 251, PWY.7345
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 252, PWY.7357
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 253, PWY.7383
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 254, PWY.7388
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 255, PWY.7391
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 256, PWY.7400
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 257, PWY.7411
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 258, PWY.7456
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 259, PWY.7539
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 260, PWY.7619
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 261, PWY.7663
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 262, PWY.7664
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 263, PWY.821
## 2023-03-21 22:48:13 INFO::Fitting model to feature number 264, PWY.841
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 265, PWY.922
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 266, PWY0.1241
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 267, PWY0.1261
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 268, PWY0.1296
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 269, PWY0.1297
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 270, PWY0.1298
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 271, PWY0.1319
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 272, PWY0.1415
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 273, PWY0.1479
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 274, PWY0.1533
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 275, PWY0.1586
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 276, PWY0.162
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 277, PWY0.166
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 278, PWY0.42
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 279, PWY0.781
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 280, PWY0.845
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 281, PWY0.862
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 282, PWY0.881
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 283, PWY1G.0
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 284, PWY3O.19
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 285, PWY3O.355
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 286, PWY4FS.7
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 287, PWY4FS.8
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 288, PWY4LZ.257
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 289, PWY66.389
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 290, PWY66.391
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 291, PWY66.398
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 292, PWY66.399
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 293, PWY66.400
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 294, PWY66.409
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 295, PWY66.422
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 296, PWY6666.2
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 297, PWYG.321
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 298, PYRIDNUCSAL.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 299, PYRIDNUCSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 300, PYRIDOXSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 301, REDCITCYC
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 302, RHAMCAT.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 303, RIBOSYN2.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 304, RUMP.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 305, SALVADEHYPOX.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 306, SER.GLYSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 307, SO4ASSIM.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 308, SULFATE.CYS.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 309, TCA.GLYOX.BYPASS
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 310, TCA
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 311, TEICHOICACID.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 312, THISYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 313, THISYNARA.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 314, THRESYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 315, TRNA.CHARGING.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 316, TRPSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 317, TYRFUMCAT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 318, UBISYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 319, UDPNACETYLGALSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 320, UDPNAGSYN.PWY
## 2023-03-21 22:48:14 INFO::Fitting model to feature number 321, URSIN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 322, VALSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:15 INFO::Counting total values for each feature
## 2023-03-21 22:48:15 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:15 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:15 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:15 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:15 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:15 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:15 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:48:15 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
cat("Number of differentially abundant bugs by each metadata in BAL")
## Number of differentially abundant bugs by each metadata in BAL
fit_data_bal$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 3 12 103 10
## molysis qiaamp
## 14 4
#sputum
# # y ~ log(final reads) + sample_type + treatment
fit_data_spt = Maaslin2(input_data = otu_table(subset_samples(phyloseq_rel_nz, sample_type == "Sputum")) %>% t %>% data.frame(),
input_metadata = sample_data(subset_samples(phyloseq_rel_nz, sample_type == "Sputum")) %>% data.frame(),
output = "/Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output",
fixed_effects = c("log10.Final_reads","lypma", "benzonase", "host_zero", "molysis", "qiaamp"),
transform = "LOG", #default
normalization = "TSS", # default
random_effects = c("subject_id"),
plot_heatmap = F,
plot_scatter = F)
## [1] "Warning: Deleting existing log file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/maaslin2.log"
## 2023-03-21 22:48:15 INFO::Writing function arguments to log file
## 2023-03-21 22:48:15 INFO::Verifying options selected are valid
## 2023-03-21 22:48:15 INFO::Determining format of input files
## 2023-03-21 22:48:15 INFO::Input format is data samples as rows and metadata samples as rows
## 2023-03-21 22:48:15 INFO::Formula for random effects: expr ~ (1 | subject_id)
## 2023-03-21 22:48:15 INFO::Formula for fixed effects: expr ~ log10.Final_reads + lypma + benzonase + host_zero + molysis + qiaamp
## 2023-03-21 22:48:15 INFO::Filter data based on min abundance and min prevalence
## 2023-03-21 22:48:15 INFO::Total samples in data: 30
## 2023-03-21 22:48:15 INFO::Min samples required with min abundance for a feature not to be filtered: 3.000000
## 2023-03-21 22:48:15 INFO::Total filtered features: 116
## 2023-03-21 22:48:15 INFO::Filtered feature names from abundance and prevalence filtering: X3.HYDROXYPHENYLACETATE.DEGRADATION.PWY, AEROBACTINSYN.PWY, ALL.CHORISMATE.PWY, CODH.PWY, ECASYN.PWY, KDO.NAGLIPASYN.PWY, MANNOSYL.CHITO.DOLICHOL.BIOSYNTHESIS, P101.PWY, P163.PWY, P562.PWY, PWY.101, PWY.1501, PWY.1622, PWY.2201, PWY.3502, PWY.3941, PWY.4221, PWY.4361, PWY.4722, PWY.5004, PWY.5044, PWY.5067, PWY.5079, PWY.5080, PWY.5081, PWY.5088, PWY.5101, PWY.5129, PWY.5304, PWY.5306, PWY.5381, PWY.5392, PWY.5419, PWY.5420, PWY.5507, PWY.5514, PWY.5532, PWY.5647, PWY.5654, PWY.5655, PWY.5692, PWY.5845, PWY.5850, PWY.5860, PWY.5862, PWY.5870, PWY.5871, PWY.5872, PWY.5873, PWY.5896, PWY.5941, PWY.5994, PWY.6074, PWY.6210, PWY.6263, PWY.6269, PWY.6309, PWY.6351, PWY.6352, PWY.6383, PWY.6396, PWY.6433, PWY.6435, PWY.6503, PWY.6505, PWY.6596, PWY.6598, PWY.6749, PWY.6785, PWY.6797, PWY.6823, PWY.6829, PWY.6981, PWY.6992, PWY.7007, PWY.7036, PWY.7049, PWY.7053, PWY.7059, PWY.7118, PWY.7204, PWY.7209, PWY.722, PWY.7235, PWY.7245, PWY.7255, PWY.7283, PWY.7286, PWY.7294, PWY.7337, PWY.7338, PWY.7371, PWY.7377, PWY.7384, PWY.7389, PWY.7409, PWY.7411, PWY.7456, PWY.7527, PWY.7528, PWY.7546, PWY.7592, PWY.7606, PWY.7619, PWY.7626, PWY0.41, PWY3DJ.35471, PWY3O.19, PWY490.3, PWY66.201, PWY6666.2, SPHINGOLIPID.SYN.PWY, THREOCAT.PWY, TRIGLSYN.PWY, TRYPTOPHAN.DEGRADATION.1, URDEGR.PWY
## 2023-03-21 22:48:15 INFO::Total filtered features with variance filtering: 0
## 2023-03-21 22:48:15 INFO::Filtered feature names from variance filtering:
## 2023-03-21 22:48:15 INFO::Running selected normalization method: TSS
## 2023-03-21 22:48:15 INFO::Applying z-score to standardize continuous metadata
## 2023-03-21 22:48:15 INFO::Running selected transform method: LOG
## 2023-03-21 22:48:15 INFO::Running selected analysis method: LM
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 1, UNMAPPED
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 2, UNINTEGRATED
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 3, X1CMET2.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 4, ALLANTOINDEG.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 5, ANAEROFRUCAT.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 6, ANAGLYCOLYSIS.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 7, ARG.POLYAMINE.SYN
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 8, ARGDEG.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 9, ARGININE.SYN4.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 10, ARGORNPROST.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 11, ARGSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 12, ARGSYNBSUB.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 13, ARO.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 14, ASPASN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 15, AST.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 16, BIOTIN.BIOSYNTHESIS.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 17, BRANCHED.CHAIN.AA.SYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 18, CALVIN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 19, CATECHOL.ORTHO.CLEAVAGE.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 20, CENTFERM.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 21, CITRULBIO.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 22, COA.PWY.1
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 23, COA.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 24, COBALSYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 25, COLANSYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 26, COMPLETE.ARO.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 27, DAPLYSINESYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 28, DENITRIFICATION.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 29, DENOVOPURINE2.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 30, DTDPRHAMSYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 31, ENTBACSYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 32, FAO.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 33, FASYN.ELONG.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 34, FASYN.INITIAL.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 35, FERMENTATION.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 36, FOLSYN.PWY
## 2023-03-21 22:48:15 INFO::Fitting model to feature number 37, FUC.RHAMCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 38, FUCCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 39, GALACT.GLUCUROCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 40, GALACTARDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 41, GALACTUROCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 42, GLCMANNANAUT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 43, GLUCARDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 44, GLUCARGALACTSUPER.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 45, GLUCONEO.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 46, GLUCOSE1PMETAB.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 47, GLUCUROCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 48, GLUDEG.I.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 49, GLUTORN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 50, GLYCOCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 51, GLYCOGENSYNTH.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 52, GLYCOL.GLYOXDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 53, GLYCOLYSIS.E.D
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 54, GLYCOLYSIS.TCA.GLYOX.BYPASS
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 55, GLYCOLYSIS
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 56, GLYOXYLATE.BYPASS
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 57, GOLPDLCAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 58, HCAMHPDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 59, HEME.BIOSYNTHESIS.II
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 60, HEMESYN2.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 61, HEXITOLDEGSUPER.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 62, HISDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 63, HISTSYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 64, HOMOSER.METSYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 65, HSERMETANA.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 66, ILEUDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 67, ILEUSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 68, KETOGLUCONMET.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 69, LACTOSECAT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 70, LEU.DEG2.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 71, LIPASYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 72, LPSSYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 73, MET.SAM.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 74, METHGLYUT.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 75, METSYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 76, NAD.BIOSYNTHESIS.II
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 77, NADSYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 78, NAGLIPASYN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 79, NONMEVIPP.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 80, NONOXIPENT.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 81, OANTIGEN.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 82, ORNARGDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 83, ORNDEG.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 84, P105.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 85, P108.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 86, P122.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 87, P124.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 88, P125.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 89, P161.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 90, P162.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 91, P164.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 92, P165.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 93, P185.PWY
## 2023-03-21 22:48:16 INFO::Fitting model to feature number 94, P221.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 95, P23.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 96, P4.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 97, P42.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 98, P441.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 99, P461.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 100, P621.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 101, PANTO.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 102, PANTOSYN.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 103, PENTOSE.P.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 104, PEPTIDOGLYCANSYN.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 105, PHOSLIPSYN.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 106, POLYAMINSYN3.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 107, POLYAMSYN.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 108, POLYISOPRENSYN.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 109, PPGPPMET.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 110, PROTOCATECHUATE.ORTHO.CLEAVAGE.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 111, PRPP.PWY
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 112, PWY.1042
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 113, PWY.1269
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 114, PWY.181
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 115, PWY.1861
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 116, PWY.241
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 117, PWY.2723
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 118, PWY.2941
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 119, PWY.2942
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 120, PWY.3001
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 121, PWY.3781
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 122, PWY.3801
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 123, PWY.3841
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 124, PWY.4041
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 125, PWY.4242
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 126, PWY.4321
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 127, PWY.4702
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 128, PWY.4981
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 129, PWY.4984
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 130, PWY.5005
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 131, PWY.5022
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 132, PWY.5028
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 133, PWY.5030
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 134, PWY.5083
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 135, PWY.5097
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 136, PWY.5100
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 137, PWY.5103
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 138, PWY.5104
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 139, PWY.5121
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 140, PWY.5136
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 141, PWY.5138
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 142, PWY.5154
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 143, PWY.5173
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 144, PWY.5177
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 145, PWY.5178
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 146, PWY.5180
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 147, PWY.5181
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 148, PWY.5182
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 149, PWY.5188
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 150, PWY.5189
## 2023-03-21 22:48:17 INFO::Fitting model to feature number 151, PWY.5265
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 152, PWY.5345
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 153, PWY.5347
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 154, PWY.5367
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 155, PWY.5384
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 156, PWY.5415
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 157, PWY.5417
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 158, PWY.5431
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 159, PWY.5464
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 160, PWY.5484
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 161, PWY.5505
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 162, PWY.5508
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 163, PWY.5509
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 164, PWY.561
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 165, PWY.5651
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 166, PWY.5656
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 167, PWY.5659
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 168, PWY.5667
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 169, PWY.5675
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 170, PWY.5676
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 171, PWY.5686
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 172, PWY.5690
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 173, PWY.5695
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 174, PWY.5705
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 175, PWY.5723
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 176, PWY.5747
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 177, PWY.5791
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 178, PWY.5837
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 179, PWY.5838
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 180, PWY.5840
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 181, PWY.5855
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 182, PWY.5856
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 183, PWY.5857
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 184, PWY.5861
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 185, PWY.5863
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 186, PWY.5897
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 187, PWY.5898
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 188, PWY.5899
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 189, PWY.5910
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 190, PWY.5913
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 191, PWY.5918
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 192, PWY.5920
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 193, PWY.5971
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 194, PWY.5973
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 195, PWY.5989
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 196, PWY.6113
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 197, PWY.6121
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 198, PWY.6122
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 199, PWY.6123
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 200, PWY.6124
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 201, PWY.6125
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 202, PWY.6126
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 203, PWY.6147
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 204, PWY.6151
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 205, PWY.6163
## 2023-03-21 22:48:18 INFO::Fitting model to feature number 206, PWY.6168
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 207, PWY.6182
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 208, PWY.6185
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 209, PWY.6215
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 210, PWY.621
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 211, PWY.622
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 212, PWY.6270
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 213, PWY.6277
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 214, PWY.6282
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 215, PWY.6284
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 216, PWY.6285
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 217, PWY.6305
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 218, PWY.6307
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 219, PWY.6313
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 220, PWY.6317
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 221, PWY.6318
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 222, PWY.6353
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 223, PWY.6385
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 224, PWY.6386
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 225, PWY.6387
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 226, PWY.6470
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 227, PWY.6471
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 228, PWY.6507
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 229, PWY.6519
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 230, PWY.6527
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 231, PWY.6531
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 232, PWY.6545
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 233, PWY.6549
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 234, PWY.6588
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 235, PWY.6590
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 236, PWY.6595
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 237, PWY.6606
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 238, PWY.6608
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 239, PWY.6609
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 240, PWY.6612
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 241, PWY.6628
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 242, PWY.6629
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 243, PWY.6630
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 244, PWY.6660
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 245, PWY.6662
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 246, PWY.6690
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 247, PWY.6700
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 248, PWY.6703
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 249, PWY.6708
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 250, PWY.6731
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 251, PWY.6737
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 252, PWY.6748
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 253, PWY.6803
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 254, PWY.6837
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 255, PWY.6859
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 256, PWY.6891
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 257, PWY.6892
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 258, PWY.6895
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 259, PWY.6897
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 260, PWY.6901
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 261, PWY.6936
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 262, PWY.6969
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 263, PWY.7003
## 2023-03-21 22:48:19 INFO::Fitting model to feature number 264, PWY.7013
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 265, PWY.7039
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 266, PWY.7046
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 267, PWY.7090
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 268, PWY.7094
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 269, PWY.7111
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 270, PWY.7115
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 271, PWY.7117
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 272, PWY.7184
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 273, PWY.7187
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 274, PWY.7196
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 275, PWY.7197
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 276, PWY.7198
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 277, PWY.7199
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 278, PWY.7200
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 279, PWY.7208
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 280, PWY.7210
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 281, PWY.7211
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 282, PWY.7219
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 283, PWY.7220
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 284, PWY.7221
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 285, PWY.7222
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 286, PWY.7228
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 287, PWY.7229
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 288, PWY.7234
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 289, PWY.7237
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 290, PWY.7242
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 291, PWY.724
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 292, PWY.7254
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 293, PWY.7268
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 294, PWY.7269
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 295, PWY.7279
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 296, PWY.7282
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 297, PWY.7288
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 298, PWY.7315
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 299, PWY.7323
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 300, PWY.7328
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 301, PWY.7345
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 302, PWY.7357
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 303, PWY.7383
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 304, PWY.7385
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 305, PWY.7388
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 306, PWY.7391
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 307, PWY.7392
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 308, PWY.7400
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 309, PWY.7431
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 310, PWY.7446
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 311, PWY.7539
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 312, PWY.7560
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 313, PWY.7616
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 314, PWY.7663
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 315, PWY.7664
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 316, PWY.821
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 317, PWY.841
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 318, PWY.922
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 319, PWY0.1061
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 320, PWY0.1241
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 321, PWY0.1261
## 2023-03-21 22:48:20 INFO::Fitting model to feature number 322, PWY0.1277
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 323, PWY0.1296
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 324, PWY0.1297
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 325, PWY0.1298
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 326, PWY0.1319
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 327, PWY0.1338
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 328, PWY0.1415
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 329, PWY0.1479
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 330, PWY0.1533
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 331, PWY0.1586
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 332, PWY0.162
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 333, PWY0.166
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 334, PWY0.42
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 335, PWY0.781
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 336, PWY0.845
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 337, PWY0.862
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 338, PWY0.881
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 339, PWY1F.823
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 340, PWY1G.0
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 341, PWY3O.355
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 342, PWY4FS.7
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 343, PWY4FS.8
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 344, PWY4LZ.257
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 345, PWY66.367
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 346, PWY66.388
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 347, PWY66.389
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 348, PWY66.391
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 349, PWY66.398
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 350, PWY66.399
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 351, PWY66.400
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 352, PWY66.409
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 353, PWY66.422
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 354, PWYG.321
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 355, PYRIDNUCSAL.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 356, PYRIDNUCSYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 357, PYRIDOXSYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 358, REDCITCYC
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 359, RHAMCAT.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 360, RIBOSYN2.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 361, RUMP.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 362, SALVADEHYPOX.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 363, SER.GLYSYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 364, SO4ASSIM.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 365, SULFATE.CYS.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 366, TCA.GLYOX.BYPASS
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 367, TCA
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 368, TEICHOICACID.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 369, THISYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 370, THISYNARA.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 371, THRESYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 372, TRNA.CHARGING.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 373, TRPSYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 374, TYRFUMCAT.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 375, UBISYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 376, UDPNACETYLGALSYN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 377, UDPNAGSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 378, URSIN.PWY
## 2023-03-21 22:48:21 INFO::Fitting model to feature number 379, VALDEG.PWY
## 2023-03-21 22:48:22 INFO::Fitting model to feature number 380, VALSYN.PWY
## boundary (singular) fit: see help('isSingular')
## 2023-03-21 22:48:22 INFO::Counting total values for each feature
## 2023-03-21 22:48:22 WARNING::Deleting existing residuals file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:22 INFO::Writing residuals to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/residuals.rds
## 2023-03-21 22:48:22 WARNING::Deleting existing fitted file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:22 INFO::Writing fitted values to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/fitted.rds
## 2023-03-21 22:48:22 WARNING::Deleting existing ranef file: /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:22 INFO::Writing extracted random effects to file /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/ranef.rds
## 2023-03-21 22:48:22 INFO::Writing all results to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/all_results.tsv
## 2023-03-21 22:48:22 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): /Users/minsikkim/Dropbox (Partners HealthCare)/@minsik/project_host_dna_depletion/Data/maaslin_output/significant_results.tsv
cat("Number of differentially abundant bugs by each metadata in sputum")
## Number of differentially abundant bugs by each metadata in sputum
fit_data_spt$results %>% subset(., .$qval < 0.1) %>% .$metadata %>% table()
## .
## benzonase host_zero log10.Final_reads lypma
## 142 108 23 140
## molysis qiaamp
## 111 114
cat("\nAdding control data to both all and stratified MaAslin will help identify the actual contaminant\n")
##
## Adding control data to both all and stratified MaAslin will help identify the actual contaminant
#Making significance table for figure
# Define a function to make species names italicized
species_italic <- function(data) {
names <- gsub("_", " ", rownames(data))
names <- gsub("[]]|[[]", "", names)
names <- gsub(" sp", " sp.", names)
names <- gsub(" sp.", "* sp.", names)
names <- gsub(" group", "* group.", names)
names <- ifelse(grepl("[*]", names), paste("*", names, sep = ""), paste("*", names, "*", sep = ""))
rownames(data) <- names
data
}
#volcano plot of MaAslin with all data
ggplot(maaslin_all$results, aes(y = -log10(qval), x = coef, col = metadata)) +
theme_classic(base_family = "serif") +
#labs(tag = "A") +
ggtitle("MaAslin with treatment types")+
geom_point(size = 2) +
xlab("MaAslin coefficient") +
ylab("-log<sub>10</sub>(*q*-value)") +
geom_hline(yintercept = 1, col = "gray") +
geom_vline(xintercept = 0, col = "gray") +
geom_richtext(aes( 4, 8, label = "*q*-value = 0.1, fold-change = 0", vjust = -1, fontface = 1), col = "grey", size = 3, family = "serif") +
theme(legend.position = "top", axis.title.y = ggtext::element_markdown()) +
scale_color_manual(values = c("#4daf4a", "#984ea3", "#f781bf", "#377eb8", "#ff7f00", "#ffff33", "#a65628")) +
guides(col = guide_legend(title = "Fixed effects", title.position = "top", nrow = 3))
# Make a significance table for each figure (top 20 taxa)
fit_data_spt$results
make_sig_table <- function(data) {
sig_data <- spread(data$results[order(data$results$qval), c("feature", "metadata", "qval")], metadata, qval)
sig_data$min <- apply(sig_data, 1, FUN = min)
sig_data <- sig_data[order(sig_data$min),] %>% .[1:20,]
sig_data[["feature"]] <- ifelse(sig_data[["feature"]] == "X.Collinsella._massiliensis", "[Collinsella]_massiliensis", sig_data[["feature"]])
sig_data_italic <- sig_data %>% rownames_to_column(var = "-") %>% column_to_rownames(var = "feature") %>% species_italic %>% select(-c("-", "min", "log10.Final_reads"))
sig_data_sig <- ifelse(sig_data_italic < 0.1, "*", NA)
return(list(data = sig_data, data_italic = sig_data_italic, data_sig = sig_data_sig))
}
fit_data_bal <- make_sig_table(fit_data_bal)
fit_data_ns <- make_sig_table(fit_data_ns)
fit_data_spt <- make_sig_table(fit_data_spt)
fit_data_ns$data
cat("\n\nStratified Masslin - significant of each but by treatment in BAL\n")
##
##
## Stratified Masslin - significant of each but by treatment in BAL
fit_data_bal$data_sig
## benzonase host_zero lypma molysis qiaamp
## *FOLSYN.PWY* NA NA NA NA NA
## *PWY.6612* NA NA NA NA NA
## *PWY.841* NA NA NA NA NA
## *TRNA.CHARGING.PWY* NA NA NA NA NA
## *PWY.5189* NA NA NA NA NA
## *DENOVOPURINE2.PWY* NA NA NA NA NA
## *GLCMANNANAUT.PWY* NA NA NA NA NA
## *PWY66.400* NA NA NA NA NA
## *PWY.7187* NA NA NA NA NA
## *PWY.6123* "*" "*" NA "*" NA
## *GLYCOGENSYNTH.PWY* NA NA NA NA NA
## *ANAGLYCOLYSIS.PWY* NA NA NA NA NA
## *P441.PWY* NA NA NA NA NA
## *LACTOSECAT.PWY* NA NA NA "*" NA
## *PWY.5667* NA NA NA NA NA
## *PWY0.1319* NA NA NA NA NA
## *PWY0.42* NA NA NA NA NA
## *PWY.5695* NA NA NA NA NA
## *PWY.5173* NA NA NA NA NA
## *PWY.6595* NA NA NA NA NA
cat("\n\nStratified Masslin - significant of each but by treatment in nasal swab\n")
##
##
## Stratified Masslin - significant of each but by treatment in nasal swab
fit_data_ns$data_sig
## benzonase host_zero lypma molysis qiaamp
## *PPGPPMET.PWY* "*" "*" "*" "*" "*"
## *PWY.7228* NA NA NA NA NA
## *PWY0.166* NA NA NA NA NA
## *PWY.5871* NA NA NA NA "*"
## *PWY.5873* NA NA NA NA "*"
## *PWY0.1586* "*" "*" "*" "*" "*"
## *PWY.7663* NA "*" "*" "*" NA
## *PWY0.1479* "*" "*" "*" "*" "*"
## *PWY.7221* NA NA NA NA NA
## *PWY.5686* NA NA NA NA NA
## *PWY.1269* "*" "*" "*" "*" "*"
## *PWY.5136* NA "*" "*" "*" "*"
## *FAO.PWY* NA "*" "*" "*" "*"
## *PWY.6125* NA NA NA NA NA
## *PWY.6385* NA NA NA NA NA
## *PWY.5347* NA "*" "*" "*" "*"
## *PWY.7184* NA NA NA NA NA
## *PWY.6519* "*" "*" "*" "*" "*"
## *OANTIGEN.PWY* NA "*" "*" "*" NA
## *PWY.6318* "*" "*" "*" "*" "*"
cat("\n\nStratified Masslin - significant of each but by treatment in Sputum\n")
##
##
## Stratified Masslin - significant of each but by treatment in Sputum
fit_data_spt$data_sig
## benzonase host_zero lypma molysis qiaamp
## *PWY.5100* "*" "*" "*" "*" "*"
## *PWY0.162* "*" "*" "*" "*" "*"
## *PWY.6609* "*" "*" "*" "*" "*"
## *PWY.6859* "*" "*" "*" "*" "*"
## *PWY.6386* "*" "*" "*" "*" "*"
## *PWY.5910* "*" "*" "*" "*" "*"
## *UDPNAGSYN.PWY* "*" "*" "*" "*" "*"
## *PWY.5103* "*" "*" "*" "*" "*"
## *LACTOSECAT.PWY* "*" "*" "*" "*" "*"
## *PEPTIDOGLYCANSYN.PWY* "*" "*" "*" "*" "*"
## *PWY.6121* "*" "*" "*" "*" "*"
## *BRANCHED.CHAIN.AA.SYN.PWY* "*" "*" "*" "*" "*"
## *PWY.5840* "*" "*" "*" "*" "*"
## *PWY.5667* "*" "*" "*" "*" "*"
## *PWY.6387* "*" "*" "*" "*" "*"
## *PWY.6122* "*" "*" "*" "*" "*"
## *PWY.6277* "*" "*" "*" "*" "*"
## *PWY0.1296* "*" "*" "*" "*" "*"
## *PWY66.400* "*" "*" "*" "*" "*"
## *FOLSYN.PWY* "*" "*" "*" "*" "*"