sharp

TODO

Benchmarking approach — run once, slice many

Decided 2026-08-21. This supersedes the per-experiment run model.

The baselines run over the broadest genome set we are willing to pay for, once. Every benchmark after that is a re-scope, not a re-run: the array output pool is keyed by accession (~/projects/<tool>/out_benchmark/<ACCESSION>/), and --contigs filters both the predictions and the ground-truth denominator (metrics.py:288-289). See README → “Run once, slice many”.

Rules:

Scenarios queued against the shared pool

Numbers measured 2026-08-21 against data/raw/mibig_json_4.0. “Genomes” is after --min-length drops BGC-only deposits; --min-length 0 keeps them.

# Scope Clusters Genomes Ground truth Status
0 50-genome Streptomyces (current) 113 50 benchmark_set/ ✅ done, see sharp-davinci-copy/data/processed-50genomes/
1 Full Streptomyces 156 93 streptomyces_ground_truth.tsv selected → data/interim/benchmark_set_strep/, not run
2 Bacteria only ~1,280 GT TBD bacterial_ground_truth.tsv ✅ built not selected
3 All genera (entire MiBiG) ~1,634 GT TBD mibig_ground_truth.tsv not selected
4 BGC-only deposits (--min-length 0 minus #1) ~245 (Strep) ~241 any of the above not selected
5 Per-genus slices (Amycolatopsis, Micromonospora, …) — — --genus <name> idea only

Known defects

Benchmarks — real data

Superseded numbers. The ground truth was corrected on 2026-08-18 (unusable accessions and duplicate loci dropped at ingest; RefSeq/GenBank twins merged), which raises S. coelicolor from 15 to 16 clusters — the 16th was filed under NC_003888.3, the RefSeq copy of the same sequence. The table below is from before that fix and will be regenerated by the scaled run.

Results — AL645882.2 (S. coelicolor A3(2)), 15 clusters in scope

Ground truth: data/raw/mibig_ground_truth.tsv (all genera, 1675 clusters; scoping to the one contig leaves the same 15 Streptomyces clusters the genus-filtered GT would). Full write-up with caveats: ../sharp-davinci-copy/data/processed/AL645882.2.md; raw JSON alongside it.

  antiSMASH DeepBGC
predictions in scope 29 167
detection recall 1.000 (15/15) 0.733 (11/15)
reciprocal recall 0.267 (4/15) 0.467 (7/15)
matched prediction frac 0.483 (14/29) 0.060 (10/167)
nucleotide recall 0.986 0.897
nucleotide precision 0.251 0.142
predicted bp 1,128,277 1,806,162
median prediction coverage 0.317 0.702
clusters recovered by union only 0 0

Reading it:

Open question