GENOMICS-CDDBRG/SeqPure-BLAST
0
Bulamarwa Metagenomics Tool 2: Statistics and Reporting
Second tool in a two tool metagenomics workflow. Takes a species abundance table and sample metadata, typically species_relative_abundance.tsv (or species_estimated_reads.tsv for count based Chao1) and samplesheet_resolved.csv produced by Gulumba Metagenomics Tool 1. Abundance tables from other pipelines, such as MetaPhlAn or HUMAnN, are also accepted in either counts or relative abundance form.
What it does
- Alpha diversity: observed richness, Shannon, Simpson, and Chao1 when a validated integer count matrix is supplied.
- Beta diversity: Bray-Curtis, Jaccard, or Aitchison distance with PCoA.
- PERMANOVA and PERMDISP, both computed by direct label permutation rather than a parametric approximation.
- Exploratory CLR differential abundance with Benjamini-Hochberg FDR correction, explicitly labelled as exploratory rather than a covariate-adjusted ANCOM-BC2 or MaAsLin2 substitute.
- Optional cross-validated Random Forest classification, with out-of-fold performance metrics, held-out permutation importance, and post-hoc SHAP explanation.
- A
publication_package.zipwith atables/folder, afigures/folder at 300 dpi with editable SVGs, amethods.txtyou can adapt for a manuscript, and aREADME.txtdescribing every file.
Deploying this Space
- Create a new Space on Hugging Face, select the Docker SDK.
- Upload
app.py,requirements.txt, andDockerfilefrom this package (thisREADME.mdcan go too, since its front matter configures the Space). - Hugging Face builds the image and starts the container automatically. No external database is required for this tool.
Local test before deploying
pip install -r requirements.txt
python app.pyThe app listens on port 7860 by default, matching app_port above.
Notes
- All computation happens inside the container. No abundance data is sent anywhere outside the Space.
- Machine learning results are only meaningful with enough samples per group; the tool will skip that step rather than report an unreliable score if the dataset is too small.
