Skip to content

Cross-family calls: family decided once per genome by mean identity; no near-tie margin; family_ambiguous - #219

Merged
hyphaltip merged 6 commits into
mainfrom
genome-level-family
Oct 30, 2026
Merged

hyphaltip merged 6 commits into
mainfrom
genome-level-family

Conversation

@hyphaltip

Copy link
Copy Markdown
Member

Replaces the 3-point near-tie rule of #214 (curator decision, option A, 2026-10-29), after an independent evaluation of the margin (results/2026-10-29_near_tie/README.md).

What changes (all behind --cross-family-policy on)

  • For groups of overlapping cross-family calls where neither family is scoped to the genome, the family is decided once per genome: the higher mean best core-gene identity over those groups wins every group (equal: smaller family name). No margin, no MATsc preference. A scoped family still wins its group.
  • Every such kept call carries family_ambiguous: identities of both families, gap, genome means and locus counts (YAML block; GFF3 family_ambiguous=family:identity|...; new DetectionResult.family_ambiguous).
  • family_unconfirmed is now only the PAP1/OBP1/PIK1 flank rule; cross_call_near_tie and NEAR_TIE_POINTS are gone.
  • The set-aside call's gene evidence is kept in the cross_call note (gene, role, identity, coverage, status) so the two families can be compared gene for gene after a run.
  • Tests rewritten (genome-level pooling, no margin, scoped group, third family, flag content). Suite: 1596 passed (draw/synteny tests need pygenomeviz, absent locally).

Evidence

Opus-class independent evaluation of the 156 cross-called pairs: no natural break at 3 points (the cutoff splits congeners), one residue is about 1.7 points so the margin is under two residues, the MATsc tie-break is biased (sla2 is searched only by MATsc, PAP1/OBP1/PIK1 only by MTL), per-locus decisions gave 4 mixed-family genomes. Replay of the 354 yeast genomes: mixed-family genomes 4 -> 0, near-tie flags 42 -> 0, 156 family_ambiguous loci in 140 genomes, kept-lower-identity 12 -> 1, 14 genomes change calls (family and idiomorph names), 14 more mtl_outside_scope flags.

Open for the curator

🤖 Generated with Claude Code

…y, no near-tie margin, family_ambiguous on every unscoped cross-call (replaces the 3-point rule)

Evaluation, pair table and a 354-genome replay in results/2026-10-29_near_tie/.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
hyphaltip added a commit that referenced this pull request Oct 30, 2026
hyphaltip and others added 4 commits October 29, 2026 20:48
…; SLA2 beside 129, DIC1 beside 71

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…rnettozyma californica, Petasospora fabianii

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…NA-seq (the authors' GTF is not published)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…win against a family with its own flank gene

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@hyphaltip
hyphaltip merged commit d5b8aca into main Oct 30, 2026
hyphaltip added a commit that referenced this pull request Nov 2, 2026
)

* release prep: version 0.7.1 and a draft 0.7.1 changelog (not for merge until the release is cut)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Release prep: retarget to v0.8.0 (version strings, README, CHANGELOG entries for the routing, family and examples work)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* CHANGELOG: the cross-family rule is the genome-level decision (#219)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Release prep: changelog for the flank rule, label registry and frozen codes, MATss/MATpf/MATbz families and the profiles

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* update release date

* Release prep v0.8.0: [0.8.0] changelog header, About and README wording (counts TBD until the run ends)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* CHANGELOG 0.8.0 known issues: flag the lines to confirm after the run

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Changelog: known issue for the S. pombe mat2 cassette relabelled as mat1 (#227)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Changelog: correct the O. degrootiae line, add the PR-over-MAT swap and the Ogataea routing loss

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Changelog: link the Ogataea routing known issue to #228

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* v0.8.0 run counts: fill the changelog table and comparison, README validation rows and About wording

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Browser tool: run detect with --preset v0.8, the policy set of the v0.8.0 data

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Changelog: cut the IndigoAg stand-in taxid sentence (no genome in the v0.8.0 run carries taxid 147538)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* misc: remove the MAT_logo images (not wanted in the repository)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* v0.8.0 results: tables, manifests, report tarballs and site data of the definitive run (#229)

* build_site_data: v080 release entry (folders from the 2026-10-31 run; default not flipped yet)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* v0.8.0 results: tables, manifests and report tarballs of the definitive run; site data and shards; v080 is the default release

Run on commit a2933f7 with --preset v0.8: 19,415 Ascomycota, 3,275 Basidiomycota and 974 Mucoromycotina genomes. The landing page code label and the reproducibility row describe v0.8.0 against v0.7.0; v0.7.0 stays in RELEASES as the rollback target.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

---------

Co-authored-by: Claude Sonnet 5.5 <[email protected]>

---------

Co-authored-by: Claude Sonnet 5.5 <[email protected]>
@hyphaltip
hyphaltip deleted the genome-level-family branch November 2, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant