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 maaslin2Install Bioconductor and then install Maaslin2
if(!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Maaslin2")
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.
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-04-28 18:58:01.175314 INFO::Writing function arguments to log file
## 2026-04-28 18:58:01.206689 INFO::Verifying options selected are valid
## 2026-04-28 18:58:01.238702 INFO::Determining format of input files
## 2026-04-28 18:58:01.239922 INFO::Input format is data samples as rows and metadata samples as rows
## 2026-04-28 18:58:01.244263 INFO::Formula for random effects: expr ~ (1 | site) + (1 | subject)
## 2026-04-28 18:58:01.245351 INFO::Formula for fixed effects: expr ~ diagnosis + dysbiosisnonIBD + dysbiosisUC + dysbiosisCD + antibiotics + age
## 2026-04-28 18:58:01.247557 INFO::Filter data based on min abundance and min prevalence
## 2026-04-28 18:58:01.248278 INFO::Total samples in data: 1595
## 2026-04-28 18:58:01.248948 INFO::Min samples required with min abundance for a feature not to be filtered: 159.500000
## 2026-04-28 18:58:01.253715 INFO::Total filtered features: 0
## 2026-04-28 18:58:01.254663 INFO::Filtered feature names from abundance and prevalence filtering:
## 2026-04-28 18:58:01.262855 INFO::Total filtered features with variance filtering: 0
## 2026-04-28 18:58:01.263859 INFO::Filtered feature names from variance filtering:
## 2026-04-28 18:58:01.264575 INFO::Running selected normalization method: TSS
## 2026-04-28 18:58:02.326574 INFO::Bypass z-score application to metadata
## 2026-04-28 18:58:02.327594 INFO::Running selected transform method: LOG
## 2026-04-28 18:58:02.340749 INFO::Running selected analysis method: LM
## 2026-04-28 18:58:02.667454 INFO::Fitting model to feature number 1, Bifidobacterium.adolescentis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:03.55528 INFO::Fitting model to feature number 2, Bifidobacterium.bifidum
## 2026-04-28 18:58:03.711771 INFO::Fitting model to feature number 3, Bifidobacterium.longum
## 2026-04-28 18:58:03.867244 INFO::Fitting model to feature number 4, Bifidobacterium.pseudocatenulatum
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:04.008495 INFO::Fitting model to feature number 5, Collinsella.aerofaciens
## 2026-04-28 18:58:04.157544 INFO::Fitting model to feature number 6, Bacteroides.caccae
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:04.291561 INFO::Fitting model to feature number 7, Bacteroides.cellulosilyticus
## 2026-04-28 18:58:04.436975 INFO::Fitting model to feature number 8, Bacteroides.dorei
## 2026-04-28 18:58:04.584248 INFO::Fitting model to feature number 9, Bacteroides.eggerthii
## 2026-04-28 18:58:04.721647 INFO::Fitting model to feature number 10, Bacteroides.faecis
## 2026-04-28 18:58:04.863201 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-04-28 18:58:04.979628 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-04-28 18:58:05.114419 INFO::Fitting model to feature number 12, Bacteroides.fragilis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:05.246166 INFO::Fitting model to feature number 13, Bacteroides.intestinalis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:05.387668 INFO::Fitting model to feature number 14, Bacteroides.massiliensis
## 2026-04-28 18:58:05.522121 INFO::Fitting model to feature number 15, Bacteroides.ovatus
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:05.649576 INFO::Fitting model to feature number 16, Bacteroides.salyersiae
## 2026-04-28 18:58:05.792661 INFO::Fitting model to feature number 17, Bacteroides.stercoris
## 2026-04-28 18:58:05.931282 INFO::Fitting model to feature number 18, Bacteroides.thetaiotaomicron
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:06.063621 INFO::Fitting model to feature number 19, Bacteroides.uniformis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:06.227268 INFO::Fitting model to feature number 20, Bacteroides.vulgatus
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:06.369407 INFO::Fitting model to feature number 21, Bacteroides.xylanisolvens
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:06.518117 INFO::Fitting model to feature number 22, Bacteroidales.bacterium.ph8
## 2026-04-28 18:58:06.655035 INFO::Fitting model to feature number 23, Barnesiella.intestinihominis
## 2026-04-28 18:58:06.796564 INFO::Fitting model to feature number 24, Coprobacter.fastidiosus
## 2026-04-28 18:58:06.94296 INFO::Fitting model to feature number 25, Odoribacter.splanchnicus
## 2026-04-28 18:58:07.079217 INFO::Fitting model to feature number 26, Parabacteroides.distasonis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:07.211558 INFO::Fitting model to feature number 27, Parabacteroides.goldsteinii
## 2026-04-28 18:58:07.355687 INFO::Fitting model to feature number 28, Parabacteroides.merdae
## 2026-04-28 18:58:07.494295 INFO::Fitting model to feature number 29, Parabacteroides.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:07.874629 INFO::Fitting model to feature number 30, Paraprevotella.clara
## 2026-04-28 18:58:08.011526 INFO::Fitting model to feature number 31, Paraprevotella.unclassified
## 2026-04-28 18:58:08.144887 INFO::Fitting model to feature number 32, Prevotella.copri
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:08.275468 INFO::Fitting model to feature number 33, Alistipes.finegoldii
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:08.427696 INFO::Fitting model to feature number 34, Alistipes.onderdonkii
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:08.587587 INFO::Fitting model to feature number 35, Alistipes.putredinis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:08.727071 INFO::Fitting model to feature number 36, Alistipes.shahii
## 2026-04-28 18:58:08.872448 INFO::Fitting model to feature number 37, Alistipes.unclassified
## 2026-04-28 18:58:09.006282 INFO::Fitting model to feature number 38, Streptococcus.salivarius
## 2026-04-28 18:58:09.14711 INFO::Fitting model to feature number 39, Clostridium.bolteae
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:09.28936 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-04-28 18:58:09.398336 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-04-28 18:58:09.531652 INFO::Fitting model to feature number 41, Clostridium.clostridioforme
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:09.660195 INFO::Fitting model to feature number 42, Clostridium.hathewayi
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:09.797918 INFO::Fitting model to feature number 43, Clostridium.leptum
## 2026-04-28 18:58:09.942195 INFO::Fitting model to feature number 44, Clostridium.nexile
## 2026-04-28 18:58:10.07393 INFO::Fitting model to feature number 45, Clostridium.symbiosum
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:10.20365 INFO::Fitting model to feature number 46, Flavonifractor.plautii
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:10.338178 INFO::Fitting model to feature number 47, Eubacterium.eligens
## 2026-04-28 18:58:10.478323 INFO::Fitting model to feature number 48, Eubacterium.hallii
## 2026-04-28 18:58:10.617424 INFO::Fitting model to feature number 49, Eubacterium.rectale
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:10.755101 INFO::Fitting model to feature number 50, Eubacterium.siraeum
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:10.885086 INFO::Fitting model to feature number 51, Eubacterium.sp.3.1.31
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:11.0237 INFO::Fitting model to feature number 52, Eubacterium.ventriosum
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:11.165911 INFO::Fitting model to feature number 53, Ruminococcus.gnavus
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:11.301916 INFO::Fitting model to feature number 54, Ruminococcus.obeum
## 2026-04-28 18:58:11.449105 INFO::Fitting model to feature number 55, Ruminococcus.torques
## 2026-04-28 18:58:11.59936 INFO::Fitting model to feature number 56, Coprococcus.comes
## 2026-04-28 18:58:11.736876 INFO::Fitting model to feature number 57, Dorea.longicatena
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:11.871544 INFO::Fitting model to feature number 58, Lachnospiraceae.bacterium.1.1.57FAA
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:12.010899 INFO::Fitting model to feature number 59, Lachnospiraceae.bacterium.3.1.46FAA
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:12.152044 INFO::Fitting model to feature number 60, Roseburia.hominis
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:12.286575 INFO::Fitting model to feature number 61, Roseburia.intestinalis
## 2026-04-28 18:58:12.414144 INFO::Fitting model to feature number 62, Roseburia.inulinivorans
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:12.546292 INFO::Fitting model to feature number 63, Roseburia.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:12.684494 INFO::Fitting model to feature number 64, Oscillibacter.unclassified
## 2026-04-28 18:58:12.828521 INFO::Fitting model to feature number 65, Peptostreptococcaceae.noname.unclassified
## 2026-04-28 18:58:12.963773 INFO::Fitting model to feature number 66, Faecalibacterium.prausnitzii
## 2026-04-28 18:58:13.102354 INFO::Fitting model to feature number 67, Ruminococcus.bromii
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:13.235833 INFO::Fitting model to feature number 68, Ruminococcus.callidus
## 2026-04-28 18:58:13.366896 INFO::Fitting model to feature number 69, Ruminococcus.lactaris
## 2026-04-28 18:58:13.507024 INFO::Fitting model to feature number 70, Subdoligranulum.unclassified
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:13.643996 INFO::Fitting model to feature number 71, Coprobacillus.unclassified
## 2026-04-28 18:58:13.785306 INFO::Fitting model to feature number 72, Acidaminococcus.unclassified
## 2026-04-28 18:58:13.936632 INFO::Fitting model to feature number 73, Dialister.invisus
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:14.068877 INFO::Fitting model to feature number 74, Veillonella.atypica
## 2026-04-28 18:58:14.220357 INFO::Fitting model to feature number 75, Veillonella.dispar
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:14.357856 INFO::Fitting model to feature number 76, Veillonella.parvula
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:14.484524 INFO::Fitting model to feature number 77, Veillonella.unclassified
## 2026-04-28 18:58:14.615572 INFO::Fitting model to feature number 78, Burkholderiales.bacterium.1.1.47
## 2026-04-28 18:58:14.779554 INFO::Fitting model to feature number 79, Parasutterella.excrementihominis
## 2026-04-28 18:58:14.911877 INFO::Fitting model to feature number 80, Sutterella.wadsworthensis
## 2026-04-28 18:58:15.057533 INFO::Fitting model to feature number 81, Bilophila.unclassified
## 2026-04-28 18:58:15.206875 INFO::Fitting model to feature number 82, Escherichia.coli
## 2026-04-28 18:58:15.354785 INFO::Fitting model to feature number 83, Escherichia.unclassified
## 2026-04-28 18:58:15.593975 INFO::Fitting model to feature number 84, Klebsiella.pneumoniae
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:15.985716 INFO::Fitting model to feature number 85, Haemophilus.parainfluenzae
## boundary (singular) fit: see help('isSingular')
## 2026-04-28 18:58:16.393929 INFO::Fitting model to feature number 86, Akkermansia.muciniphila
## 2026-04-28 18:58:16.82435 INFO::Fitting model to feature number 87, C2likevirus.unclassified
## 2026-04-28 18:58:17.411297 INFO::Counting total values for each feature
## 2026-04-28 18:58:17.468235 INFO::Writing filtered data to file demo_output/features/filtered_data.tsv
## 2026-04-28 18:58:17.634585 INFO::Writing filtered, normalized data to file demo_output/features/filtered_data_norm.tsv
## 2026-04-28 18:58:17.786031 INFO::Writing filtered, normalized, transformed data to file demo_output/features/filtered_data_norm_transformed.tsv
## 2026-04-28 18:58:18.03175 INFO::Writing residuals to file demo_output/fits/residuals.rds
## 2026-04-28 18:58:18.127729 INFO::Writing fitted values to file demo_output/fits/fitted.rds
## 2026-04-28 18:58:18.189782 INFO::Writing extracted random effects to file demo_output/fits/ranef.rds
## 2026-04-28 18:58:18.202781 INFO::Writing all results to file (ordered by increasing q-values): demo_output/all_results.tsv
## 2026-04-28 18:58:18.214169 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-04-28 18:58:18.220054 INFO::Writing heatmap of significant results to file: demo_output/heatmap.pdf
## 2026-04-28 18:58:18.881799 INFO::Writing association plots (one for each significant association) to output folder: demo_output
## 2026-04-28 18:58:18.895819 INFO::Plotting associations from most to least significant, grouped by metadata
## 2026-04-28 18:58:18.898709 INFO::Plotting data for metadata number 1, dysbiosisCD
## 2026-04-28 18:58:18.902841 INFO::Creating boxplot for categorical data, dysbiosisCD vs Faecalibacterium.prausnitzii
## 2026-04-28 18:58:19.447801 INFO::Creating boxplot for categorical data, dysbiosisCD vs Subdoligranulum.unclassified
## 2026-04-28 18:58:19.866438 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.uniformis
## 2026-04-28 18:58:20.230961 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.rectale
## 2026-04-28 18:58:20.597741 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.vulgatus
## 2026-04-28 18:58:20.95499 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.ovatus
## 2026-04-28 18:58:21.317199 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.obeum
## 2026-04-28 18:58:21.680169 INFO::Creating boxplot for categorical data, dysbiosisCD vs Oscillibacter.unclassified
## 2026-04-28 18:58:22.046252 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.inulinivorans
## 2026-04-28 18:58:22.415637 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.hominis
## 2026-04-28 18:58:22.78349 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.thetaiotaomicron
## 2026-04-28 18:58:23.18001 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.putredinis
## 2026-04-28 18:58:23.556568 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.distasonis
## 2026-04-28 18:58:23.921495 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.dorei
## 2026-04-28 18:58:24.286706 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.shahii
## 2026-04-28 18:58:24.648292 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.xylanisolvens
## 2026-04-28 18:58:25.007222 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.leptum
## 2026-04-28 18:58:25.372693 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dorea.longicatena
## 2026-04-28 18:58:25.733257 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.caccae
## 2026-04-28 18:58:26.09627 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-04-28 18:58:26.460295 INFO::Creating boxplot for categorical data, dysbiosisCD vs Escherichia.coli
## 2026-04-28 18:58:26.884334 INFO::Creating boxplot for categorical data, dysbiosisCD vs Klebsiella.pneumoniae
## 2026-04-28 18:58:27.249851 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bilophila.unclassified
## 2026-04-28 18:58:27.616595 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.finegoldii
## 2026-04-28 18:58:27.991721 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.eligens
## 2026-04-28 18:58:28.357785 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.stercoris
## 2026-04-28 18:58:28.730539 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprococcus.comes
## 2026-04-28 18:58:29.10949 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.fragilis
## 2026-04-28 18:58:29.487762 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.finegoldii
## 2026-04-28 18:58:29.845667 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.hallii
## 2026-04-28 18:58:30.210406 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.faecis
## 2026-04-28 18:58:30.591714 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.clara
## 2026-04-28 18:58:30.985991 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.siraeum
## 2026-04-28 18:58:31.350767 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.merdae
## 2026-04-28 18:58:31.717408 INFO::Creating boxplot for categorical data, dysbiosisCD vs Paraprevotella.unclassified
## 2026-04-28 18:58:32.08803 INFO::Creating boxplot for categorical data, dysbiosisCD vs Collinsella.aerofaciens
## 2026-04-28 18:58:32.451207 INFO::Creating boxplot for categorical data, dysbiosisCD vs Odoribacter.splanchnicus
## 2026-04-28 18:58:32.818313 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.clostridioforme
## 2026-04-28 18:58:33.183724 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.eggerthii
## 2026-04-28 18:58:33.550547 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.onderdonkii
## 2026-04-28 18:58:33.911243 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.ventriosum
## 2026-04-28 18:58:34.282039 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.lactaris
## 2026-04-28 18:58:34.648174 INFO::Creating boxplot for categorical data, dysbiosisCD vs Burkholderiales.bacterium.1.1.47
## 2026-04-28 18:58:35.011956 INFO::Creating boxplot for categorical data, dysbiosisCD vs Dialister.invisus
## 2026-04-28 18:58:35.687534 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.bromii
## 2026-04-28 18:58:36.045754 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parasutterella.excrementihominis
## 2026-04-28 18:58:36.398886 INFO::Creating boxplot for categorical data, dysbiosisCD vs Alistipes.unclassified
## 2026-04-28 18:58:36.784016 INFO::Creating boxplot for categorical data, dysbiosisCD vs Ruminococcus.torques
## 2026-04-28 18:58:37.142119 INFO::Creating boxplot for categorical data, dysbiosisCD vs Coprobacillus.unclassified
## 2026-04-28 18:58:37.498323 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.cellulosilyticus
## 2026-04-28 18:58:37.852088 INFO::Creating boxplot for categorical data, dysbiosisCD vs Roseburia.intestinalis
## 2026-04-28 18:58:38.205193 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.unclassified
## 2026-04-28 18:58:38.564081 INFO::Creating boxplot for categorical data, dysbiosisCD vs Acidaminococcus.unclassified
## 2026-04-28 18:58:38.919316 INFO::Creating boxplot for categorical data, dysbiosisCD vs Barnesiella.intestinihominis
## 2026-04-28 18:58:39.271457 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.massiliensis
## 2026-04-28 18:58:39.625732 INFO::Creating boxplot for categorical data, dysbiosisCD vs Eubacterium.sp.3.1.31
## 2026-04-28 18:58:39.981591 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroides.salyersiae
## 2026-04-28 18:58:40.332067 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bacteroidales.bacterium.ph8
## 2026-04-28 18:58:40.681478 INFO::Creating boxplot for categorical data, dysbiosisCD vs Clostridium.citroniae
## 2026-04-28 18:58:41.042309 INFO::Creating boxplot for categorical data, dysbiosisCD vs Flavonifractor.plautii
## 2026-04-28 18:58:41.438251 INFO::Creating boxplot for categorical data, dysbiosisCD vs Parabacteroides.goldsteinii
## 2026-04-28 18:58:41.816299 INFO::Creating boxplot for categorical data, dysbiosisCD vs Bifidobacterium.longum
## 2026-04-28 18:58:42.173559 INFO::Creating boxplot for categorical data, dysbiosisCD vs Lachnospiraceae.bacterium.1.1.57FAA
## 2026-04-28 18:58:45.943174 INFO::Plotting data for metadata number 2, dysbiosisUC
## 2026-04-28 18:58:45.944974 INFO::Creating boxplot for categorical data, dysbiosisUC vs Subdoligranulum.unclassified
## 2026-04-28 18:58:46.285869 INFO::Creating boxplot for categorical data, dysbiosisUC vs Faecalibacterium.prausnitzii
## 2026-04-28 18:58:46.664489 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.caccae
## 2026-04-28 18:58:47.045674 INFO::Creating boxplot for categorical data, dysbiosisUC vs Oscillibacter.unclassified
## 2026-04-28 18:58:47.429772 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.uniformis
## 2026-04-28 18:58:47.802458 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.siraeum
## 2026-04-28 18:58:48.17348 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.ovatus
## 2026-04-28 18:58:48.53264 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.fragilis
## 2026-04-28 18:58:48.909907 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.shahii
## 2026-04-28 18:58:49.285255 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.rectale
## 2026-04-28 18:58:49.655318 INFO::Creating boxplot for categorical data, dysbiosisUC vs Roseburia.hominis
## 2026-04-28 18:58:50.030118 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.putredinis
## 2026-04-28 18:58:50.422043 INFO::Creating boxplot for categorical data, dysbiosisUC vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-04-28 18:58:50.803708 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.hallii
## 2026-04-28 18:58:51.178141 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.xylanisolvens
## 2026-04-28 18:58:51.543992 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.stercoris
## 2026-04-28 18:58:51.913857 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.finegoldii
## 2026-04-28 18:58:52.288956 INFO::Creating boxplot for categorical data, dysbiosisUC vs Barnesiella.intestinihominis
## 2026-04-28 18:58:52.658206 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.leptum
## 2026-04-28 18:58:53.089185 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.gnavus
## 2026-04-28 18:58:53.470081 INFO::Creating boxplot for categorical data, dysbiosisUC vs Alistipes.onderdonkii
## 2026-04-28 18:58:53.841471 INFO::Creating boxplot for categorical data, dysbiosisUC vs Flavonifractor.plautii
## 2026-04-28 18:58:54.214776 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.merdae
## 2026-04-28 18:58:54.588307 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.cellulosilyticus
## 2026-04-28 18:58:54.961215 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.longum
## 2026-04-28 18:58:55.336935 INFO::Creating boxplot for categorical data, dysbiosisUC vs Klebsiella.pneumoniae
## 2026-04-28 18:58:55.724444 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.citroniae
## 2026-04-28 18:58:56.106043 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.ventriosum
## 2026-04-28 18:58:56.501581 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.distasonis
## 2026-04-28 18:58:56.875231 INFO::Creating boxplot for categorical data, dysbiosisUC vs Parabacteroides.goldsteinii
## 2026-04-28 18:58:57.246515 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.torques
## 2026-04-28 18:58:57.615958 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroidales.bacterium.ph8
## 2026-04-28 18:58:57.998887 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.obeum
## 2026-04-28 18:58:58.36772 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.bifidum
## 2026-04-28 18:58:58.762973 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bifidobacterium.adolescentis
## 2026-04-28 18:58:59.130743 INFO::Creating boxplot for categorical data, dysbiosisUC vs Collinsella.aerofaciens
## 2026-04-28 18:58:59.493984 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.hathewayi
## 2026-04-28 18:58:59.860991 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bilophila.unclassified
## 2026-04-28 18:59:00.227425 INFO::Creating boxplot for categorical data, dysbiosisUC vs Eubacterium.eligens
## 2026-04-28 18:59:00.636144 INFO::Creating boxplot for categorical data, dysbiosisUC vs Bacteroides.vulgatus
## 2026-04-28 18:59:01.01498 INFO::Creating boxplot for categorical data, dysbiosisUC vs Clostridium.bolteae
## 2026-04-28 18:59:01.397385 INFO::Creating boxplot for categorical data, dysbiosisUC vs Dialister.invisus
## 2026-04-28 18:59:01.778569 INFO::Creating boxplot for categorical data, dysbiosisUC vs Ruminococcus.lactaris
## 2026-04-28 18:59:02.158978 INFO::Creating boxplot for categorical data, dysbiosisUC vs Burkholderiales.bacterium.1.1.47
## 2026-04-28 18:59:06.004091 INFO::Plotting data for metadata number 3, dysbiosisnonIBD
## 2026-04-28 18:59:06.006025 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Faecalibacterium.prausnitzii
## 2026-04-28 18:59:06.363166 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.rectale
## 2026-04-28 18:59:06.747168 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.sp.3.1.31
## 2026-04-28 18:59:07.131439 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.hominis
## 2026-04-28 18:59:07.505843 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Subdoligranulum.unclassified
## 2026-04-28 18:59:07.894915 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-04-28 18:59:08.284603 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.torques
## 2026-04-28 18:59:08.681852 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Clostridium.leptum
## 2026-04-28 18:59:09.123252 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Odoribacter.splanchnicus
## 2026-04-28 18:59:09.507723 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Escherichia.coli
## 2026-04-28 18:59:09.889794 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.obeum
## 2026-04-28 18:59:10.277414 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bilophila.unclassified
## 2026-04-28 18:59:10.682783 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.uniformis
## 2026-04-28 18:59:11.082423 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.eligens
## 2026-04-28 18:59:11.487489 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Klebsiella.pneumoniae
## 2026-04-28 18:59:11.880812 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Ruminococcus.bromii
## 2026-04-28 18:59:12.271307 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.vulgatus
## 2026-04-28 18:59:12.657133 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs C2likevirus.unclassified
## 2026-04-28 18:59:13.05987 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bifidobacterium.adolescentis
## 2026-04-28 18:59:13.449624 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.finegoldii
## 2026-04-28 18:59:13.849527 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.inulinivorans
## 2026-04-28 18:59:14.246965 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.onderdonkii
## 2026-04-28 18:59:14.638214 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.unclassified
## 2026-04-28 18:59:15.033024 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Eubacterium.hallii
## 2026-04-28 18:59:15.415192 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Roseburia.intestinalis
## 2026-04-28 18:59:15.821332 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Prevotella.copri
## 2026-04-28 18:59:16.214241 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.dorei
## 2026-04-28 18:59:16.647538 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Bacteroides.fragilis
## 2026-04-28 18:59:17.04306 INFO::Creating boxplot for categorical data, dysbiosisnonIBD vs Alistipes.shahii
## 2026-04-28 18:59:21.04526 INFO::Plotting data for metadata number 4, antibiotics
## 2026-04-28 18:59:21.047142 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.inulinivorans
## 2026-04-28 18:59:21.390688 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.hominis
## 2026-04-28 18:59:21.764893 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.rectale
## 2026-04-28 18:59:22.141935 INFO::Creating boxplot for categorical data, antibiotics vs Dialister.invisus
## 2026-04-28 18:59:22.521667 INFO::Creating boxplot for categorical data, antibiotics vs Roseburia.intestinalis
## 2026-04-28 18:59:22.899111 INFO::Creating boxplot for categorical data, antibiotics vs Dorea.longicatena
## 2026-04-28 18:59:23.275244 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.callidus
## 2026-04-28 18:59:23.651877 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.bromii
## 2026-04-28 18:59:24.035689 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.obeum
## 2026-04-28 18:59:24.415393 INFO::Creating boxplot for categorical data, antibiotics vs Klebsiella.pneumoniae
## 2026-04-28 18:59:25.122188 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.adolescentis
## 2026-04-28 18:59:25.458472 INFO::Creating boxplot for categorical data, antibiotics vs Faecalibacterium.prausnitzii
## 2026-04-28 18:59:25.787922 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.hallii
## 2026-04-28 18:59:26.133708 INFO::Creating boxplot for categorical data, antibiotics vs Bilophila.unclassified
## 2026-04-28 18:59:26.475147 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.leptum
## 2026-04-28 18:59:26.819957 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.3.1.46FAA
## 2026-04-28 18:59:27.158471 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.finegoldii
## 2026-04-28 18:59:27.498166 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.sp.3.1.31
## 2026-04-28 18:59:27.82595 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.fragilis
## 2026-04-28 18:59:28.15345 INFO::Creating boxplot for categorical data, antibiotics vs Alistipes.onderdonkii
## 2026-04-28 18:59:28.488196 INFO::Creating boxplot for categorical data, antibiotics vs Sutterella.wadsworthensis
## 2026-04-28 18:59:28.826152 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.eligens
## 2026-04-28 18:59:29.160069 INFO::Creating boxplot for categorical data, antibiotics vs Collinsella.aerofaciens
## 2026-04-28 18:59:29.504928 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.thetaiotaomicron
## 2026-04-28 18:59:29.843534 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroides.eggerthii
## 2026-04-28 18:59:30.189979 INFO::Creating boxplot for categorical data, antibiotics vs Haemophilus.parainfluenzae
## 2026-04-28 18:59:30.529871 INFO::Creating boxplot for categorical data, antibiotics vs Bifidobacterium.pseudocatenulatum
## 2026-04-28 18:59:30.872467 INFO::Creating boxplot for categorical data, antibiotics vs Ruminococcus.torques
## 2026-04-28 18:59:31.211756 INFO::Creating boxplot for categorical data, antibiotics vs Eubacterium.ventriosum
## 2026-04-28 18:59:31.567548 INFO::Creating boxplot for categorical data, antibiotics vs Parasutterella.excrementihominis
## 2026-04-28 18:59:31.912782 INFO::Creating boxplot for categorical data, antibiotics vs Peptostreptococcaceae.noname.unclassified
## 2026-04-28 18:59:32.254317 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.dispar
## 2026-04-28 18:59:32.593189 INFO::Creating boxplot for categorical data, antibiotics vs Veillonella.atypica
## 2026-04-28 18:59:32.939043 INFO::Creating boxplot for categorical data, antibiotics vs Bacteroidales.bacterium.ph8
## 2026-04-28 18:59:33.308967 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.nexile
## 2026-04-28 18:59:33.651901 INFO::Creating boxplot for categorical data, antibiotics vs Burkholderiales.bacterium.1.1.47
## 2026-04-28 18:59:33.995224 INFO::Creating boxplot for categorical data, antibiotics vs Lachnospiraceae.bacterium.1.1.57FAA
## 2026-04-28 18:59:34.342352 INFO::Creating boxplot for categorical data, antibiotics vs Akkermansia.muciniphila
## 2026-04-28 18:59:34.676341 INFO::Creating boxplot for categorical data, antibiotics vs Clostridium.citroniae
## 2026-04-28 18:59:35.020984 INFO::Creating boxplot for categorical data, antibiotics vs Odoribacter.splanchnicus
## 2026-04-28 18:59:38.580581 INFO::Plotting data for metadata number 5, age
## 2026-04-28 18:59:38.582245 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-04-28 18:59:38.978002 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-04-28 18:59:39.406931 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-04-28 18:59:39.727295 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-04-28 18:59:40.068129 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-04-28 18:59:40.398621 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-04-28 18:59:40.732338 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-04-28 18:59:41.069652 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-04-28 18:59:41.398257 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-04-28 18:59:41.728166 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-04-28 18:59:42.140563 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-04-28 18:59:42.4815 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-04-28 18:59:42.817141 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-04-28 18:59:43.161443 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-04-28 18:59:43.49643 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-04-28 18:59:43.824219 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-04-28 18:59:44.158552 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-04-28 18:59:44.485435 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-04-28 18:59:44.812457 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-04-28 18:59:45.147612 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-04-28 18:59:45.486063 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-04-28 18:59:45.816292 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-04-28 18:59:49.341064 INFO::Plotting data for metadata number 6, diagnosis
## 2026-04-28 18:59:49.342888 INFO::Creating boxplot for categorical data, diagnosis vs Bifidobacterium.adolescentis
## 2026-04-28 18:59:49.758766 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2026-04-28 18:59:50.141193 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2026-04-28 18:59:50.519335 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2026-04-28 18:59:50.905808 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2026-04-28 18:59:51.285457 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.clostridioforme
## 2026-04-28 18:59:51.664106 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2026-04-28 18:59:52.044209 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2026-04-28 18:59:52.42336 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2026-04-28 18:59:52.803354 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2026-04-28 18:59:53.185292 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.inulinivorans
## 2026-04-28 18:59:53.566126 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.bromii
## 2026-04-28 18:59:53.949607 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.shahii
## 2026-04-28 18:59:54.329819 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2026-04-28 18:59:54.709067 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.goldsteinii
## 2026-04-28 18:59:55.085671 INFO::Creating boxplot for categorical data, diagnosis vs Bilophila.unclassified
## 2026-04-28 18:59:55.456782 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.leptum
## 2026-04-28 18:59:55.860341 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2026-04-28 18:59:56.250558 INFO::Creating boxplot for categorical data, diagnosis vs Coprobacillus.unclassified
## 2026-04-28 18:59:56.632395 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2026-04-28 18:59:57.002144 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.ventriosum
## 2026-04-28 18:59:57.444621 INFO::Creating boxplot for categorical data, diagnosis vs Roseburia.hominis
## 2026-04-28 18:59:57.831274 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2026-04-28 18:59:58.216516 INFO::Creating boxplot for categorical data, diagnosis vs Akkermansia.muciniphila
## 2026-04-28 18:59:58.609912 INFO::Creating boxplot for categorical data, diagnosis vs Sutterella.wadsworthensis
## 2026-04-28 18:59:59.001805 INFO::Creating boxplot for categorical data, diagnosis vs Subdoligranulum.unclassified
## 2026-04-28 18:59:59.394458 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.symbiosum
## 2026-04-28 18:59:59.801059 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.onderdonkii
## 2026-04-28 19:00:00.192457 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.unclassified
## 2026-04-28 19:00:00.578732 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.lactaris
## 2026-04-28 19:00:00.967535 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2026-04-28 19:00:01.353332 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.gnavus
## 2026-04-28 19:00:01.755868 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.fragilis
## 2026-04-28 19:00:02.17161 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2026-04-28 19:00:02.563778 INFO::Creating boxplot for categorical data, diagnosis vs Odoribacter.splanchnicus
## 2026-04-28 19:00:02.955276 INFO::Creating boxplot for categorical data, diagnosis vs Parabacteroides.distasonis
## 2026-04-28 19:00:03.362425 INFO::Creating boxplot for categorical data, diagnosis vs Eubacterium.rectale
## 2026-04-28 19:00:03.758085 INFO::Creating boxplot for categorical data, diagnosis vs Bacteroides.finegoldii
## 2026-04-28 19:00:04.146656 INFO::Creating boxplot for categorical data, diagnosis vs Ruminococcus.callidus
## 2026-04-28 19:00:04.583325 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.finegoldii
## 2026-04-28 19:00:05.017028 INFO::Creating boxplot for categorical data, diagnosis vs Alistipes.putredinis
## 2026-04-28 19:00:05.426394 INFO::Creating boxplot for categorical data, diagnosis vs Clostridium.bolteae
## 2026-04-28 19:00:05.840283 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.
sessionInfo()
## R version 4.6.0 RC (2026-04-17 r89917)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.4 LTS
##
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.23-bioc/R/lib/libRblas.so
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0 LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_GB LC_COLLATE=C
## [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: America/New_York
## 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.57
## [4] bslib_0.10.0 ggplot2_4.0.3 lattice_0.22-9
## [7] numDeriv_2016.8-1.1 vctrs_0.7.3 tools_4.6.0
## [10] Rdpack_2.6.6 generics_0.1.4 parallel_4.6.0
## [13] tibble_3.3.1 DEoptimR_1.1-4 cluster_2.1.8.2
## [16] pkgconfig_2.0.3 logging_0.10-108 pheatmap_1.0.13
## [19] Matrix_1.7-5 data.table_1.18.2.1 RColorBrewer_1.1-3
## [22] S7_0.2.2 lifecycle_1.0.5 compiler_4.6.0
## [25] farver_2.1.2 lmerTest_3.2-1 permute_0.9-10
## [28] htmltools_0.5.9 sass_0.4.10 hash_2.2.6.4
## [31] yaml_2.3.12 pillar_1.11.1 nloptr_2.2.1
## [34] crayon_1.5.3 jquerylib_0.1.4 MASS_7.3-65
## [37] cachem_1.1.0 vegan_2.7-3 reformulas_0.4.4
## [40] boot_1.3-32 nlme_3.1-169 robustbase_0.99-7
## [43] tidyselect_1.2.1 digest_0.6.39 mvtnorm_1.3-7
## [46] dplyr_1.2.1 labeling_0.4.3 splines_4.6.0
## [49] pcaPP_2.0-5 fastmap_1.2.0 grid_4.6.0
## [52] cli_3.6.6 magrittr_2.0.5 dichromat_2.0-0.1
## [55] withr_3.0.2 scales_1.4.0 rmarkdown_2.31
## [58] otel_0.2.0 lme4_2.0-1 pbapply_1.7-4
## [61] evaluate_1.0.5 knitr_1.51 rbibutils_2.4.1
## [64] mgcv_1.9-4 rlang_1.2.0 Rcpp_1.1.1-1.1
## [67] glue_1.8.1 optparse_1.8.2 DBI_1.3.0
## [70] minqa_1.2.8 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?