{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,23]],"date-time":"2026-10-23T20:03:15Z","timestamp":1792785795341,"version":"4.5.0"},"reference-count":33,"publisher":"Oxford University Press (OUP)","issue":"10","license":[{"start":{"date-parts":[[2026,10,13]],"date-time":"2026-10-13T00:00:00Z","timestamp":1791849600000},"content-version":"vor","delay-in-days":12,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"U.S. Department of Energy, Office of Science","award":["DE-SC0024320"],"award-info":[{"award-number":["DE-SC0024320"]}],"id":[{"id":"https:\/\/ror.org\/01bj3aw27","id-type":"ROR","asserted-by":"crossref"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026,10,2]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:sec>\n                    <jats:title>Summary<\/jats:title>\n                    <jats:p>Analysis of Compositions of Microbiomes with Bias Correction (ANCOM-BC) and its successor ANCOM-BC2 are critical algorithms for differential abundance analysis. Designed for handling compositional data, they feature the ability to estimate the unknown sampling fractions and correct the bias induced by their differences. While the original R package implementing the two methods is robust for standard dataset sizes, the increasing magnitude of modern multiomics studies presents computational challenges, often resulting in a runtime bottleneck for high-dimensional data. Here, we present native Python implementations of both ANCOM-BC and ANCOM-BC2 in the scikit-bio package, significantly accelerating the workflow and enabling their application to large-scale datasets. By leveraging vectorization with NumPy and numerical optimization in SciPy, we enhanced the efficiency of both methods without compromising their statistical accuracy. The benchmarking results revealed a dramatic increase in performance in both simulated and real datasets. We demonstrated that our Python implementations generated test results matching the original R code, while achieving 380- and 147-fold faster runtimes and 97.4% and 96.2% lower memory consumption on the largest tested dataset, respectively. The Python implementations allow for the analysis of datasets that are significantly larger than previously possible, and enable applications to alternative omics data types and complex statistical models that vary greatly by the number of samples, features, and covariates.<\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Availability and Implementation<\/jats:title>\n                    <jats:p>https:\/\/github.com\/scikit-bio\/scikit-bio<\/jats:p>\n                  <\/jats:sec>","DOI":"10.1093\/bioinformatics\/btag767","type":"journal-article","created":{"date-parts":[[2026,10,13]],"date-time":"2026-10-13T11:37:11Z","timestamp":1791891431000},"source":"Crossref","is-referenced-by-count":0,"title":["Efficient and scalable Python implementation of ANCOM-BC and ANCOM-BC2 for omics differential abundance testing"],"prefix":"10.1093","volume":"42","author":[{"given":"Zijun","family":"Wu","sequence":"first","affiliation":[{"name":"Biodesign Center for Fundamental and Applied Microbiomics, Arizona State University , Tempe, AZ 85281,","place":["United States"]}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4892-7871","authenticated-orcid":false,"given":"Huang","family":"Lin","sequence":"additional","affiliation":[{"name":"Department of Epidemiology and Biostatistics, School of Public Health, University of Maryland , College Park, MD 20742,","place":["United States"]}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"James T","family":"Morton","sequence":"additional","affiliation":[{"name":"Gutz Technologies, Inc. , Covina, CA 91723,","place":["United States"]}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Qiyun","family":"Zhu","sequence":"additional","affiliation":[{"name":"Biodesign Center for Fundamental and Applied Microbiomics, Arizona State University , Tempe, AZ 85281,","place":["United States"]},{"name":"School of Life Sciences, Arizona State University , Tempe, AZ 85281,","place":["United States"]}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"286","published-online":{"date-parts":[[2026,10,13]]},"reference":[{"key":"2026102312315221700_btag767-B1","doi-asserted-by":"publisher","first-page":"274","DOI":"10.1038\/s41592-025-02981-z","article-title":"Scikit-bio: a fundamental Python library for biological omic data analysis","volume":"23","author":"Aton","year":"2026","journal-title":"Nat Methods"},{"key":"2026102312315221700_btag767-B2","doi-asserted-by":"publisher","first-page":"795","DOI":"10.1038\/s41467-025-56249-3","article-title":"Compositional data analysis enables statistical rigor in comparative glycomics","volume":"16","author":"Bennett","year":"2025","journal-title":"Nat Commun"},{"key":"2026102312315221700_btag767-B3","doi-asserted-by":"publisher","first-page":"852","DOI":"10.1038\/s41587-019-0209-9","article-title":"Reproducible, interactive, scalable and extensible microbiome data science using QIIME 2","volume":"37","author":"Bolyen","year":"2019","journal-title":"Nat Biotechnol"},{"key":"2026102312315221700_btag767-B4","doi-asserted-by":"publisher","first-page":"6876","DOI":"10.1038\/s41467-021-27150-6","article-title":"scCODA is a Bayesian model for compositional single-cell data analysis","volume":"12","author":"B\u00fcttner","year":"2021","journal-title":"Nat Commun"},{"key":"2026102312315221700_btag767-B5","doi-asserted-by":"publisher","first-page":"15","DOI":"10.1186\/2049-2618-2-15","article-title":"Unifying the analysis of high-throughput sequencing datasets: characterizing RNA-seq, 16S rRNA gene sequencing and selective growth experiments by compositional data analysis","volume":"2","author":"Fernandes","year":"2014","journal-title":"Microbiome"},{"key":"2026102312315221700_btag767-B6","doi-asserted-by":"publisher","first-page":"lqaf108","DOI":"10.1093\/nargab\/lqaf108","article-title":"Explicit scale simulation for analysis of RNA-sequencing count data with ALDEx2","volume":"7","author":"Gloor","year":"2025","journal-title":"NAR Genom Bioinform"},{"key":"2026102312315221700_btag767-B7","doi-asserted-by":"publisher","first-page":"357","DOI":"10.1038\/s41586-020-2649-2","article-title":"Array programming with NumPy","volume":"585","author":"Harris","year":"2020","journal-title":"Nature"},{"key":"2026102312315221700_btag767-B8","doi-asserted-by":"publisher","first-page":"2114","DOI":"10.3389\/fmicb.2017.02114","article-title":"Analysis of microbiome data in the presence of excess zeros","volume":"8","author":"Kaul","year":"2017","journal-title":"Front Microbiol"},{"key":"2026102312315221700_btag767-B9","doi-asserted-by":"publisher","first-page":"742","DOI":"10.1021\/jasms.4c00434","article-title":"To impute or not to impute in untargeted metabolomics\u2013that is the compositional question","volume":"36","author":"Krutkin","year":"2025","journal-title":"J Am Soc Mass Spectrom"},{"key":"2026102312315221700_btag767-B10","doi-asserted-by":"publisher","first-page":"4344","DOI":"10.1038\/ncomms5344","article-title":"Tipping elements in the human intestinal ecosystem","volume":"5","author":"Lahti","year":"2014","journal-title":"Nat Commun"},{"key":"2026102312315221700_btag767-B11","doi-asserted-by":"publisher","first-page":"3514","DOI":"10.1038\/s41467-020-17041-7","article-title":"Analysis of compositions of microbiomes with bias correction","volume":"11","author":"Lin","year":"2020","journal-title":"Nat Commun"},{"key":"2026102312315221700_btag767-B12","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1038\/s41592-023-02092-7","article-title":"Multigroup analysis of compositions of microbiomes with covariate adjustments and repeated measures","volume":"21","author":"Lin","year":"2024","journal-title":"Nat Methods"},{"key":"2026102312315221700_btag767-B13","doi-asserted-by":"publisher","first-page":"550","DOI":"10.1186\/s13059-014-0550-8","article-title":"Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2","volume":"15","author":"Love","year":"2014","journal-title":"Genome Biol"},{"key":"2026102312315221700_btag767-B14","doi-asserted-by":"publisher","first-page":"27663","DOI":"10.3402\/mehd.v26.27663","article-title":"Analysis of composition of microbiomes: a novel method for studying microbial composition","volume":"26","author":"Mandal","year":"2015","journal-title":"Microb Ecol Health Dis"},{"key":"2026102312315221700_btag767-B15","doi-asserted-by":"publisher","first-page":"94","DOI":"10.1214\/19-aoas1283","article-title":"Modeling microbial abundances and dysbiosis with beta-binomial regression","volume":"14","author":"Martin","year":"2020","journal-title":"Ann Appl Stat"},{"key":"2026102312315221700_btag767-B16","doi-asserted-by":"publisher","first-page":"7","DOI":"10.1186\/2047-217X-1-7","article-title":"The Biological Observation Matrix (BIOM) format or: how I learned to stop worrying and love the ome-ome","volume":"1","author":"McDonald","year":"2012","journal-title":"Gigascience"},{"key":"2026102312315221700_btag767-B17","doi-asserted-by":"publisher","first-page":"btad547","DOI":"10.1093\/bioinformatics\/btad547","article-title":"PyDESeq2: a Python package for bulk RNA-seq differential expression analysis","volume":"39","author":"Muzellec","year":"2023","journal-title":"Bioinformatics"},{"key":"2026102312315221700_btag767-B18","doi-asserted-by":"publisher","first-page":"554","DOI":"10.1038\/s41592-025-02923-9","article-title":"MaAsLin 3: refining and extending generalized multivariable linear models for meta-omic association discovery","volume":"23","author":"Nickols","year":"2026","journal-title":"Nat Methods"},{"key":"2026102312315221700_btag767-B19","doi-asserted-by":"publisher","first-page":"2679","DOI":"10.1093\/cvr\/cvaf233","article-title":"Disturbed flow induces reprogramming of endothelial cells to immune-like and foam cells under hypercholesterolaemia during atherogenesis","volume":"121","author":"Park","year":"2025","journal-title":"Cardiovasc Res"},{"key":"2026102312315221700_btag767-B20","author":"Paszke","year":"2019"},{"key":"2026102312315221700_btag767-B21","doi-asserted-by":"publisher","first-page":"1200","DOI":"10.1038\/nmeth.2658","article-title":"Differential abundance analysis for microbial marker-gene surveys","volume":"10","author":"Paulson","year":"2013","journal-title":"Nat Methods"},{"key":"2026102312315221700_btag767-B22","author":"Pedregosa","year":"2012"},{"key":"2026102312315221700_btag767-B23","doi-asserted-by":"publisher","DOI":"10.1093\/bib\/bbaf130","article-title":"Elementary methods provide more replicable results in microbial differential abundance analysis","volume":"26","author":"Pelto","year":"2025","journal-title":"Brief Bioinform"},{"key":"2026102312315221700_btag767-B24","doi-asserted-by":"publisher","DOI":"10.1128\/mSystems.00230-19","article-title":"Interpretable log contrasts for the classification of health biomarkers: a new approach to balance selection","volume":"5","author":"Quinn","year":"2020","journal-title":"mSystems"},{"key":"2026102312315221700_btag767-B25","doi-asserted-by":"publisher","first-page":"2870","DOI":"10.1093\/bioinformatics\/bty175","article-title":"Understanding sequencing data as compositions: an outlook and review","volume":"34","author":"Quinn","year":"2018","journal-title":"Bioinformatics"},{"key":"2026102312315221700_btag767-B26","doi-asserted-by":"publisher","first-page":"e47","DOI":"10.1093\/nar\/gkv007","article-title":"Limma powers differential expression analyses for RNA-sequencing and microarray studies","volume":"43","author":"Ritchie","year":"2015","journal-title":"Nucleic Acids Res"},{"key":"2026102312315221700_btag767-B27","doi-asserted-by":"publisher","first-page":"139","DOI":"10.1093\/bioinformatics\/btp616","article-title":"edgeR: a bioconductor package for differential expression analysis of digital gene expression data","volume":"26","author":"Robinson","year":"2010","journal-title":"Bioinformatics"},{"key":"2026102312315221700_btag767-B28","doi-asserted-by":"publisher","first-page":"4227","DOI":"10.1038\/s41467-025-56829-3","article-title":"Machine learning-based meta-analysis reveals gut microbiome alterations associated with Parkinson\u2019s disease","volume":"16","author":"Romano","year":"2025","journal-title":"Nat Commun"},{"key":"2026102312315221700_btag767-B29","doi-asserted-by":"publisher","first-page":"2128","DOI":"10.1038\/s41564-022-01266-x","article-title":"Standardized multi-omics of Earth\u2019s microbiomes reveals microbial and metabolite diversity","volume":"7","author":"Shaffer","year":"2022","journal-title":"Nat Microbiol"},{"key":"2026102312315221700_btag767-B30","doi-asserted-by":"publisher","first-page":"507","DOI":"10.1038\/nature24460","article-title":"Quantitative microbiome profiling links gut community variation to microbial load","volume":"551","author":"Vandeputte","year":"2017","journal-title":"Nature"},{"key":"2026102312315221700_btag767-B31","doi-asserted-by":"publisher","first-page":"261","DOI":"10.1038\/s41592-019-0686-2","article-title":"SciPy 1.0: fundamental algorithms for scientific computing in Python","volume":"17","author":"Virtanen","year":"2020","journal-title":"Nat Methods"},{"key":"2026102312315221700_btag767-B32","doi-asserted-by":"publisher","first-page":"15","DOI":"10.1186\/s13059-017-1382-0","article-title":"SCANPY: large-scale single-cell gene expression data analysis","volume":"19","author":"Wolf","year":"2018","journal-title":"Genome Biol"},{"key":"2026102312315221700_btag767-B33","doi-asserted-by":"publisher","first-page":"130","DOI":"10.1186\/s40168-022-01320-0","article-title":"A comprehensive evaluation of microbial differential abundance analysis methods: current status and potential solutions","volume":"10","author":"Yang","year":"2022","journal-title":"Microbiome"}],"container-title":["Bioinformatics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/bioinformatics\/advance-article-pdf\/doi\/10.1093\/bioinformatics\/btag767\/71904220\/btag767.pdf","content-type":"application\/pdf","content-version":"am","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/42\/10\/btag767\/71904220\/btag767.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/42\/10\/btag767\/71904220\/btag767.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,10,23]],"date-time":"2026-10-23T16:31:57Z","timestamp":1792773117000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article\/doi\/10.1093\/bioinformatics\/btag767\/8913748"}},"subtitle":[],"editor":[{"given":"Janet","family":"Kelso","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"editor"}]}],"short-title":[],"issued":{"date-parts":[[2026,10]]},"references-count":33,"journal-issue":{"issue":"10","published-print":{"date-parts":[[2026,10,2]]}},"URL":"https:\/\/doi.org\/10.1093\/bioinformatics\/btag767","relation":{},"ISSN":["1367-4803","1367-4811"],"issn-type":[{"value":"1367-4803","type":"print"},{"value":"1367-4811","type":"electronic"}],"subject":[],"published-other":{"date-parts":[[2026,10]]},"published":{"date-parts":[[2026,10]]},"article-number":"btag767"}}