MMUPHin is a Bioconductor package implementing meta-analysis methods for microbial community profiles. It has interfaces for: a) covariate-controlled batch and study effect adjustment, b) meta-analytic differential abundance testing, and meta-analytic discovery of c) discrete (cluster-based) or d) continuous unsupervised population structure.

Overall, MMUPHin enables the normalization and combination of multiple microbial community studies. It can then help in identifying microbes, genes, or pathways that are differential with respect to combined phenotypes. Finally, it can find clusters or gradients of sample types that reproduce consistently among studies.

For more information on the technical aspects:

User Manual || User Tutorial || Forum

A manuscript describing MMUPHin, with its application in a collection of inflammatory bowel disease studies is currently in preparation:

Siyuan Ma, Dmitry Shungin, Himel Mallick, Melanie Schirmer, Long Nguyen, Raivo Kolde, Eric Franzosa, Hera Vlamakis, Ramnik Xavier, Curtis Huttenhower Population Structure Discovery in Meta-Analyzed Microbial Communities and Inflammatory Bowel Disease.

In the meantime, if you use MMUPHin in your work, please cite the package itself (from within R, enter citation(“MMUPHin”)):

Ma S (2019). MMUPHin: Meta-analysis Methods with Uniform Pipeline for Heterogeneity in Microbiome Studies. R package version 0.99.3.


MMUPHin is a Bioconductor package and can be installed via the following commands in R:
    • Install BiocManager if not already installed:

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

    • Install MMUPHin. This will automatically install all of the package’s dependencies:


quick start guide


The following are minimal examples on functionalities of MMUPHin. For more detailed walkthrough, please refer to its vignette.

  • Load tutorial datasets:

    data("CRC_abd", "CRC_meta")

  • Perform covariate-adjusted batch effect correction:

    fit_adjust_batch <- adjust_batch(feature_abd = CRC_abd,batch = "studyID", covariates = "study_condition",data = CRC_meta)

  • Perform meta-analytical differential abundance testing:

    fit_lm_meta <- lm_meta(feature_abd = CRC_abd, batch = "studyID", exposure = "study_condition", covariates = c("gender", "age", "BMI"), data = CRC_meta)