Skip to content

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.