mag completeness audit (2026-08-21)
Upstream: nf-core/mag @ 5.5.0 · Port: oxo-flow-mag (live-verified;
gtdbtk steps hardware-gated per existing contract).
Mode matrix (upstream — largest toggle surface of the batch)
| axis | options |
|---|---|
| input | reads / --assembly_input pre-assembled contigs |
| read types | short / long / hybrid / single-end / co-assembly |
| assembly | metaSPAdes, MEGAHIT, hybridSPAdes, Flye (4 lr modes), metaMDBG, pypolca polishing |
| preprocessing | clip: fastp/adapterremoval/trimmomatic; host removal (bowtie2); PhiX removal; bbnorm; long-read: porechop_abi/porechop + nanolyse + chopper/filtlong/nanoq + minimap2 host removal |
| binning | MetaBAT2, MaxBin2, CONCOCT, COMEBin, MetaBinner, SemiBin2; map_mode group/own/all |
| refinement | DAS Tool; postbinning_input raw/refined/both |
| bin QC | BUSCO (default), CheckM, CheckM2, GUNC, Quast-per-bin |
| taxonomy | GTDB-Tk, CAT/BAT, Tiara domain classification |
| special modes | ancient DNA (PyDamage + freebayes damage correction), virus identification (geNomad), MetaEuk eukaryote annotation, Prokka, PRODIGAL, BigMAG |
| depths/QC | MAG_DEPTHS, BIN_SUMMARY, MultiQC |
9 test profiles cover the matrix (test_minimal long-read only, test_single_end aDNA, test_hybrid, test_assembly_input...).
Gap tiers vs the port
P0: the 5 non-default binners (MaxBin2/CONCOCT/COMEBin/MetaBinner/ SemiBin2); 4 alternative assemblers + hybrid + pypolca; long-read preprocessing chain; co-assembly; DAS Tool refinement; CheckM/CheckM2/ GUNC QC tools; CAT/BAT; Tiara; ancient-DNA mode; geNomad virus ID; MetaEuk; assembly_input mode; --binning_map_mode matrix.
P1: none license-wise — all tools/DBs free (GTDB/CheckM/CheckM2/ GUNC/BUSCO/CAT-nr all open downloads).
Data gates (document, not license): full GTDB r232 package ~100GB+ (hardware contract already on the port's README); CAT-nr "very large"; geNomad DB; MetaEuk MMseqs DB; iGenomes host refs. EPANG/GAPPA-equivalent RAM floors: GTDB-Tk needs ≥140GB (existing contract).
P2: clip/filter tool choices, all skip_ switches, save_ publish gates, seed/reproducibility flags, bowtie2_mode (declared but unused — dead param).
Verdict
The port's live-verified default (metaSPAdes + MetaBAT2 + BUSCO + GTDB-Tk subset) sits atop the widest upstream surface: 6 assemblers × 6 binners × 5 QC × 3 taxonomies + aDNA/virus/eukaryote special modes.
Re-verification (2026-08-23, 9-mini queue 4/9)
Engine: latest main (post-v0.14.1) · Box: bioinfo-wsx · Mode: real CLI
run, not dry-run · -j 8 --keep-going · run_gtdbtk=false (official
path, honest labeling).
Full chain green — 295 rules: first run 224 succeeded / 32 skipped
/ 4 failed (all four = ale); after a real repo fix, resume finished
71 succeeded / 189 skipped / 0 failed (checkpoint resume, ale rules
~2.8s each). Coverage chain: fastp → SPAdes + megahit assembly →
metabat2/maxbin2/concoct/comebin/metabinner binning → QUAST/BUSCO QC
→ ALE → bin summary.
Repo fix (2554bde): build_ale.sh compiles 2018-era C sources
that hard-error under GCC≥14 (implicit declarations of
strcmp/close/tdestroy/bam_aux_drop_other + K&R pointers) — patched
with -D_GNU_SOURCE, forced standard headers, and downgrades for the
specific warnings only.