MaAsLin2 User Manual

MaAsLin2 is the next generation of MaAsLin (Microbiome Multivariable Association with Linear Models).

MaAsLin2 is comprehensive R package for efficiently determining multivariable association between clinical metadata and microbial meta-omics features. MaAsLin2 relies on general linear models to accommodate most modern epidemiological study designs, including cross-sectional and longitudinal, along with a variety of filtering, normalization, and transform methods.

If you use the MaAsLin2 software, please cite our manuscript:

Mallick H, Rahnavard A, McIver LJ, Ma S, Zhang Y, Nguyen LH, Tickle TL, Weingart G, Ren B, Schwager EH, Chatterjee S, Thompson KN, Wilkinson JE, Subramanian A, Lu Y, Waldron L, Paulson JN, Franzosa EA, Bravo HC, Huttenhower C (2021). Multivariable Association Discovery in Population-scale Meta-omics Studies. PLoS Computational Biology, 17(11):e1009442.

Check out the MaAsLin 2 tutorial for an overview of analysis options.

If you have questions, please direct it to :
MaAsLin2 Forum
Google Groups (Read only)


Description

MaAsLin2 finds associations between microbiome multi-omics features and complex metadata in population-scale epidemiological studies. The software includes multiple analysis methods (with support for multiple covariates and repeated measures), filtering, normalization, and transform options to customize analysis for your specific study.

Requirements

MaAsLin2 is an R package that can be run on the command line or as an R function.

Installation

MaAsLin2 can be run from the command line or as an R function. If only running from the command line, you do not need to install the MaAsLin2 package but you will need to install the MaAsLin2 dependencies.

From command line

  1. Download the source: MaAsLin2.tar.gz
  2. Decompress the download:
    • $ tar xzvf maaslin2.tar.gz
  3. Install the Bioconductor dependencies edgeR and metagenomeSeq.
  4. Install the CRAN dependencies:
    • $ R -q -e "install.packages(c('lmerTest','pbapply','car','dplyr','vegan','chemometrics','ggplot2','pheatmap','hash','logging','data.table','glmmTMB','MASS','cplm','pscl'), repos='http://cran.r-project.org')"
  5. Install the MaAsLin2 package (only r,equired if running as an R function):
    • $ R CMD INSTALL maaslin2

From R

Install Bioconductor and then install Maaslin2

