SanntiS: biosynthetic gene cluster detection
SanntiS detects biosynthetic gene clusters (BGCs) in prokaryotic and eukaryotic sequences from InterProScan domain annotations, assigns a MIBiG class and predicts NPClassifier pathways and superclasses of the products. This repository holds one model bundle: a 3-seed Conv1D + BiLSTM token detector, a RandomForest post-filter / MIBiG class head and an NPClassifier ensemble (RandomForest + logistic regression + kNN).
Use
sanntis setup --container-engine docker # InterProScan 6 + InterPro data, once
sanntis predict genome.fna --container-engine docker --model <this repo>@<revision>
sanntis predict assembly.gbk --ips-tsv interproscan.tsv # precomputed annotations, no containers
from sanntis import SanntisModel, Predictor
model = SanntisModel.from_pretrained('<this repo>', revision='<revision>')
Inputs: prokaryotic nucleotide FASTA (genes called with pyrodigal), GenBank with CDS translations or a protein FASTA with the GFF3 of its CDS (prokaryotes and eukaryotes), each optionally with a precomputed InterProScan 5.76+ / 6.x TSV. Outputs: GFF3 (one CLUSTER feature per region with bgc_class, p_non_bgc, npc_pathway, npc_superclass, npc_pathway_key_domains_unsupported, ...), per-CDS scores, a regions table and antiSMASH sideloader JSON.
Model
| Field | Value |
|---|---|
| sanntis version | 1.0.0b1 |
| Fit | production |
| Features | InterProScan 6.0.3.0, InterPro 107.0; 14 member databases (pfam, ncbifam, sfld, superfamily, gene3d, hamap, coils, cdd, prints, pirsf, prositeprofiles, prositepatterns, mobidblite, smart) |
| Vocabulary | 6422 tokens (incl. 3 specials) |
| Detector | 3 seeds, 8 epochs (median best CV epoch) |
| Operating point t* | 0.3 (hysteresis low 0.15); highest F2_macro on validation with BGC precision >= 0.80 |
| RF post-filter | drop regions with P(non-BGC) >= 0.8 |
| Heads | MIBiG class: True; NPClassifier: True |
Training data
- Positives: 2795 external BGCs (MIBiG format), deduplicated (composite Dice >= 0.974, longest kept); loci > 200 kb and loci without CDS excluded.
- Negatives: genome pool v1 (GTDB r226 and RefSeq eukaryote representatives; native BGCs removed with antiSMASH 8.0.1): length-matched chunks and BGC-free background pieces.
- Entities: background euk 4233, background proka 30077, chunk euk 1608, chunk proka 6447, positive euk 536, positive proka 2149.
- Published as the dataset
microbiome-informatics/sanntis-training-data(tagsmibig-5.0rc1-train,negatives-v1,npclassifier-v1); see the "Training data" section of the SanntiS README for the data and the training command. The run is objective 01 of thesanntisv1-data-and-analysisrepository; its out-of-fold validation report is inreport/.
Performance
Metrics in ORF space. Validation = pooled out-of-fold CV predictions (training data).
| Dataset | Precision_T | Recall_macro_T | F1_macro_T | BGC precision | BGC macro recall | F2_macro |
|---|---|---|---|---|---|---|
| Validation (CV, pooled OOF) | 0.698 | 0.875 | 0.776 | 0.882 | 0.926 | 0.917 |
Full report with confidence intervals and figures: report/report.md.
Limitations
- Tokens come from InterProScan member-database hits; predictions on annotations from other InterProScan or InterPro releases drift (sanntis warns and reports coverage QC). Unannotated genes carry no signal.
- Eukaryotic negatives cover fungi and protists only (no plants); plant BGC estimates are anecdotal.
- BGC families with low similarity to MIBiG are recalled less well than near-duplicates (novelty analysis in the sanntisv1-data-and-analysis repository).
p_non_bgcand the NPClassifier scores are model scores, not calibrated probabilities (the NPC abstention tiers target 0.9 / 0.8 precision on validation).npc_pathway_key_domains_unsupportedis a hint, not a verdict: a called pathway none of whose key domains (or domain pairs) is in the region is wrong more often than a supported one, but most wrong calls do carry the domains (hybrids, tailoring); pathways with low rule coverage in CV arena.
Integrity
Every file is listed with its sha256 in manifest.json and verified on load. No pickles: detectors are safetensors, sklearn models skops (explicit trusted types), the kNN reference a sparse npz.
Citation
@article{sanchez2023sanntis,
title = {Expansion of novel biosynthetic gene clusters from diverse environments using SanntiS},
author = {Sanchez, Santiago and Rogers, Joel D. and Rogers, Alexander B. and Nassar, Maaly and McEntyre, Johanna
and Welch, Martin and Hollfelder, Florian and Finn, Robert D.},
journal = {bioRxiv},
year = {2023},
doi = {10.1101/2023.05.23.540769}
}
- Downloads last month
- 23