Total genomes
loaded from Module 2
Novel candidates
ANI < 95%
Known species
ANI ≥ 95%
Pipeline flow
Module status
Global Configuration
Paths, credentials, and thread counts for all modules — saved to nose_config.yaml and synced automatically.
🔬
HMM SCG + Outgroup — Automation Logic
How Module 2 auto-selects the GToTree HMM marker set and finds the outgroup genome required by Module 3.

What is automated and when does it run?

After FastANI · AAI · POCP · 16S all complete, Module 2 runs auto_hmm_outgroup.py as Step 6 — fully automatically, no manual input needed. It adds 4 columns to compiled_results.csv and prepares genome_summary_for_tree.csv for Module 3.

Step A — HMM Single-Copy Gene (SCG) Set selection

GToTree needs an HMM marker set tuned to the organism's taxonomic class. The script selects it deterministically from a lookup table — no network call required.

1
Read Phylum and Class from genome_summary.csv (GTDB taxonomy output of Module 1).
2
Consult PHYLUM_TO_HMM lookup table. If Phylum is Proteobacteria / Pseudomonadota (too diverse for one HMM set), delegate to CLASS_TO_HMM instead.
3
Example: Phylum=Pseudomonadota, Class=Alphaproteobacteria → Alphaproteobacteria HMM set (117 SCGs from GToTree).
4
Three papers are cited automatically: HMM-set paper (Ferla et al. 2013) + GToTree (Lee 2019) + GTDB (Parks et al. 2022).
📄 HMM_SCG column → compiled_results.csv 📄 HMM_SCG_Citation column → compiled_results.csv
Step B — Outgroup genome selection (3-source cascade)

The outgroup must be a genome from a different genus, same order to root the phylogenetic tree meaningfully. Three sources are tried in sequence:

1
GTDB REST API api.gtdb.ecogenomic.org/v2/taxon/genome/{genus} — authoritative type strains. 4-attempt exponential-backoff retry (2 s → 4 s → 8 s → 16 s). Falls back if SSL error or rate-limited.
2
NCBI Entrez Assembly search — queries RefSeq for reference genomes in the same Order, different Family. Uses your NCBI API key if set (10 req/s vs 3 req/s).
3
Persistent cache hmm_outgroup_cache.json — if both APIs fail, reuses a prior successful lookup for the same genus. Keyed by genus, safe to delete for a fresh lookup.
📄 Outgroup column → compiled_results.csv 📄 Outgroup_Citation column → compiled_results.csv
All output files from auto_hmm_outgroup.py
📄
compiled_results.csv — original results file, extended with HMM_SCG, Outgroup, HMM_SCG_Citation, Outgroup_Citation columns
📄
hmm_outgroup_summary.csv — one row per genus: Phylum, Class, Order, Family, HMM set, outgroup GCF, both citations
📄
genome_summary_for_tree.csv — Module 3 (GToTree) input with HMM and Outgroup columns pre-filled
💾
hmm_outgroup_cache.json — genus-keyed cache. Delete to force a fresh lookup. Safe between pipeline runs.