if(!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("Maaslin2")

How to Run

MaAsLin2 can be run from the command line or as an R function. Both methods require the same arguments, have the same options, and use the same default settings.

Input Files

MaAsLin2 requires two input files.

  1. Data (or features) file
    • This file is tab-delimited.
    • Formatted with features as columns and samples as rows.
    • The transpose of this format is also okay.
    • Possible features in this file include taxonomy or genes.
  2. Metadata file
    • This file is tab-delimited.
    • Formatted with features as columns and samples as rows.
    • The transpose of this format is also okay.
    • Possible metadata in this file include gender or age.

The data file can contain samples not included in the metadata file (along with the reverse case). For both cases, those samples not included in both files will be removed from the analysis. Also the samples do not need to be in the same order in the two files.

NOTE: If running MaAsLin2 as a function, the data and metadata inputs can be of type data.frame instead of a path to a file.

Output Files

MaAsLin2 generates two types of output files: data and visualization.

  1. Data output files
    • all_results.tsv
      • This includes the same data as the data.frame returned.
      • This file contains all results ordered by increasing q-value.
      • The first columns are the metadata and feature names.
      • The next two columns are the value and coefficient from the model.
      • The next column is the standard deviation from the model.
      • The N column is the total number of data points.
      • The N.not.zero column is the total of non-zero data points.
      • The pvalue from the calculation is the second to last column.
      • The qvalue is computed with p.adjust with the correction method.
    • significant_results.tsv
      • This file is a subset of the results in the first file.
      • It only includes associations with q-values <= to the threshold.
    • ``features```
      • This folder includes the filtered, normalized, and transformed versions of the input feature table.
      • These steps are performed sequentially in the above order.
      • If an option is set such that a step does not change the data, the resulting table will still be output.
    • models.rds
      • This file contains a list with every model fit object.
      • It will only be generated if save_models is set to TRUE.
    • residuals.rds
      • This file contains a data frame with residuals for each feature.
    • fitted.rds
      • This file contains a data frame with fitted values for each feature.
    • ranef.rds
      • This file contains a data frame with extracted random effects for each feature (when random effects are specified).
    • maaslin2.log
      • This file contains all log information for the run.
      • It includes all settings, warnings, errors, and steps run.
  2. Visualization output files
    • heatmap.pdf
      • This file contains a heatmap of the significant associations.
    • [a-z/0-9]+.pdf
      • A plot is generated for each significant association.
      • Scatter plots are used for continuous metadata.
      • Box plots are for categorical data.
      • Data points plotted are after filtering but prior to normalization and transform.

Run a Demo

Example input files can be found in the inst/extdata folder of the MaAsLin2 source. The files provided were generated from the HMP2 data which can be downloaded from https://ibdmdb.org/ .

HMP2_taxonomy.tsv: is a tab-demilited file with species as columns and samples as rows. It is a subset of the taxonomy file so it just includes the species abundances for all samples.

HMP2_metadata.tsv: is a tab-delimited file with samples as rows and metadata as columns. It is a subset of the metadata file so that it just includes some of the fields.

Command line

$ Maaslin2.R --fixed_effects="diagnosis,dysbiosisnonIBD,dysbiosisUC,dysbiosisCD,antibiotics,age" --random_effects="site,subject" --standardize=FALSE inst/extdata/HMP2_taxonomy.tsv inst/extdata/HMP2_metadata.tsv demo_output

  • Make sure to provide the full path to the MaAsLin2 executable (ie ./R/Maaslin2.R).
  • In the demo command:
    • HMP2_taxonomy.tsv is the path to your data (or features) file
    • HMP2_metadata.tsv is the path to your metadata file
    • demo_output is the path to the folder to write the output

In R

library(Maaslin2)
input_data <- system.file(
    'extdata','HMP2_taxonomy.tsv', package="Maaslin2")
input_metadata <-system.file(
    'extdata','HMP2_metadata.tsv', package="Maaslin2")
fit_data <- Maaslin2(
    input_data, input_metadata, 'demo_output',
    fixed_effects = c('diagnosis', 'dysbiosisnonIBD','dysbiosisUC','dysbiosisCD', 'antibiotics', 'age'),
    random_effects = c('site', 'subject'),
    reference = "diagnosis,nonIBD",
    standardize = FALSE)
## [1] "Creating output folder"
## [1] "Creating output feature tables folder"
## [1] "Creating output fits folder"
## [1] "Creating output figures folder"
## 2024-05-01 19:23:12.891972 INFO::Writing function arguments to log file
## 2024-05-01 19:23:12.943677 INFO::Verifying options selected are valid
## 2024-05-01 19:23:12.980738 INFO::Determining format of input files
## 2024-05-01 19:23:12.982832 INFO::Input format is data samples as rows and metadata samples as rows
## 2024-05-01 19:23:12.990101 INFO::Formula for random effects: expr ~ (1 | site) + (1 | subject)
## 2024-05-01 19:23:12.992037 INFO::Formula for fixed effects: expr ~  diagnosis + dysbiosisnonIBD + dysbiosisUC + dysbiosisCD + antibiotics + age
## 2024-05-01 19:23:12.995158 INFO::Filter data based on min abundance and min prevalence
## 2024-05-01 19:23:12.997467 INFO::Total samples in data: 1595
## 2024-05-01 19:23:12.99967 INFO::Min samples required with min abundance for a feature not to be filtered: 159.500000
## 2024-05-01 19:23:13.007869 INFO::Total filtered features: 0
## 2024-05-01 19:23:13.010904 INFO::Filtered feature names from abundance and prevalence filtering:
## 2024-05-01 19:23:13.024448 INFO::Total filtered features with variance filtering: 0
## 2024-05-01 19:23:13.026485 INFO::Filtered feature names from variance filtering:
## 2024-05-01 19:23:13.028401 INFO::Running selected normalization method: TSS
## 2024-05-01 19:23:14.054778 INFO::Bypass z-score application to metadata
## 2024-05-01 19:23:14.056678 INFO::Running selected transform method: LOG
## 2024-05-01 19:23:14.076921 INFO::Running selected analysis method: LM
## 2024-05-01 19:23:14.354807 INFO::Fitting model to feature number 1, Bifidobacterium.adolescentis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:14.859568 INFO::Fitting model to feature number 2, Bifidobacterium.bifidum
## 2024-05-01 19:23:15.248791 INFO::Fitting model to feature number 3, Bifidobacterium.longum
## 2024-05-01 19:23:15.395874 INFO::Fitting model to feature number 4, Bifidobacterium.pseudocatenulatum
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:15.546244 INFO::Fitting model to feature number 5, Collinsella.aerofaciens
## 2024-05-01 19:23:15.720701 INFO::Fitting model to feature number 6, Bacteroides.caccae
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:15.864533 INFO::Fitting model to feature number 7, Bacteroides.cellulosilyticus
## 2024-05-01 19:23:15.996758 INFO::Fitting model to feature number 8, Bacteroides.dorei
## 2024-05-01 19:23:16.137409 INFO::Fitting model to feature number 9, Bacteroides.eggerthii
## 2024-05-01 19:23:16.292285 INFO::Fitting model to feature number 10, Bacteroides.faecis
## 2024-05-01 19:23:16.433705 INFO::Fitting model to feature number 11, Bacteroides.finegoldii
## boundary (singular) fit: see help('isSingular')
## Feature Bacteroides.finegoldii : simpleWarning: Model failed to converge with 1 negative eigenvalue: -7.9e+01
## 2024-05-01 19:23:16.547066 WARNING::Fitting problem for feature 11 a warning was issued
## boundary (singular) fit: see help('isSingular')
## Warning: Model failed to converge with 1 negative eigenvalue: -7.9e+01
## 2024-05-01 19:23:16.68016 INFO::Fitting model to feature number 12, Bacteroides.fragilis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:16.817797 INFO::Fitting model to feature number 13, Bacteroides.intestinalis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:16.949739 INFO::Fitting model to feature number 14, Bacteroides.massiliensis
## 2024-05-01 19:23:17.079331 INFO::Fitting model to feature number 15, Bacteroides.ovatus
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:17.230241 INFO::Fitting model to feature number 16, Bacteroides.salyersiae
## 2024-05-01 19:23:17.361402 INFO::Fitting model to feature number 17, Bacteroides.stercoris
## 2024-05-01 19:23:17.502255 INFO::Fitting model to feature number 18, Bacteroides.thetaiotaomicron
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:17.632578 INFO::Fitting model to feature number 19, Bacteroides.uniformis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:17.769169 INFO::Fitting model to feature number 20, Bacteroides.vulgatus
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:17.922603 INFO::Fitting model to feature number 21, Bacteroides.xylanisolvens
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:18.055703 INFO::Fitting model to feature number 22, Bacteroidales.bacterium.ph8
## 2024-05-01 19:23:18.195641 INFO::Fitting model to feature number 23, Barnesiella.intestinihominis
## 2024-05-01 19:23:18.332779 INFO::Fitting model to feature number 24, Coprobacter.fastidiosus
## 2024-05-01 19:23:18.481831 INFO::Fitting model to feature number 25, Odoribacter.splanchnicus
## 2024-05-01 19:23:18.907191 INFO::Fitting model to feature number 26, Parabacteroides.distasonis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:19.076364 INFO::Fitting model to feature number 27, Parabacteroides.goldsteinii
## 2024-05-01 19:23:19.229752 INFO::Fitting model to feature number 28, Parabacteroides.merdae
## 2024-05-01 19:23:19.370112 INFO::Fitting model to feature number 29, Parabacteroides.unclassified
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:19.597611 INFO::Fitting model to feature number 30, Paraprevotella.clara
## 2024-05-01 19:23:19.754999 INFO::Fitting model to feature number 31, Paraprevotella.unclassified
## 2024-05-01 19:23:19.973637 INFO::Fitting model to feature number 32, Prevotella.copri
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:20.191832 INFO::Fitting model to feature number 33, Alistipes.finegoldii
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:20.355073 INFO::Fitting model to feature number 34, Alistipes.onderdonkii
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:20.518753 INFO::Fitting model to feature number 35, Alistipes.putredinis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:20.70537 INFO::Fitting model to feature number 36, Alistipes.shahii
## 2024-05-01 19:23:20.852072 INFO::Fitting model to feature number 37, Alistipes.unclassified
## 2024-05-01 19:23:20.97697 INFO::Fitting model to feature number 38, Streptococcus.salivarius
## 2024-05-01 19:23:21.120902 INFO::Fitting model to feature number 39, Clostridium.bolteae
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:21.277317 INFO::Fitting model to feature number 40, Clostridium.citroniae
## boundary (singular) fit: see help('isSingular')
## Feature Clostridium.citroniae : simpleWarning: Model failed to converge with 1 negative eigenvalue: -3.4e+01
## 2024-05-01 19:23:21.412033 WARNING::Fitting problem for feature 40 a warning was issued
## boundary (singular) fit: see help('isSingular')
## Warning: Model failed to converge with 1 negative eigenvalue: -3.4e+01
## 2024-05-01 19:23:21.605693 INFO::Fitting model to feature number 41, Clostridium.clostridioforme
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:21.812976 INFO::Fitting model to feature number 42, Clostridium.hathewayi
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:22.016063 INFO::Fitting model to feature number 43, Clostridium.leptum
## 2024-05-01 19:23:22.247234 INFO::Fitting model to feature number 44, Clostridium.nexile
## 2024-05-01 19:23:22.473298 INFO::Fitting model to feature number 45, Clostridium.symbiosum
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:22.679518 INFO::Fitting model to feature number 46, Flavonifractor.plautii
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:22.877258 INFO::Fitting model to feature number 47, Eubacterium.eligens
## 2024-05-01 19:23:23.093893 INFO::Fitting model to feature number 48, Eubacterium.hallii
## 2024-05-01 19:23:23.223159 INFO::Fitting model to feature number 49, Eubacterium.rectale
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:23.354336 INFO::Fitting model to feature number 50, Eubacterium.siraeum
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:23.538309 INFO::Fitting model to feature number 51, Eubacterium.sp.3.1.31
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:23.685143 INFO::Fitting model to feature number 52, Eubacterium.ventriosum
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:23.804765 INFO::Fitting model to feature number 53, Ruminococcus.gnavus
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:23.962178 INFO::Fitting model to feature number 54, Ruminococcus.obeum
## 2024-05-01 19:23:24.162806 INFO::Fitting model to feature number 55, Ruminococcus.torques
## 2024-05-01 19:23:24.375245 INFO::Fitting model to feature number 56, Coprococcus.comes
## 2024-05-01 19:23:24.580118 INFO::Fitting model to feature number 57, Dorea.longicatena
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:24.787635 INFO::Fitting model to feature number 58, Lachnospiraceae.bacterium.1.1.57FAA
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:24.944717 INFO::Fitting model to feature number 59, Lachnospiraceae.bacterium.3.1.46FAA
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:25.071393 INFO::Fitting model to feature number 60, Roseburia.hominis
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:25.223459 INFO::Fitting model to feature number 61, Roseburia.intestinalis
## 2024-05-01 19:23:25.342373 INFO::Fitting model to feature number 62, Roseburia.inulinivorans
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:25.491606 INFO::Fitting model to feature number 63, Roseburia.unclassified
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:25.709499 INFO::Fitting model to feature number 64, Oscillibacter.unclassified
## 2024-05-01 19:23:25.844688 INFO::Fitting model to feature number 65, Peptostreptococcaceae.noname.unclassified
## 2024-05-01 19:23:25.981828 INFO::Fitting model to feature number 66, Faecalibacterium.prausnitzii
## 2024-05-01 19:23:26.183157 INFO::Fitting model to feature number 67, Ruminococcus.bromii
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:26.323929 INFO::Fitting model to feature number 68, Ruminococcus.callidus
## 2024-05-01 19:23:26.470105 INFO::Fitting model to feature number 69, Ruminococcus.lactaris
## 2024-05-01 19:23:26.712434 INFO::Fitting model to feature number 70, Subdoligranulum.unclassified
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:26.924172 INFO::Fitting model to feature number 71, Coprobacillus.unclassified
## 2024-05-01 19:23:27.138006 INFO::Fitting model to feature number 72, Acidaminococcus.unclassified
## 2024-05-01 19:23:27.329955 INFO::Fitting model to feature number 73, Dialister.invisus
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:27.519041 INFO::Fitting model to feature number 74, Veillonella.atypica
## 2024-05-01 19:23:27.708955 INFO::Fitting model to feature number 75, Veillonella.dispar
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:27.9122 INFO::Fitting model to feature number 76, Veillonella.parvula
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:28.104586 INFO::Fitting model to feature number 77, Veillonella.unclassified
## 2024-05-01 19:23:28.306013 INFO::Fitting model to feature number 78, Burkholderiales.bacterium.1.1.47
## 2024-05-01 19:23:28.456684 INFO::Fitting model to feature number 79, Parasutterella.excrementihominis
## 2024-05-01 19:23:28.602152 INFO::Fitting model to feature number 80, Sutterella.wadsworthensis
## 2024-05-01 19:23:28.749021 INFO::Fitting model to feature number 81, Bilophila.unclassified
## 2024-05-01 19:23:28.909286 INFO::Fitting model to feature number 82, Escherichia.coli
## 2024-05-01 19:23:29.053005 INFO::Fitting model to feature number 83, Escherichia.unclassified
## 2024-05-01 19:23:29.181545 INFO::Fitting model to feature number 84, Klebsiella.pneumoniae
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:29.307679 INFO::Fitting model to feature number 85, Haemophilus.parainfluenzae
## boundary (singular) fit: see help('isSingular')
## 2024-05-01 19:23:29.44626 INFO::Fitting model to feature number 86, Akkermansia.muciniphila
## 2024-05-01 19:23:29.579623 INFO::Fitting model to feature number 87, C2likevirus.unclassified
## 2024-05-01 19:23:29.826811 INFO::Counting total values for each feature
## 2024-05-01 19:23:29.859401 INFO::Writing filtered data to file demo_output/features/filtered_data.tsv
## 2024-05-01 19:23:30.154269 INFO::Writing filtered, normalized data to file demo_output/features/filtered_data_norm.tsv
## 2024-05-01 19:23:30.548886 INFO::Writing filtered, normalized, transformed data to file demo_output/features/filtered_data_norm_transformed.tsv
## 2024-05-01 19:23:31.010749 INFO::Writing residuals to file demo_output/fits/residuals.rds
## 2024-05-01 19:23:31.071193 INFO::Writing fitted values to file demo_output/fits/fitted.rds
## 2024-05-01 19:23:31.106188 INFO::Writing extracted random effects to file demo_output/fits/ranef.rds
## 2024-05-01 19:23:31.114715 INFO::Writing all results to file (ordered by increasing q-values): demo_output/all_results.tsv
## 2024-05-01 19:23:31.136296 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): demo_output/significant_results.tsv
## 2024-05-01 19:23:31.146916 INFO::Writing heatmap of significant results to file: demo_output/heatmap.pdf
## 2024-05-01 19:23:31.76185 INFO::Writing association plots (one for each significant association) to output folder: demo_output
## 2024-05-01 19:23:31.772541 INFO::Plotting associations from most to least significant, grouped by metadata
## 2024-05-01 19:23:31.775392 INFO::Plotting data for metadata number 1, dysbiosisCD
## 2024-05-01 19:23:31.778435 INFO::Creating boxplot for categorical data, dysbiosisCD vs Faecalibacterium.prausnitzii
## 2024-05-01 19:23:32.274048 INFO::Creating boxplot for categorical data, dysbiosisCD vs Subdoligranulum.unclassified
## 2024-05-01 19:23:32.569335 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.uniformis
## 2024-05-01 19:23:32.825271 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.rectale
## 2024-05-01 19:23:33.091737 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.vulgatus
## 2024-05-01 19:23:33.331362 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.ovatus
## 2024-05-01 19:23:33.587972 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.obeum
## 2024-05-01 19:23:33.935795 INFO::Creating boxplot for categorical data, dysbiosisCD vs Oscillibacter.unclassified
## 2024-05-01 19:23:34.304169 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.inulinivorans
## 2024-05-01 19:23:34.571101 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.hominis
## 2024-05-01 19:23:34.838974 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.thetaiotaomicron
## 2024-05-01 19:23:35.078618 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.putredinis
## 2024-05-01 19:23:35.336799 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.distasonis
## 2024-05-01 19:23:35.596302 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.dorei
## 2024-05-01 19:23:35.848962 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.shahii
## 2024-05-01 19:23:36.094321 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.xylanisolvens
## 2024-05-01 19:23:36.42652 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.leptum
## 2024-05-01 19:23:36.796622 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dorea.longicatena
## 2024-05-01 19:23:37.089939 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.caccae
## 2024-05-01 19:23:37.334466 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2024-05-01 19:23:37.686037 INFO::Creating boxplot for categorical data, dysbiosisCD vs Escherichia.coli
## 2024-05-01 19:23:37.951586 INFO::Creating boxplot for categorical data, dysbiosisCD vs Klebsiella.pneumoniae
## 2024-05-01 19:23:38.502821 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bilophila.unclassified
## 2024-05-01 19:23:38.794128 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.finegoldii
## 2024-05-01 19:23:39.054856 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.eligens
## 2024-05-01 19:23:39.406939 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.stercoris
## 2024-05-01 19:23:39.693606 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprococcus.comes
## 2024-05-01 19:23:39.965612 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.fragilis
## 2024-05-01 19:23:40.230798 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.finegoldii
## 2024-05-01 19:23:40.468147 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.hallii
## 2024-05-01 19:23:40.71709 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.faecis
## 2024-05-01 19:23:41.026685 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.clara
## 2024-05-01 19:23:41.376648 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.siraeum
## 2024-05-01 19:23:41.644876 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.merdae
## 2024-05-01 19:23:41.877046 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.unclassified
## 2024-05-01 19:23:42.158832 INFO::Creating boxplot for categorical data, dysbiosisCD vs Collinsella.aerofaciens
## 2024-05-01 19:23:42.489743 INFO::Creating boxplot for categorical data, dysbiosisCD vs Odoribacter.splanchnicus
## 2024-05-01 19:23:42.875383 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.clostridioforme
## 2024-05-01 19:23:43.266578 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.eggerthii
## 2024-05-01 19:23:43.605679 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.onderdonkii
## 2024-05-01 19:23:43.850531 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.ventriosum
## 2024-05-01 19:23:44.168337 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.lactaris
## 2024-05-01 19:23:44.575452 INFO::Creating boxplot for categorical data, dysbiosisCD vs Burkholderiales.bacterium.1.1.47
## 2024-05-01 19:23:44.98367 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dialister.invisus
## 2024-05-01 19:23:45.382967 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.bromii
## 2024-05-01 19:23:45.6608 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parasutterella.excrementihominis
## 2024-05-01 19:23:45.908269 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.unclassified
## 2024-05-01 19:23:46.190277 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.torques
## 2024-05-01 19:23:46.480464 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprobacillus.unclassified
## 2024-05-01 19:23:46.766535 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.cellulosilyticus
## 2024-05-01 19:23:47.020362 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.intestinalis
## 2024-05-01 19:23:47.312065 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.unclassified
## 2024-05-01 19:23:47.62045 INFO::Creating boxplot for categorical data, dysbiosisCD vs Acidaminococcus.unclassified
## 2024-05-01 19:23:47.90469 INFO::Creating boxplot for categorical data, dysbiosisCD vs Barnesiella.intestinihominis
## 2024-05-01 19:23:48.243604 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.massiliensis
## 2024-05-01 19:23:48.568277 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.sp.3.1.31
## 2024-05-01 19:23:48.88498 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.salyersiae
## 2024-05-01 19:23:49.204304 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroidales.bacterium.ph8
## 2024-05-01 19:23:49.509596 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.citroniae
## 2024-05-01 19:23:49.846889 INFO::Creating boxplot for categorical data, dysbiosisCD vs Flavonifractor.plautii
## 2024-05-01 19:23:50.175307 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.goldsteinii
## 2024-05-01 19:23:50.58993 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bifidobacterium.longum
## 2024-05-01 19:23:50.873566 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.1.1.57FAA
## 2024-05-01 19:23:55.061478 INFO::Plotting data for metadata number 2, dysbiosisUC
## 2024-05-01 19:23:55.064583 INFO::Creating boxplot for categorical data, dysbiosisUC vs Subdoligranulum.unclassified
## 2024-05-01 19:23:55.36577 INFO::Creating boxplot for categorical data, dysbiosisUC vs Faecalibacterium.prausnitzii
## 2024-05-01 19:23:55.677607 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.caccae
## 2024-05-01 19:23:56.016181 INFO::Creating boxplot for categorical data, dysbiosisUC vs Oscillibacter.unclassified
## 2024-05-01 19:23:56.341055 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.uniformis
## 2024-05-01 19:23:56.619376 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.siraeum
## 2024-05-01 19:23:56.874384 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.ovatus
## 2024-05-01 19:23:57.150452 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.fragilis
## 2024-05-01 19:23:57.478362 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.shahii
## 2024-05-01 19:23:57.751375 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.rectale
## 2024-05-01 19:23:58.075501 INFO::Creating boxplot for categorical data, dysbiosisUC vs Roseburia.hominis
## 2024-05-01 19:23:58.397106 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.putredinis
## 2024-05-01 19:23:58.790518 INFO::Creating boxplot for categorical data, dysbiosisUC vs Lachnospiraceae.bacterium.3.1.46FAA
## 2024-05-01 19:23:59.096151 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.hallii
## 2024-05-01 19:23:59.482183 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.xylanisolvens
## 2024-05-01 19:23:59.801711 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.stercoris
## 2024-05-01 19:24:00.075509 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.finegoldii
## 2024-05-01 19:24:00.416914 INFO::Creating boxplot for categorical data, dysbiosisUC vs Barnesiella.intestinihominis
## 2024-05-01 19:24:00.789797 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.leptum
## 2024-05-01 19:24:01.177932 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.gnavus
## 2024-05-01 19:24:01.487457 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.onderdonkii
## 2024-05-01 19:24:01.742201 INFO::Creating boxplot for categorical data, dysbiosisUC vs Flavonifractor.plautii
## 2024-05-01 19:24:02.027725 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.merdae
## 2024-05-01 19:24:02.419692 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.cellulosilyticus
## 2024-05-01 19:24:02.777226 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.longum
## 2024-05-01 19:24:03.012357 INFO::Creating boxplot for categorical data, dysbiosisUC vs Klebsiella.pneumoniae
## 2024-05-01 19:24:03.273635 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.citroniae
## 2024-05-01 19:24:03.545485 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.ventriosum
## 2024-05-01 19:24:03.827697 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.distasonis
## 2024-05-01 19:24:04.083869 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.goldsteinii
## 2024-05-01 19:24:04.346256 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.torques
## 2024-05-01 19:24:04.688142 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroidales.bacterium.ph8
## 2024-05-01 19:24:05.087129 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.obeum
## 2024-05-01 19:24:05.426942 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.bifidum
## 2024-05-01 19:24:05.80078 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.adolescentis
## 2024-05-01 19:24:06.046112 INFO::Creating boxplot for categorical data, dysbiosisUC vs Collinsella.aerofaciens
## 2024-05-01 19:24:06.385101 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.hathewayi
## 2024-05-01 19:24:06.695657 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bilophila.unclassified
## 2024-05-01 19:24:07.028208 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.eligens
## 2024-05-01 19:24:07.383975 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.vulgatus
## 2024-05-01 19:24:07.739802 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.bolteae
## 2024-05-01 19:24:08.05712 INFO::Creating boxplot for categorical data, dysbiosisUC vs Dialister.invisus
## 2024-05-01 19:24:08.348413 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.lactaris
## 2024-05-01 19:24:08.663551 INFO::Creating boxplot for categorical data, dysbiosisUC vs Burkholderiales.bacterium.1.1.47
## 2024-05-01 19:24:12.889293 INFO::Plotting data for metadata number 3, dysbiosisnonIBD
## 2024-05-01 19:24:12.892494 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Faecalibacterium.prausnitzii
## 2024-05-01 19:24:13.15766 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.rectale
## 2024-05-01 19:24:13.516049 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.sp.3.1.31
## 2024-05-01 19:24:13.896867 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.hominis
## 2024-05-01 19:24:14.177019 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Subdoligranulum.unclassified
## 2024-05-01 19:24:14.461264 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2024-05-01 19:24:14.717688 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.torques
## 2024-05-01 19:24:15.001175 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Clostridium.leptum
## 2024-05-01 19:24:15.325738 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Odoribacter.splanchnicus
## 2024-05-01 19:24:15.668848 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Escherichia.coli
## 2024-05-01 19:24:15.930068 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.obeum
## 2024-05-01 19:24:16.239618 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bilophila.unclassified
## 2024-05-01 19:24:16.582075 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.uniformis
## 2024-05-01 19:24:16.922756 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.eligens
## 2024-05-01 19:24:17.251735 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Klebsiella.pneumoniae
## 2024-05-01 19:24:17.54064 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.bromii
## 2024-05-01 19:24:17.788871 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.vulgatus
## 2024-05-01 19:24:18.064444 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs C2likevirus.unclassified
## 2024-05-01 19:24:18.405038 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bifidobacterium.adolescentis
## 2024-05-01 19:24:18.779332 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.finegoldii
## 2024-05-01 19:24:19.025739 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.inulinivorans
## 2024-05-01 19:24:19.305358 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.onderdonkii
## 2024-05-01 19:24:19.564694 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.unclassified
## 2024-05-01 19:24:19.84468 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.hallii
## 2024-05-01 19:24:20.097196 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.intestinalis
## 2024-05-01 19:24:20.373082 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Prevotella.copri
## 2024-05-01 19:24:20.642265 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.dorei
## 2024-05-01 19:24:21.000459 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.fragilis
## 2024-05-01 19:24:21.275296 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.shahii
## 2024-05-01 19:24:25.15017 INFO::Plotting data for metadata number 4, antibiotics
## 2024-05-01 19:24:25.154918 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.inulinivorans
## 2024-05-01 19:24:25.395383 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.hominis
## 2024-05-01 19:24:25.710177 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.rectale
## 2024-05-01 19:24:25.988364 INFO::Creating boxplot for categorical data, antibiotics vs Dialister.invisus
## 2024-05-01 19:24:26.231932 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.intestinalis
## 2024-05-01 19:24:26.486358 INFO::Creating boxplot for categorical data, antibiotics vs Dorea.longicatena
## 2024-05-01 19:24:26.736121 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.callidus
## 2024-05-01 19:24:27.108345 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.bromii
## 2024-05-01 19:24:27.357691 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.obeum
## 2024-05-01 19:24:27.62525 INFO::Creating boxplot for categorical data, antibiotics vs Klebsiella.pneumoniae
## 2024-05-01 19:24:27.889754 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.adolescentis
## 2024-05-01 19:24:28.116752 INFO::Creating boxplot for categorical data, antibiotics vs Faecalibacterium.prausnitzii
## 2024-05-01 19:24:28.371564 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.hallii
## 2024-05-01 19:24:29.036718 INFO::Creating boxplot for categorical data, antibiotics vs Bilophila.unclassified
## 2024-05-01 19:24:29.319625 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.leptum
## 2024-05-01 19:24:29.712449 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.3.1.46FAA
## 2024-05-01 19:24:30.031515 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.finegoldii
## 2024-05-01 19:24:30.284416 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.sp.3.1.31
## 2024-05-01 19:24:30.541119 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.fragilis
## 2024-05-01 19:24:30.7776 INFO::Creating boxplot for categorical data, antibiotics vs Alistipes.onderdonkii
## 2024-05-01 19:24:31.04111 INFO::Creating boxplot for categorical data, antibiotics vs Sutterella.wadsworthensis
## 2024-05-01 19:24:31.325742 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.eligens
## 2024-05-01 19:24:31.590396 INFO::Creating boxplot for categorical data, antibiotics vs Collinsella.aerofaciens
## 2024-05-01 19:24:31.843458 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.thetaiotaomicron
## 2024-05-01 19:24:32.108493 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.eggerthii
## 2024-05-01 19:24:32.437296 INFO::Creating boxplot for categorical data, antibiotics vs Haemophilus.parainfluenzae
## 2024-05-01 19:24:32.78758 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.pseudocatenulatum
## 2024-05-01 19:24:33.059798 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.torques
## 2024-05-01 19:24:33.286476 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.ventriosum
## 2024-05-01 19:24:33.580404 INFO::Creating boxplot for categorical data, antibiotics vs Parasutterella.excrementihominis
## 2024-05-01 19:24:33.816946 INFO::Creating boxplot for categorical data, antibiotics vs Peptostreptococcaceae.noname.unclassified
## 2024-05-01 19:24:34.086564 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.dispar
## 2024-05-01 19:24:34.318145 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.atypica
## 2024-05-01 19:24:34.629651 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroidales.bacterium.ph8
## 2024-05-01 19:24:34.871414 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.nexile
## 2024-05-01 19:24:35.147021 INFO::Creating boxplot for categorical data, antibiotics vs Burkholderiales.bacterium.1.1.47
## 2024-05-01 19:24:35.387334 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.1.1.57FAA
## 2024-05-01 19:24:35.680446 INFO::Creating boxplot for categorical data, antibiotics vs Akkermansia.muciniphila
## 2024-05-01 19:24:35.922074 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.citroniae
## 2024-05-01 19:24:36.248605 INFO::Creating boxplot for categorical data, antibiotics vs Odoribacter.splanchnicus
## 2024-05-01 19:24:39.790142 INFO::Plotting data for metadata number 5, age
## 2024-05-01 19:24:39.793374 INFO::Creating scatter plot for continuous data, age vs Haemophilus.parainfluenzae
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:40.096864 INFO::Creating scatter plot for continuous data, age vs Bifidobacterium.pseudocatenulatum
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:40.474256 INFO::Creating scatter plot for continuous data, age vs Faecalibacterium.prausnitzii
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:40.726984 INFO::Creating scatter plot for continuous data, age vs Clostridium.clostridioforme
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:41.035212 INFO::Creating scatter plot for continuous data, age vs Veillonella.parvula
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:41.282722 INFO::Creating scatter plot for continuous data, age vs Subdoligranulum.unclassified
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:41.662018 INFO::Creating scatter plot for continuous data, age vs Clostridium.symbiosum
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:42.074343 INFO::Creating scatter plot for continuous data, age vs Ruminococcus.gnavus
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:42.325985 INFO::Creating scatter plot for continuous data, age vs Dialister.invisus
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:42.606074 INFO::Creating scatter plot for continuous data, age vs Veillonella.dispar
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:42.86224 INFO::Creating scatter plot for continuous data, age vs Veillonella.unclassified
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:43.140837 INFO::Creating scatter plot for continuous data, age vs Bacteroides.thetaiotaomicron
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:43.386599 INFO::Creating scatter plot for continuous data, age vs Ruminococcus.bromii
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:43.672998 INFO::Creating scatter plot for continuous data, age vs Bacteroides.intestinalis
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:43.97774 INFO::Creating scatter plot for continuous data, age vs Eubacterium.siraeum
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:44.223868 INFO::Creating scatter plot for continuous data, age vs Prevotella.copri
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:44.496613 INFO::Creating scatter plot for continuous data, age vs Alistipes.unclassified
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:44.769982 INFO::Creating scatter plot for continuous data, age vs Bacteroidales.bacterium.ph8
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:45.171192 INFO::Creating scatter plot for continuous data, age vs Bifidobacterium.longum
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:45.447636 INFO::Creating scatter plot for continuous data, age vs Akkermansia.muciniphila
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:45.695575 INFO::Creating scatter plot for continuous data, age vs Collinsella.aerofaciens
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:45.973406 INFO::Creating scatter plot for continuous data, age vs Parabacteroides.distasonis
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2024-05-01 19:24:50.518437 INFO::Plotting data for metadata number 6, diagnosis
## 2024-05-01 19:24:50.52149 INFO::Creating boxplot for categorical data, diagnosis vs Bifidobacterium.adolescentis
## 2024-05-01 19:24:50.742161 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2024-05-01 19:24:51.107389 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2024-05-01 19:24:51.420597 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2024-05-01 19:24:51.719462 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2024-05-01 19:24:52.001314 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.clostridioforme
## 2024-05-01 19:24:52.242347 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2024-05-01 19:24:52.489063 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2024-05-01 19:24:52.724289 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2024-05-01 19:24:52.963169 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2024-05-01 19:24:53.221106 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.inulinivorans
## 2024-05-01 19:24:53.510153 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2024-05-01 19:24:53.747971 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2024-05-01 19:24:53.997304 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2024-05-01 19:24:54.269707 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.goldsteinii
## 2024-05-01 19:24:54.539186 INFO::Creating boxplot for categorical data, diagnosis vs Bilophila.unclassified
## 2024-05-01 19:24:54.787377 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2024-05-01 19:24:55.03176 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2024-05-01 19:24:55.270551 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2024-05-01 19:24:55.525477 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2024-05-01 19:24:55.75674 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.ventriosum
## 2024-05-01 19:24:56.00396 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2024-05-01 19:24:56.239286 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2024-05-01 19:24:56.49504 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2024-05-01 19:24:56.729481 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2024-05-01 19:24:56.976609 INFO::Creating boxplot for categorical data, diagnosis vs Subdoligranulum.unclassified
## 2024-05-01 19:24:57.234767 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2024-05-01 19:24:57.509616 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2024-05-01 19:24:57.762547 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.unclassified
## 2024-05-01 19:24:57.99941 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.lactaris
## 2024-05-01 19:24:58.248578 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2024-05-01 19:24:58.493798 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.gnavus
## 2024-05-01 19:24:58.766249 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.fragilis
## 2024-05-01 19:24:59.106345 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2024-05-01 19:24:59.452763 INFO::Creating boxplot for categorical data, diagnosis vs Odoribacter.splanchnicus
## 2024-05-01 19:24:59.761746 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.distasonis
## 2024-05-01 19:25:00.096382 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2024-05-01 19:25:00.364444 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.finegoldii
## 2024-05-01 19:25:00.663151 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2024-05-01 19:25:00.897779 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2024-05-01 19:25:01.156905 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2024-05-01 19:25:01.399694 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2024-05-01 19:25:01.663028 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.siraeum
Session Info

Session info from running the demo in R can be displayed with the following command.

sessionInfo()
## R version 4.4.0 RC (2024-04-16 r86468 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows Server 2022 x64 (build 20348)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=C                          
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] Maaslin2_1.19.0
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.5        biglm_0.9-2.1       xfun_0.43          
##  [4] bslib_0.7.0         ggplot2_3.5.1       lattice_0.22-6     
##  [7] numDeriv_2016.8-1.1 vctrs_0.6.5         tools_4.4.0        
## [10] generics_0.1.3      parallel_4.4.0      getopt_1.20.4      
## [13] tibble_3.2.1        fansi_1.0.6         DEoptimR_1.1-3     
## [16] cluster_2.1.6       pkgconfig_2.0.3     logging_0.10-108   
## [19] pheatmap_1.0.12     Matrix_1.7-0        data.table_1.15.4  
## [22] RColorBrewer_1.1-3  lifecycle_1.0.4     farver_2.1.1       
## [25] compiler_4.4.0      munsell_0.5.1       lmerTest_3.1-3     
## [28] permute_0.9-7       htmltools_0.5.8.1   sass_0.4.9         
## [31] hash_2.2.6.3        yaml_2.3.8          pillar_1.9.0       
## [34] nloptr_2.0.3        crayon_1.5.2        jquerylib_0.1.4    
## [37] MASS_7.3-60.2       cachem_1.0.8        vegan_2.6-4        
## [40] boot_1.3-30         nlme_3.1-164        robustbase_0.99-2  
## [43] tidyselect_1.2.1    digest_0.6.35       mvtnorm_1.2-4      
## [46] dplyr_1.1.4         labeling_0.4.3      splines_4.4.0      
## [49] pcaPP_2.0-4         fastmap_1.1.1       grid_4.4.0         
## [52] colorspace_2.1-0    cli_3.6.2           magrittr_2.0.3     
## [55] utf8_1.2.4          withr_3.0.0         scales_1.3.0       
## [58] rmarkdown_2.26      lme4_1.1-35.3       pbapply_1.7-2      
## [61] evaluate_0.23       knitr_1.46          mgcv_1.9-1         
## [64] rlang_1.1.3         Rcpp_1.0.12         glue_1.7.0         
## [67] optparse_1.7.5      DBI_1.2.2           minqa_1.2.6        
## [70] jsonlite_1.8.8      R6_2.5.1

Options

Run MaAsLin2 help to print a list of the options and the default settings.

$ Maaslin2.R –help Usage: ./R/Maaslin2.R options <data.tsv> <metadata.tsv>

Options: -h, –help Show this help message and exit

-a MIN_ABUNDANCE, --min_abundance=MIN_ABUNDANCE
    The minimum abundance for each feature [ Default: 0 ]

-p MIN_PREVALENCE, --min_prevalence=MIN_PREVALENCE
    The minimum percent of samples for which a feature 
    is detected at minimum abundance [ Default: 0.1 ]

-b MIN_VARIANCE, --min_variance=MIN_VARIANCE
    Keep features with variance greater than [ Default: 0.0 ]

-s MAX_SIGNIFICANCE, --max_significance=MAX_SIGNIFICANCE
    The q-value threshold for significance [ Default: 0.25 ]

-n NORMALIZATION, --normalization=NORMALIZATION
    The normalization method to apply [ Default: TSS ]
    [ Choices: TSS, CLR, CSS, NONE, TMM ]

-t TRANSFORM, --transform=TRANSFORM
    The transform to apply [ Default: LOG ]
    [ Choices: LOG, LOGIT, AST, NONE ]

-m ANALYSIS_METHOD, --analysis_method=ANALYSIS_METHOD
    The analysis method to apply [ Default: LM ]
    [ Choices: LM, CPLM, NEGBIN, ZINB ]

-r RANDOM_EFFECTS, --random_effects=RANDOM_EFFECTS
    The random effects for the model, comma-delimited
    for multiple effects [ Default: none ]

-f FIXED_EFFECTS, --fixed_effects=FIXED_EFFECTS
    The fixed effects for the model, comma-delimited
    for multiple effects [ Default: all ]

-c CORRECTION, --correction=CORRECTION
    The correction method for computing the 
    q-value [ Default: BH ]

-z STANDARDIZE, --standardize=STANDARDIZE
    Apply z-score so continuous metadata are 
    on the same scale [ Default: TRUE ]

-l PLOT_HEATMAP, --plot_heatmap=PLOT_HEATMAP
    Generate a heatmap for the significant 
    associations [ Default: TRUE ]

-i HEATMAP_FIRST_N, --heatmap_first_n=HEATMAP_FIRST_N
    In heatmap, plot top N features with significant 
    associations [ Default: TRUE ]

-o PLOT_SCATTER, --plot_scatter=PLOT_SCATTER
    Generate scatter plots for the significant
    associations [ Default: TRUE ]
    
-g MAX_PNGS, --max_pngs=MAX_PNGS
    The maximum number of scatter plots for signficant associations 
    to save as png files [ Default: 10 ]

-O SAVE_SCATTER, --save_scatter=SAVE_SCATTER
    Save all scatter plot ggplot objects
    to an RData file [ Default: FALSE ]

-e CORES, --cores=CORES
    The number of R processes to run in parallel
    [ Default: 1 ]
    
-j SAVE_MODELS --save_models=SAVE_MODELS
    Return the full model outputs and save to an RData file
    [ Default: FALSE ]

-d REFERENCE, --reference=REFERENCE
    The factor to use as a reference level for a categorical variable 
    provided as a string of 'variable,reference', semi-colon delimited for 
    multiple variables. Not required if metadata is passed as a factor or 
    for variables with less than two levels but can be set regardless.
    [ Default: NA ] 

Troubleshooting

  1. Question: When I run from the command line I see the error Maaslin2.R: command not found. How do I fix this?
    • Answer: Provide the full path to the executable when running Maaslin2.R.
  2. Question: When I run as a function I see the error Error in library(Maaslin2): there is no package called 'Maaslin2'. How do I fix this?
    • Answer: Install the R package and then try loading the library again.
  3. Question: When I try to install the R package I see errors about dependencies not being installed. Why is this?
    • Answer: Installing the R package will not automatically install the packages MaAsLin2 requires. Please install the dependencies and then install the MaAsLin2 R package.