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)
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.
MaAsLin2 is an R package that can be run on the command line or as an R function.
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.
$ tar xzvf maaslin2.tar.gz$ 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')"$ R CMD INSTALL maaslin2MaAsLin2 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.
MaAsLin2 requires two input files.
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.
MaAsLin2 generates two types of output files: data and visualization.
all_results.tsv
N column is the total number of data points.N.not.zero column is the total of non-zero data
points.p.adjust with the
correction method.significant_results.tsv
models.rds
residuals.rds
fitted.rds
ranef.rds
maaslin2.log
heatmap.pdf
[a-z/0-9]+.pdf
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.
$ 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
HMP2_taxonomy.tsv is the path to your data (or
features) fileHMP2_metadata.tsv is the path to your metadata
filedemo_output is the path to the folder to write the
outputlibrary(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"
## 2026-10-10 14:19:34.968486 INFO::Writing function arguments to log file
## 2026-10-10 14:19:35.033744 INFO::Verifying options selected are valid
## 2026-10-10 14:19:35.045945 INFO::Determining format of input files
## 2026-10-10 14:19:35.046405 INFO::Input format is data samples as rows and metadata samples as rows
## 2026-10-10 14:19:35.04837 INFO::Formula for random effects: expr ~ (1 | site) + (1 | subject)
## 2026-10-10 14:19:35.048792 INFO::Formula for fixed effects: expr ~ diagnosis + dysbiosisnonIBD + dysbiosisUC + dysbiosisCD + antibiotics + age
## 2026-10-10 14:19:35.049652 INFO::Filter data based on min abundance and min prevalence
## 2026-10-10 14:19:35.049911 INFO::Total samples in data: 1595
## 2026-10-10 14:19:35.050132 INFO::Min samples required with min abundance for a feature not to be filtered: 159.500000
## 2026-10-10 14:19:35.052457 INFO::Total filtered features: 0
## 2026-10-10 14:19:35.052786 INFO::Filtered feature names from abundance and prevalence filtering:
## 2026-10-10 14:19:35.056714 INFO::Total filtered features with variance filtering: 0
## 2026-10-10 14:19:35.057015 INFO::Filtered feature names from variance filtering:
## 2026-10-10 14:19:35.057252 INFO::Running selected normalization method: TSS
## 2026-10-10 14:19:35.566308 INFO::Bypass z-score application to metadata
## 2026-10-10 14:19:35.566813 INFO::Running selected transform method: LOG
## 2026-10-10 14:19:35.581401 INFO::Running selected analysis method: LM
## 2026-10-10 14:19:35.704811 INFO::Fitting model to feature number 1, Bifidobacterium.adolescentis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:35.919033 INFO::Fitting model to feature number 2, Bifidobacterium.bifidum
## 2026-10-10 14:19:35.970292 INFO::Fitting model to feature number 3, Bifidobacterium.longum
## 2026-10-10 14:19:36.07265 INFO::Fitting model to feature number 4, Bifidobacterium.pseudocatenulatum
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.118298 INFO::Fitting model to feature number 5, Collinsella.aerofaciens
## 2026-10-10 14:19:36.174907 INFO::Fitting model to feature number 6, Bacteroides.caccae
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.221429 INFO::Fitting model to feature number 7, Bacteroides.cellulosilyticus
## 2026-10-10 14:19:36.273 INFO::Fitting model to feature number 8, Bacteroides.dorei
## 2026-10-10 14:19:36.323561 INFO::Fitting model to feature number 9, Bacteroides.eggerthii
## 2026-10-10 14:19:36.37584 INFO::Fitting model to feature number 10, Bacteroides.faecis
## 2026-10-10 14:19:36.425116 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
## 2026-10-10 14:19:36.4695 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
## 2026-10-10 14:19:36.520916 INFO::Fitting model to feature number 12, Bacteroides.fragilis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.56707 INFO::Fitting model to feature number 13, Bacteroides.intestinalis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.618581 INFO::Fitting model to feature number 14, Bacteroides.massiliensis
## 2026-10-10 14:19:36.665948 INFO::Fitting model to feature number 15, Bacteroides.ovatus
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.714807 INFO::Fitting model to feature number 16, Bacteroides.salyersiae
## 2026-10-10 14:19:36.766833 INFO::Fitting model to feature number 17, Bacteroides.stercoris
## 2026-10-10 14:19:36.818781 INFO::Fitting model to feature number 18, Bacteroides.thetaiotaomicron
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.864564 INFO::Fitting model to feature number 19, Bacteroides.uniformis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.91473 INFO::Fitting model to feature number 20, Bacteroides.vulgatus
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:36.970136 INFO::Fitting model to feature number 21, Bacteroides.xylanisolvens
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.016508 INFO::Fitting model to feature number 22, Bacteroidales.bacterium.ph8
## 2026-10-10 14:19:37.070287 INFO::Fitting model to feature number 23, Barnesiella.intestinihominis
## 2026-10-10 14:19:37.118825 INFO::Fitting model to feature number 24, Coprobacter.fastidiosus
## 2026-10-10 14:19:37.175828 INFO::Fitting model to feature number 25, Odoribacter.splanchnicus
## 2026-10-10 14:19:37.223745 INFO::Fitting model to feature number 26, Parabacteroides.distasonis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.275258 INFO::Fitting model to feature number 27, Parabacteroides.goldsteinii
## 2026-10-10 14:19:37.329395 INFO::Fitting model to feature number 28, Parabacteroides.merdae
## 2026-10-10 14:19:37.378084 INFO::Fitting model to feature number 29, Parabacteroides.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.428922 INFO::Fitting model to feature number 30, Paraprevotella.clara
## 2026-10-10 14:19:37.477935 INFO::Fitting model to feature number 31, Paraprevotella.unclassified
## 2026-10-10 14:19:37.530344 INFO::Fitting model to feature number 32, Prevotella.copri
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.581501 INFO::Fitting model to feature number 33, Alistipes.finegoldii
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.631683 INFO::Fitting model to feature number 34, Alistipes.onderdonkii
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.679397 INFO::Fitting model to feature number 35, Alistipes.putredinis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:37.914912 INFO::Fitting model to feature number 36, Alistipes.shahii
## 2026-10-10 14:19:37.96395 INFO::Fitting model to feature number 37, Alistipes.unclassified
## 2026-10-10 14:19:38.013177 INFO::Fitting model to feature number 38, Streptococcus.salivarius
## 2026-10-10 14:19:38.069126 INFO::Fitting model to feature number 39, Clostridium.bolteae
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.116799 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
## 2026-10-10 14:19:38.155756 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
## 2026-10-10 14:19:38.207266 INFO::Fitting model to feature number 41, Clostridium.clostridioforme
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.252568 INFO::Fitting model to feature number 42, Clostridium.hathewayi
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.29872 INFO::Fitting model to feature number 43, Clostridium.leptum
## 2026-10-10 14:19:38.357509 INFO::Fitting model to feature number 44, Clostridium.nexile
## 2026-10-10 14:19:38.404445 INFO::Fitting model to feature number 45, Clostridium.symbiosum
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.450972 INFO::Fitting model to feature number 46, Flavonifractor.plautii
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.504357 INFO::Fitting model to feature number 47, Eubacterium.eligens
## 2026-10-10 14:19:38.552638 INFO::Fitting model to feature number 48, Eubacterium.hallii
## 2026-10-10 14:19:38.602076 INFO::Fitting model to feature number 49, Eubacterium.rectale
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.650346 INFO::Fitting model to feature number 50, Eubacterium.siraeum
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.700753 INFO::Fitting model to feature number 51, Eubacterium.sp.3.1.31
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.747652 INFO::Fitting model to feature number 52, Eubacterium.ventriosum
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.791751 INFO::Fitting model to feature number 53, Ruminococcus.gnavus
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:38.843284 INFO::Fitting model to feature number 54, Ruminococcus.obeum
## 2026-10-10 14:19:38.889783 INFO::Fitting model to feature number 55, Ruminococcus.torques
## 2026-10-10 14:19:38.936553 INFO::Fitting model to feature number 56, Coprococcus.comes
## 2026-10-10 14:19:38.989491 INFO::Fitting model to feature number 57, Dorea.longicatena
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.036435 INFO::Fitting model to feature number 58, Lachnospiraceae.bacterium.1.1.57FAA
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.088756 INFO::Fitting model to feature number 59, Lachnospiraceae.bacterium.3.1.46FAA
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.136909 INFO::Fitting model to feature number 60, Roseburia.hominis
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.184368 INFO::Fitting model to feature number 61, Roseburia.intestinalis
## 2026-10-10 14:19:39.234666 INFO::Fitting model to feature number 62, Roseburia.inulinivorans
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.280655 INFO::Fitting model to feature number 63, Roseburia.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.327264 INFO::Fitting model to feature number 64, Oscillibacter.unclassified
## 2026-10-10 14:19:39.38273 INFO::Fitting model to feature number 65, Peptostreptococcaceae.noname.unclassified
## 2026-10-10 14:19:39.430326 INFO::Fitting model to feature number 66, Faecalibacterium.prausnitzii
## 2026-10-10 14:19:39.483495 INFO::Fitting model to feature number 67, Ruminococcus.bromii
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.527541 INFO::Fitting model to feature number 68, Ruminococcus.callidus
## 2026-10-10 14:19:39.574106 INFO::Fitting model to feature number 69, Ruminococcus.lactaris
## 2026-10-10 14:19:39.627586 INFO::Fitting model to feature number 70, Subdoligranulum.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:39.674025 INFO::Fitting model to feature number 71, Coprobacillus.unclassified
## 2026-10-10 14:19:39.725278 INFO::Fitting model to feature number 72, Acidaminococcus.unclassified
## 2026-10-10 14:19:39.773646 INFO::Fitting model to feature number 73, Dialister.invisus
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:40.0088 INFO::Fitting model to feature number 74, Veillonella.atypica
## 2026-10-10 14:19:40.058681 INFO::Fitting model to feature number 75, Veillonella.dispar
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:40.105545 INFO::Fitting model to feature number 76, Veillonella.parvula
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:40.150651 INFO::Fitting model to feature number 77, Veillonella.unclassified
## 2026-10-10 14:19:40.206932 INFO::Fitting model to feature number 78, Burkholderiales.bacterium.1.1.47
## 2026-10-10 14:19:40.26292 INFO::Fitting model to feature number 79, Parasutterella.excrementihominis
## 2026-10-10 14:19:40.310181 INFO::Fitting model to feature number 80, Sutterella.wadsworthensis
## 2026-10-10 14:19:40.358751 INFO::Fitting model to feature number 81, Bilophila.unclassified
## 2026-10-10 14:19:40.409343 INFO::Fitting model to feature number 82, Escherichia.coli
## 2026-10-10 14:19:40.461064 INFO::Fitting model to feature number 83, Escherichia.unclassified
## 2026-10-10 14:19:40.505269 INFO::Fitting model to feature number 84, Klebsiella.pneumoniae
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:40.551138 INFO::Fitting model to feature number 85, Haemophilus.parainfluenzae
## boundary (singular) fit: see help('isSingular')
## 2026-10-10 14:19:40.597637 INFO::Fitting model to feature number 86, Akkermansia.muciniphila
## 2026-10-10 14:19:40.646009 INFO::Fitting model to feature number 87, C2likevirus.unclassified
## 2026-10-10 14:19:40.714329 INFO::Counting total values for each feature
## 2026-10-10 14:19:40.726423 INFO::Writing filtered data to file demo_output/features/filtered_data.tsv
## 2026-10-10 14:19:40.759425 INFO::Writing filtered, normalized data to file demo_output/features/filtered_data_norm.tsv
## 2026-10-10 14:19:40.792509 INFO::Writing filtered, normalized, transformed data to file demo_output/features/filtered_data_norm_transformed.tsv
## 2026-10-10 14:19:40.844807 INFO::Writing residuals to file demo_output/fits/residuals.rds
## 2026-10-10 14:19:40.869445 INFO::Writing fitted values to file demo_output/fits/fitted.rds
## 2026-10-10 14:19:40.882424 INFO::Writing extracted random effects to file demo_output/fits/ranef.rds
## 2026-10-10 14:19:40.884615 INFO::Writing all results to file (ordered by increasing q-values): demo_output/all_results.tsv
## 2026-10-10 14:19:40.886348 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
## 2026-10-10 14:19:40.887175 INFO::Writing heatmap of significant results to file: demo_output/heatmap.pdf
## 2026-10-10 14:19:41.14097 INFO::Writing association plots (one for each significant association) to output folder: demo_output
## 2026-10-10 14:19:41.143533 INFO::Plotting associations from most to least significant, grouped by metadata
## 2026-10-10 14:19:41.1439 INFO::Plotting data for metadata number 1, dysbiosisCD
## 2026-10-10 14:19:41.144524 INFO::Creating boxplot for categorical data, dysbiosisCD vs Faecalibacterium.prausnitzii
## 2026-10-10 14:19:41.312613 INFO::Creating boxplot for categorical data, dysbiosisCD vs Subdoligranulum.unclassified
## 2026-10-10 14:19:41.452687 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.uniformis
## 2026-10-10 14:19:41.584522 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.rectale
## 2026-10-10 14:19:41.717489 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.vulgatus
## 2026-10-10 14:19:41.849527 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.ovatus
## 2026-10-10 14:19:41.980915 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.obeum
## 2026-10-10 14:19:42.151216 INFO::Creating boxplot for categorical data, dysbiosisCD vs Oscillibacter.unclassified
## 2026-10-10 14:19:42.288963 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.inulinivorans
## 2026-10-10 14:19:42.424219 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.hominis
## 2026-10-10 14:19:42.558764 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.thetaiotaomicron
## 2026-10-10 14:19:42.691531 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.putredinis
## 2026-10-10 14:19:42.824235 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.distasonis
## 2026-10-10 14:19:42.956041 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.dorei
## 2026-10-10 14:19:43.088325 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.shahii
## 2026-10-10 14:19:43.219978 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.xylanisolvens
## 2026-10-10 14:19:43.35533 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.leptum
## 2026-10-10 14:19:43.48966 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dorea.longicatena
## 2026-10-10 14:19:43.621509 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.caccae
## 2026-10-10 14:19:43.755791 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-10-10 14:19:43.888062 INFO::Creating boxplot for categorical data, dysbiosisCD vs Escherichia.coli
## 2026-10-10 14:19:44.026263 INFO::Creating boxplot for categorical data, dysbiosisCD vs Klebsiella.pneumoniae
## 2026-10-10 14:19:44.159525 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bilophila.unclassified
## 2026-10-10 14:19:44.28741 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.finegoldii
## 2026-10-10 14:19:44.423927 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.eligens
## 2026-10-10 14:19:44.589745 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.stercoris
## 2026-10-10 14:19:44.73512 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprococcus.comes
## 2026-10-10 14:19:44.879253 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.fragilis
## 2026-10-10 14:19:45.023081 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.finegoldii
## 2026-10-10 14:19:45.16683 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.hallii
## 2026-10-10 14:19:45.311654 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.faecis
## 2026-10-10 14:19:45.462105 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.clara
## 2026-10-10 14:19:45.604149 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.siraeum
## 2026-10-10 14:19:45.743463 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.merdae
## 2026-10-10 14:19:45.885127 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.unclassified
## 2026-10-10 14:19:46.035173 INFO::Creating boxplot for categorical data, dysbiosisCD vs Collinsella.aerofaciens
## 2026-10-10 14:19:46.179916 INFO::Creating boxplot for categorical data, dysbiosisCD vs Odoribacter.splanchnicus
## 2026-10-10 14:19:46.323834 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.clostridioforme
## 2026-10-10 14:19:46.46401 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.eggerthii
## 2026-10-10 14:19:46.617612 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.onderdonkii
## 2026-10-10 14:19:46.758183 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.ventriosum
## 2026-10-10 14:19:46.906597 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.lactaris
## 2026-10-10 14:19:47.090033 INFO::Creating boxplot for categorical data, dysbiosisCD vs Burkholderiales.bacterium.1.1.47
## 2026-10-10 14:19:47.23904 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dialister.invisus
## 2026-10-10 14:19:47.389662 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.bromii
## 2026-10-10 14:19:47.538911 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parasutterella.excrementihominis
## 2026-10-10 14:19:47.687326 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.unclassified
## 2026-10-10 14:19:47.842974 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.torques
## 2026-10-10 14:19:47.999396 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprobacillus.unclassified
## 2026-10-10 14:19:48.155065 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.cellulosilyticus
## 2026-10-10 14:19:48.303334 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.intestinalis
## 2026-10-10 14:19:48.452015 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.unclassified
## 2026-10-10 14:19:48.613165 INFO::Creating boxplot for categorical data, dysbiosisCD vs Acidaminococcus.unclassified
## 2026-10-10 14:19:48.766278 INFO::Creating boxplot for categorical data, dysbiosisCD vs Barnesiella.intestinihominis
## 2026-10-10 14:19:48.913239 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.massiliensis
## 2026-10-10 14:19:49.063441 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.sp.3.1.31
## 2026-10-10 14:19:49.219182 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.salyersiae
## 2026-10-10 14:19:49.364407 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroidales.bacterium.ph8
## 2026-10-10 14:19:49.519592 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.citroniae
## 2026-10-10 14:19:49.708431 INFO::Creating boxplot for categorical data, dysbiosisCD vs Flavonifractor.plautii
## 2026-10-10 14:19:49.867198 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.goldsteinii
## 2026-10-10 14:19:50.028956 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bifidobacterium.longum
## 2026-10-10 14:19:50.186095 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.1.1.57FAA
## 2026-10-10 14:19:51.791414 INFO::Plotting data for metadata number 2, dysbiosisUC
## 2026-10-10 14:19:51.792379 INFO::Creating boxplot for categorical data, dysbiosisUC vs Subdoligranulum.unclassified
## 2026-10-10 14:19:51.941398 INFO::Creating boxplot for categorical data, dysbiosisUC vs Faecalibacterium.prausnitzii
## 2026-10-10 14:19:52.107098 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.caccae
## 2026-10-10 14:19:52.276548 INFO::Creating boxplot for categorical data, dysbiosisUC vs Oscillibacter.unclassified
## 2026-10-10 14:19:52.45374 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.uniformis
## 2026-10-10 14:19:52.618146 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.siraeum
## 2026-10-10 14:19:52.780784 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.ovatus
## 2026-10-10 14:19:53.168083 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.fragilis
## 2026-10-10 14:19:53.301125 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.shahii
## 2026-10-10 14:19:53.428916 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.rectale
## 2026-10-10 14:19:53.556693 INFO::Creating boxplot for categorical data, dysbiosisUC vs Roseburia.hominis
## 2026-10-10 14:19:53.688339 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.putredinis
## 2026-10-10 14:19:53.818954 INFO::Creating boxplot for categorical data, dysbiosisUC vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-10-10 14:19:53.947618 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.hallii
## 2026-10-10 14:19:54.078121 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.xylanisolvens
## 2026-10-10 14:19:54.2077 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.stercoris
## 2026-10-10 14:19:54.338217 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.finegoldii
## 2026-10-10 14:19:54.470697 INFO::Creating boxplot for categorical data, dysbiosisUC vs Barnesiella.intestinihominis
## 2026-10-10 14:19:54.600011 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.leptum
## 2026-10-10 14:19:54.726397 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.gnavus
## 2026-10-10 14:19:54.856258 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.onderdonkii
## 2026-10-10 14:19:54.989592 INFO::Creating boxplot for categorical data, dysbiosisUC vs Flavonifractor.plautii
## 2026-10-10 14:19:55.12064 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.merdae
## 2026-10-10 14:19:55.252422 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.cellulosilyticus
## 2026-10-10 14:19:55.413225 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.longum
## 2026-10-10 14:19:55.559713 INFO::Creating boxplot for categorical data, dysbiosisUC vs Klebsiella.pneumoniae
## 2026-10-10 14:19:55.7042 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.citroniae
## 2026-10-10 14:19:55.843087 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.ventriosum
## 2026-10-10 14:19:55.983527 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.distasonis
## 2026-10-10 14:19:56.123741 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.goldsteinii
## 2026-10-10 14:19:56.264887 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.torques
## 2026-10-10 14:19:56.402289 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroidales.bacterium.ph8
## 2026-10-10 14:19:56.557875 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.obeum
## 2026-10-10 14:19:56.69921 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.bifidum
## 2026-10-10 14:19:56.8476 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.adolescentis
## 2026-10-10 14:19:56.991569 INFO::Creating boxplot for categorical data, dysbiosisUC vs Collinsella.aerofaciens
## 2026-10-10 14:19:57.141231 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.hathewayi
## 2026-10-10 14:19:57.283362 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bilophila.unclassified
## 2026-10-10 14:19:57.423335 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.eligens
## 2026-10-10 14:19:57.574923 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.vulgatus
## 2026-10-10 14:19:57.717667 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.bolteae
## 2026-10-10 14:19:57.860852 INFO::Creating boxplot for categorical data, dysbiosisUC vs Dialister.invisus
## 2026-10-10 14:19:58.05019 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.lactaris
## 2026-10-10 14:19:58.20289 INFO::Creating boxplot for categorical data, dysbiosisUC vs Burkholderiales.bacterium.1.1.47
## 2026-10-10 14:19:59.669323 INFO::Plotting data for metadata number 3, dysbiosisnonIBD
## 2026-10-10 14:19:59.670214 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Faecalibacterium.prausnitzii
## 2026-10-10 14:19:59.807617 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.rectale
## 2026-10-10 14:19:59.958583 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.sp.3.1.31
## 2026-10-10 14:20:00.1131 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.hominis
## 2026-10-10 14:20:00.264249 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Subdoligranulum.unclassified
## 2026-10-10 14:20:00.41417 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-10-10 14:20:00.563996 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.torques
## 2026-10-10 14:20:00.722556 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Clostridium.leptum
## 2026-10-10 14:20:00.90929 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Odoribacter.splanchnicus
## 2026-10-10 14:20:01.06524 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Escherichia.coli
## 2026-10-10 14:20:01.218904 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.obeum
## 2026-10-10 14:20:01.380725 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bilophila.unclassified
## 2026-10-10 14:20:01.547797 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.uniformis
## 2026-10-10 14:20:01.724596 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.eligens
## 2026-10-10 14:20:01.883916 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Klebsiella.pneumoniae
## 2026-10-10 14:20:02.054036 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.bromii
## 2026-10-10 14:20:02.203605 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.vulgatus
## 2026-10-10 14:20:02.352961 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs C2likevirus.unclassified
## 2026-10-10 14:20:02.523993 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bifidobacterium.adolescentis
## 2026-10-10 14:20:02.672808 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.finegoldii
## 2026-10-10 14:20:02.835109 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.inulinivorans
## 2026-10-10 14:20:02.987352 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.onderdonkii
## 2026-10-10 14:20:03.151412 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.unclassified
## 2026-10-10 14:20:03.304311 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.hallii
## 2026-10-10 14:20:03.502857 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.intestinalis
## 2026-10-10 14:20:03.67558 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Prevotella.copri
## 2026-10-10 14:20:03.836794 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.dorei
## 2026-10-10 14:20:03.993613 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.fragilis
## 2026-10-10 14:20:04.167527 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.shahii
## 2026-10-10 14:20:05.766311 INFO::Plotting data for metadata number 4, antibiotics
## 2026-10-10 14:20:05.767233 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.inulinivorans
## 2026-10-10 14:20:05.908369 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.hominis
## 2026-10-10 14:20:06.072736 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.rectale
## 2026-10-10 14:20:06.265003 INFO::Creating boxplot for categorical data, antibiotics vs Dialister.invisus
## 2026-10-10 14:20:06.430198 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.intestinalis
## 2026-10-10 14:20:06.591068 INFO::Creating boxplot for categorical data, antibiotics vs Dorea.longicatena
## 2026-10-10 14:20:06.771989 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.callidus
## 2026-10-10 14:20:06.940676 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.bromii
## 2026-10-10 14:20:07.099528 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.obeum
## 2026-10-10 14:20:07.271425 INFO::Creating boxplot for categorical data, antibiotics vs Klebsiella.pneumoniae
## 2026-10-10 14:20:07.444058 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.adolescentis
## 2026-10-10 14:20:07.598817 INFO::Creating boxplot for categorical data, antibiotics vs Faecalibacterium.prausnitzii
## 2026-10-10 14:20:07.778328 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.hallii
## 2026-10-10 14:20:07.940208 INFO::Creating boxplot for categorical data, antibiotics vs Bilophila.unclassified
## 2026-10-10 14:20:08.113624 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.leptum
## 2026-10-10 14:20:08.275024 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-10-10 14:20:08.449776 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.finegoldii
## 2026-10-10 14:20:08.607738 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.sp.3.1.31
## 2026-10-10 14:20:09.043998 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.fragilis
## 2026-10-10 14:20:09.165246 INFO::Creating boxplot for categorical data, antibiotics vs Alistipes.onderdonkii
## 2026-10-10 14:20:09.288171 INFO::Creating boxplot for categorical data, antibiotics vs Sutterella.wadsworthensis
## 2026-10-10 14:20:09.411671 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.eligens
## 2026-10-10 14:20:09.533019 INFO::Creating boxplot for categorical data, antibiotics vs Collinsella.aerofaciens
## 2026-10-10 14:20:09.65783 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.thetaiotaomicron
## 2026-10-10 14:20:09.78114 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.eggerthii
## 2026-10-10 14:20:09.906068 INFO::Creating boxplot for categorical data, antibiotics vs Haemophilus.parainfluenzae
## 2026-10-10 14:20:10.029384 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.pseudocatenulatum
## 2026-10-10 14:20:10.153697 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.torques
## 2026-10-10 14:20:10.275476 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.ventriosum
## 2026-10-10 14:20:10.403143 INFO::Creating boxplot for categorical data, antibiotics vs Parasutterella.excrementihominis
## 2026-10-10 14:20:10.52722 INFO::Creating boxplot for categorical data, antibiotics vs Peptostreptococcaceae.noname.unclassified
## 2026-10-10 14:20:10.655252 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.dispar
## 2026-10-10 14:20:10.779167 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.atypica
## 2026-10-10 14:20:10.903611 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroidales.bacterium.ph8
## 2026-10-10 14:20:11.028208 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.nexile
## 2026-10-10 14:20:11.155385 INFO::Creating boxplot for categorical data, antibiotics vs Burkholderiales.bacterium.1.1.47
## 2026-10-10 14:20:11.31079 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.1.1.57FAA
## 2026-10-10 14:20:11.449128 INFO::Creating boxplot for categorical data, antibiotics vs Akkermansia.muciniphila
## 2026-10-10 14:20:11.585943 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.citroniae
## 2026-10-10 14:20:11.723585 INFO::Creating boxplot for categorical data, antibiotics vs Odoribacter.splanchnicus
## 2026-10-10 14:20:13.086798 INFO::Plotting data for metadata number 5, age
## 2026-10-10 14:20:13.08766 INFO::Creating scatter plot for continuous data, age vs Haemophilus.parainfluenzae
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the Maaslin2 package.
## Please report the issue at <https://github.com/biobakery/maaslin2/issues>.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 19 rows containing missing values or values outside the scale range
## (`geom_point()`).
## 2026-10-10 14:20:13.243575 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()`).
## 2026-10-10 14:20:13.422782 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()`).
## 2026-10-10 14:20:13.550278 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()`).
## 2026-10-10 14:20:13.697756 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()`).
## 2026-10-10 14:20:13.827856 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()`).
## 2026-10-10 14:20:13.958573 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()`).
## 2026-10-10 14:20:14.142339 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()`).
## 2026-10-10 14:20:14.285202 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()`).
## 2026-10-10 14:20:14.421364 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()`).
## 2026-10-10 14:20:14.557324 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()`).
## 2026-10-10 14:20:14.689878 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()`).
## 2026-10-10 14:20:14.837467 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()`).
## 2026-10-10 14:20:14.975324 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()`).
## 2026-10-10 14:20:15.107996 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()`).
## 2026-10-10 14:20:15.250175 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()`).
## 2026-10-10 14:20:15.383987 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()`).
## 2026-10-10 14:20:15.512635 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()`).
## 2026-10-10 14:20:15.654672 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()`).
## 2026-10-10 14:20:15.785553 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()`).
## 2026-10-10 14:20:15.931137 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()`).
## 2026-10-10 14:20:16.062069 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()`).
## 2026-10-10 14:20:17.589334 INFO::Plotting data for metadata number 6, diagnosis
## 2026-10-10 14:20:17.590243 INFO::Creating boxplot for categorical data, diagnosis vs Bifidobacterium.adolescentis
## 2026-10-10 14:20:17.73556 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2026-10-10 14:20:17.905473 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2026-10-10 14:20:18.068292 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2026-10-10 14:20:18.231454 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2026-10-10 14:20:18.401323 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.clostridioforme
## 2026-10-10 14:20:18.555502 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2026-10-10 14:20:18.727836 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2026-10-10 14:20:18.91735 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2026-10-10 14:20:19.087688 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2026-10-10 14:20:19.24961 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.inulinivorans
## 2026-10-10 14:20:19.42864 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2026-10-10 14:20:19.594398 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2026-10-10 14:20:19.765604 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2026-10-10 14:20:19.933676 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.goldsteinii
## 2026-10-10 14:20:20.096911 INFO::Creating boxplot for categorical data, diagnosis vs Bilophila.unclassified
## 2026-10-10 14:20:20.268014 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2026-10-10 14:20:20.434955 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2026-10-10 14:20:20.597116 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2026-10-10 14:20:20.771676 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2026-10-10 14:20:20.940415 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.ventriosum
## 2026-10-10 14:20:21.143541 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2026-10-10 14:20:21.310775 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2026-10-10 14:20:21.499534 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2026-10-10 14:20:21.663928 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2026-10-10 14:20:21.849602 INFO::Creating boxplot for categorical data, diagnosis vs Subdoligranulum.unclassified
## 2026-10-10 14:20:22.02827 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2026-10-10 14:20:22.202187 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2026-10-10 14:20:22.388512 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.unclassified
## 2026-10-10 14:20:22.572116 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.lactaris
## 2026-10-10 14:20:22.748894 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2026-10-10 14:20:22.922379 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.gnavus
## 2026-10-10 14:20:23.096998 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.fragilis
## 2026-10-10 14:20:23.273706 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2026-10-10 14:20:23.700138 INFO::Creating boxplot for categorical data, diagnosis vs Odoribacter.splanchnicus
## 2026-10-10 14:20:23.830818 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.distasonis
## 2026-10-10 14:20:23.957655 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2026-10-10 14:20:24.086802 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.finegoldii
## 2026-10-10 14:20:24.217486 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2026-10-10 14:20:24.343132 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2026-10-10 14:20:24.472116 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2026-10-10 14:20:24.601 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2026-10-10 14:20:24.730064 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.siraeum
Session info from running the demo in R can be displayed with the following command.
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 26.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] Maaslin2_1.26.0
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.6 biglm_0.9-3 xfun_0.61
## [4] bslib_0.12.0 ggplot2_4.0.3 lattice_0.23-1
## [7] numDeriv_2016.8-1.1 vctrs_0.7.3 tools_4.6.1
## [10] Rdpack_2.6.6 generics_0.1.4 parallel_4.6.1
## [13] tibble_3.3.1 DEoptimR_1.2-2 cluster_2.1.8.3
## [16] pkgconfig_2.0.3 logging_0.10-111 pheatmap_1.0.13
## [19] Matrix_1.7-6 data.table_1.18.6.1 RColorBrewer_1.1-3
## [22] S7_0.2.2 lifecycle_1.0.5 compiler_4.6.1
## [25] farver_2.1.2 lmerTest_3.2-1 permute_0.9-10
## [28] htmltools_0.5.9 sys_3.4.3 buildtools_1.0.0
## [31] sass_0.4.10 hash_2.2.6.4 yaml_2.3.12
## [34] pillar_1.11.1 nloptr_2.2.1 crayon_1.5.3
## [37] jquerylib_0.1.4 MASS_7.3-66 cachem_1.1.0
## [40] vegan_2.7-6 reformulas_0.4.4 boot_1.3-32
## [43] nlme_3.1-171 robustbase_0.99-7 tidyselect_1.2.1
## [46] digest_0.6.39 mvtnorm_1.4-2 dplyr_1.2.1
## [49] labeling_0.4.3 maketools_1.3.2 splines_4.6.1
## [52] pcaPP_2.0-7 fastmap_1.2.0 grid_4.6.1
## [55] cli_3.6.6 magrittr_2.0.5 withr_3.0.3
## [58] scales_1.4.0 rmarkdown_2.32 otel_0.2.0
## [61] lme4_2.0-6 pbapply_1.7-5 evaluate_1.0.5
## [64] knitr_1.52 rbibutils_2.4.1 mgcv_1.9-4
## [67] rlang_1.3.0 Rcpp_1.1.2 glue_1.8.1
## [70] optparse_1.8.2 DBI_1.3.0 minqa_1.2.8
## [73] jsonlite_2.0.0 R6_2.6.1
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 ]
Maaslin2.R: command not found. How do I fix this?
Error in library(Maaslin2): there is no package called 'Maaslin2'.
How do I fix this?