Shotgun Metagenomics Profiler
Comprehensive shotgun metagenomics analysis combining taxonomic classification, antimicrobial resistance gene detection, and functional pathway profiling from paired-end FASTQ files.
What it does
- Takes paired-end FASTQ files (R1, R2) or a single concatenated FASTQ as input
- Runs Kraken2 taxonomic classification against a standard database (e.g., Standard-8, PlusPF)
- Refines abundances with Bracken at species level (read re-estimation)
- Detects antimicrobial resistance genes with RGI against the CARD database
- Classifies detected ARGs by WHO critical priority pathogen association
- Optionally runs HUMAnN3 for functional pathway profiling (MetaCyc + UniRef)
- Calculates alpha diversity metrics from Bracken-adjusted species abundances:
- Shannon diversity index: H = -sum(p_i * ln(p_i)), where p_i is the proportion of classified reads assigned to species i
- Simpson diversity index: D = 1 - sum(p_i^2)
- Pielou evenness: J = H / ln(S), where S is the number of species detected
- Species richness: S = number of distinct species with at least 1 assigned read
- Generates four publication-quality figures:
- Figure 1: Taxonomy bar chart, top 20 species by relative abundance
- Figure 2: Resistome heatmap, ARG families by drug class with abundance
- Figure 3: WHO-critical ARG summary, priority-tier breakdown of detected resistance genes
- Figure 4: Alpha diversity summary (Shannon, Simpson, Pielou in a panel)
- Produces a full reproducibility bundle (commands.sh, environment.yml, checksums.sha256)
Why this exists
If you ask a general AI to "analyse a metagenome," it will:
- Not know which Kraken2 database to use or how to set confidence thresholds
- Hallucinate Bracken parameters for read-length and taxonomic level
- Miss the connection between detected ARGs and WHO priority pathogen lists
- Skip HUMAnN3 entirely (or misconfigure its database paths)
- Produce a single bar chart with no resistance context
- Skip diversity metric calculations (Shannon, Simpson, Pielou)
- Not provide a reproducibility bundle
This skill encodes the correct methodological decisions:
- Kraken2 confidence threshold of 0.2 (reduces false positives in environmental samples)
- Bracken re-estimation at species level with minimum 10 reads
- RGI MAIN with "Perfect" and "Strict" hit criteria only (no "Loose" hits)
- WHO Critical Priority Pathogen list mapped to detected ARG families
- HUMAnN3 with MetaCyc stratification for pathway-level functional context
- Thread count auto-detected from available CPUs
- Full reproducibility bundle for every run
Validated On
The skill works with any shotgun metagenome but has been validated on:
- Peru sewage metagenomics study (6 samples, 3 collection sites: Lima, Cusco, Iquitos)
- Environmental sewage samples with mixed microbial communities
- Read depths ranging from 2M to 15M paired-end reads per sample
WHO-Critical ARG Detection
A key feature is the classification of detected resistance genes by WHO priority tier:
| Priority |
Pathogen |
Resistance |
| Critical |
Acinetobacter baumannii |
Carbapenem-resistant |
| Critical |
Pseudomonas aeruginosa |
Carbapenem-resistant |
| Critical |
Enterobacteriaceae |
Carbapenem-resistant, 3rd-gen cephalosporin-resistant |
| High |
Enterococcus faecium |
Vancomycin-resistant |
| High |
Staphylococcus aureus |
Methicillin-resistant, vancomycin-resistant |
| High |
Helicobacter pylori |
Clarithromycin-resistant |
| High |
Campylobacter |
Fluoroquinolone-resistant |
| High |
Salmonella spp. |
Fluoroquinolone-resistant |
| High |
Neisseria gonorrhoeae |
3rd-gen cephalosporin-resistant, fluoroquinolone-resistant |
| Medium |
Streptococcus pneumoniae |
Penicillin-non-susceptible |
| Medium |
Haemophilus influenzae |
Ampicillin-resistant |
| Medium |
Shigella spp. |
Fluoroquinolone-resistant |
Usage
# Full pipeline (taxonomy + resistome + functional)
python metagenomics_profiler.py \
--r1 sample_R1.fastq.gz \
--r2 sample_R2.fastq.gz \
--output metagenomics_report
# Skip HUMAnN3 (faster — taxonomy + resistome only)
python metagenomics_profiler.py \
--r1 sample_R1.fastq.gz \
--r2 sample_R2.fastq.gz \
--output metagenomics_report \
--skip-functional
# Single concatenated FASTQ
python metagenomics_profiler.py \
--input combined.fastq.gz \
--output metagenomics_report
# Specify Kraken2 database path
python metagenomics_profiler.py \
--r1 sample_R1.fastq.gz \
--r2 sample_R2.fastq.gz \
--output metagenomics_report \
--kraken2-db /path/to/kraken2_db \
--read-length 150
Demo (works out of the box)
python metagenomics_profiler.py --demo --output demo_report
The demo uses pre-computed results from the Peru sewage metagenomics study (6 samples, 3 sites) and generates all figures and reports instantly without requiring external tools.
Example Output
Metagenomics Profiler — ClawBio
================================
Mode: demo (pre-computed Peru sewage data)
Samples: 6 (3 sites: Lima, Cusco, Iquitos)
Taxonomy (Kraken2 + Bracken):
Total classified: 94.2%
Top species: Escherichia coli (12.3%), Klebsiella pneumoniae (8.7%),
Pseudomonas aeruginosa (5.1%), Acinetobacter baumannii (3.9%)
Alpha Diversity:
Shannon index: 2.847
Simpson index: 0.912
Pielou evenness: 0.734
Species richness: 48
Resistome (RGI/CARD):
Total ARG hits: 247 (Perfect: 89, Strict: 158)
Drug classes: 14
WHO-Critical ARGs detected: 23
- Carbapenem resistance: NDM-1, OXA-48, KPC-3
- 3rd-gen cephalosporin resistance: CTX-M-15, CTX-M-27
Functional Pathways (HUMAnN3):
Total pathways: 312
Top: PWY-7219 (adenosine ribonucleotides de novo biosynthesis)
Figures saved to: demo_report/figures/
taxonomy_barplot.png (300 dpi)
resistome_heatmap.png (300 dpi)
who_critical_args.png (300 dpi)
Reproducibility:
commands.sh | environment.yml | checksums.sha256
Pipeline Architecture
FASTQ R1 + R2
|
v
[Kraken2] --> kraken2_report.txt
|
v
[Bracken] --> bracken_species.tsv --> Figure 1: Taxonomy bar chart
|
v
[RGI MAIN] --> rgi_results.txt --> Figure 2: Resistome heatmap
| --> Figure 3: WHO-critical ARG summary
v
[HUMAnN3] --> pathabundance.tsv (optional, --skip-functional to omit)
|
v
[Report] --> report.md + figures/ + reproducibility/
Database Requirements
| Tool |
Database |
Size |
Notes |
| Kraken2 |
Standard-8 or PlusPF |
8-70 GB |
Set via --kraken2-db or $KRAKEN2_DB |
| Bracken |
(built from Kraken2 DB) |
included |
Read-length specific (default: 150 bp) |
| RGI |
CARD |
~500 MB |
Auto-downloaded via rgi auto_load |
| HUMAnN3 |
ChocoPhlAn + UniRef90 |
~15 GB |
Set via --humann-db or $HUMANN_DB |
Citations
If you use this skill in a publication, please cite:
- Wood, D.E., Lu, J. & Langmead, B. (2019). Improved metagenomic analysis with Kraken 2. Genome Biology, 20, 257.
- Lu, J. et al. (2017). Bracken: estimating species abundance in metagenomics data. PeerJ Computer Science, 3, e104.
- Alcock, B.P. et al. (2023). CARD 2023: expanded curation, support for machine learning, and resistome prediction at the Comprehensive Antibiotic Resistance Database. Nucleic Acids Research, 51(D1), D419-D430.
- Beghini, F. et al. (2021). Integrating taxonomic, functional, and strain-level profiling of diverse microbial communities with bioBakery 3. eLife, 10, e65088.
- Corpas, M. (2026). ClawBio. https://github.com/ClawBio/ClawBio
1---2name: claw-metagenomics3description: Shotgun metagenomics profiling — taxonomy, resistome, and functional pathways4license: MIT5---6
7# Shotgun Metagenomics Profiler
8
9Comprehensive shotgun metagenomics analysis combining taxonomic classification, antimicrobial resistance gene detection, and functional pathway profiling from paired-end FASTQ files.
10
11## What it does
12
131. Takes paired-end FASTQ files (R1, R2) or a single concatenated FASTQ as input
142. Runs **Kraken2** taxonomic classification against a standard database (e.g., Standard-8, PlusPF)
153. Refines abundances with **Bracken** at species level (read re-estimation)
164. Detects antimicrobial resistance genes with **RGI** against the **CARD** database
175. Classifies detected ARGs by **WHO critical priority pathogen** association
186. Optionally runs **HUMAnN3** for functional pathway profiling (MetaCyc + UniRef)
197. Calculates **alpha diversity metrics** from Bracken-adjusted species abundances:
20 - **Shannon diversity index**: H = -sum(p_i * ln(p_i)), where p_i is the proportion of classified reads assigned to species i
21 - **Simpson diversity index**: D = 1 - sum(p_i^2)
22 - **Pielou evenness**: J = H / ln(S), where S is the number of species detected
23 - **Species richness**: S = number of distinct species with at least 1 assigned read
248. Generates four publication-quality figures:
25 - **Figure 1**: Taxonomy bar chart, top 20 species by relative abundance
26 - **Figure 2**: Resistome heatmap, ARG families by drug class with abundance
27 - **Figure 3**: WHO-critical ARG summary, priority-tier breakdown of detected resistance genes
28 - **Figure 4**: Alpha diversity summary (Shannon, Simpson, Pielou in a panel)
299. Produces a full reproducibility bundle (commands.sh, environment.yml, checksums.sha256)
30
31## Why this exists
32
33If you ask a general AI to "analyse a metagenome," it will:
34- Not know which Kraken2 database to use or how to set confidence thresholds
35- Hallucinate Bracken parameters for read-length and taxonomic level
36- Miss the connection between detected ARGs and WHO priority pathogen lists
37- Skip HUMAnN3 entirely (or misconfigure its database paths)
38- Produce a single bar chart with no resistance context
39- Skip diversity metric calculations (Shannon, Simpson, Pielou)
40- Not provide a reproducibility bundle
41
42This skill encodes the correct methodological decisions:
43- Kraken2 confidence threshold of 0.2 (reduces false positives in environmental samples)
44- Bracken re-estimation at species level with minimum 10 reads
45- RGI MAIN with "Perfect" and "Strict" hit criteria only (no "Loose" hits)
46- WHO Critical Priority Pathogen list mapped to detected ARG families
47- HUMAnN3 with MetaCyc stratification for pathway-level functional context
48- Thread count auto-detected from available CPUs
49- Full reproducibility bundle for every run
50
51## Validated On
52
53The skill works with any shotgun metagenome but has been validated on:
54- **Peru sewage metagenomics study** (6 samples, 3 collection sites: Lima, Cusco, Iquitos)
55- Environmental sewage samples with mixed microbial communities
56- Read depths ranging from 2M to 15M paired-end reads per sample
57
58## WHO-Critical ARG Detection
59
60A key feature is the classification of detected resistance genes by WHO priority tier:
61
62| Priority | Pathogen | Resistance |
63|----------|----------|------------|
64| Critical | *Acinetobacter baumannii* | Carbapenem-resistant |
65| Critical | *Pseudomonas aeruginosa* | Carbapenem-resistant |
66| Critical | *Enterobacteriaceae* | Carbapenem-resistant, 3rd-gen cephalosporin-resistant |
67| High | *Enterococcus faecium* | Vancomycin-resistant |
68| High | *Staphylococcus aureus* | Methicillin-resistant, vancomycin-resistant |
69| High | *Helicobacter pylori* | Clarithromycin-resistant |
70| High | *Campylobacter* | Fluoroquinolone-resistant |
71| High | *Salmonella* spp. | Fluoroquinolone-resistant |
72| High | *Neisseria gonorrhoeae* | 3rd-gen cephalosporin-resistant, fluoroquinolone-resistant |
73| Medium | *Streptococcus pneumoniae* | Penicillin-non-susceptible |
74| Medium | *Haemophilus influenzae* | Ampicillin-resistant |
75| Medium | *Shigella* spp. | Fluoroquinolone-resistant |
76
77## Usage
78
79```bash
80# Full pipeline (taxonomy + resistome + functional)
81python metagenomics_profiler.py \
82 --r1 sample_R1.fastq.gz \
83 --r2 sample_R2.fastq.gz \
84 --output metagenomics_report
85
86# Skip HUMAnN3 (faster — taxonomy + resistome only)
87python metagenomics_profiler.py \
88 --r1 sample_R1.fastq.gz \
89 --r2 sample_R2.fastq.gz \
90 --output metagenomics_report \
91 --skip-functional
92
93# Single concatenated FASTQ
94python metagenomics_profiler.py \
95 --input combined.fastq.gz \
96 --output metagenomics_report
97
98# Specify Kraken2 database path
99python metagenomics_profiler.py \
100 --r1 sample_R1.fastq.gz \
101 --r2 sample_R2.fastq.gz \
102 --output metagenomics_report \
103 --kraken2-db /path/to/kraken2_db \
104 --read-length 150
105```
106
107### Demo (works out of the box)
108
109```bash
110python metagenomics_profiler.py --demo --output demo_report
111```
112
113The demo uses pre-computed results from the Peru sewage metagenomics study (6 samples, 3 sites) and generates all figures and reports instantly without requiring external tools.
114
115## Example Output
116
117```
118Metagenomics Profiler — ClawBio
119================================
120Mode: demo (pre-computed Peru sewage data)
121Samples: 6 (3 sites: Lima, Cusco, Iquitos)
122
123Taxonomy (Kraken2 + Bracken):
124 Total classified: 94.2%
125 Top species: Escherichia coli (12.3%), Klebsiella pneumoniae (8.7%),
126 Pseudomonas aeruginosa (5.1%), Acinetobacter baumannii (3.9%)
127
128Alpha Diversity:
129 Shannon index: 2.847
130 Simpson index: 0.912
131 Pielou evenness: 0.734
132 Species richness: 48
133
134Resistome (RGI/CARD):
135 Total ARG hits: 247 (Perfect: 89, Strict: 158)
136 Drug classes: 14
137 WHO-Critical ARGs detected: 23
138 - Carbapenem resistance: NDM-1, OXA-48, KPC-3
139 - 3rd-gen cephalosporin resistance: CTX-M-15, CTX-M-27
140
141Functional Pathways (HUMAnN3):
142 Total pathways: 312
143 Top: PWY-7219 (adenosine ribonucleotides de novo biosynthesis)
144
145Figures saved to: demo_report/figures/
146 taxonomy_barplot.png (300 dpi)
147 resistome_heatmap.png (300 dpi)
148 who_critical_args.png (300 dpi)
149
150Reproducibility:
151 commands.sh | environment.yml | checksums.sha256
152```
153
154## Pipeline Architecture
155
156```
157FASTQ R1 + R2
158 |
159 v
160[Kraken2] --> kraken2_report.txt
161 |
162 v
163[Bracken] --> bracken_species.tsv --> Figure 1: Taxonomy bar chart
164 |
165 v
166[RGI MAIN] --> rgi_results.txt --> Figure 2: Resistome heatmap
167 | --> Figure 3: WHO-critical ARG summary
168 v
169[HUMAnN3] --> pathabundance.tsv (optional, --skip-functional to omit)
170 |
171 v
172[Report] --> report.md + figures/ + reproducibility/
173```
174
175## Database Requirements
176
177| Tool | Database | Size | Notes |
178|------|----------|------|-------|
179| Kraken2 | Standard-8 or PlusPF | 8-70 GB | Set via `--kraken2-db` or `$KRAKEN2_DB` |
180| Bracken | (built from Kraken2 DB) | included | Read-length specific (default: 150 bp) |
181| RGI | CARD | ~500 MB | Auto-downloaded via `rgi auto_load` |
182| HUMAnN3 | ChocoPhlAn + UniRef90 | ~15 GB | Set via `--humann-db` or `$HUMANN_DB` |
183
184## Citations
185
186If you use this skill in a publication, please cite:
187
188- Wood, D.E., Lu, J. & Langmead, B. (2019). Improved metagenomic analysis with Kraken 2. Genome Biology, 20, 257.
189- Lu, J. et al. (2017). Bracken: estimating species abundance in metagenomics data. PeerJ Computer Science, 3, e104.
190- Alcock, B.P. et al. (2023). CARD 2023: expanded curation, support for machine learning, and resistome prediction at the Comprehensive Antibiotic Resistance Database. Nucleic Acids Research, 51(D1), D419-D430.
191- Beghini, F. et al. (2021). Integrating taxonomic, functional, and strain-level profiling of diverse microbial communities with bioBakery 3. eLife, 10, e65088.
192- Corpas, M. (2026). ClawBio. https://github.com/ClawBio/ClawBio