Repository navigation
feat(sorting-hat): per-call status entries and repeat-call calibration - #76
Merged
Merged
Conversation
…eview) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…bicans), first version Labels from UniProt Repeat features and paper statements; assumed negatives from absence of annotation. S288C 19 pos in 14 clusters, 26 neg; C. albicans 13 pos in 6 clusters, 82 neg. Below the cluster floor. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ash) and status refactors Task 1 of the per-call status plan. status_from_measure moves to status.py (re-exported by calibration.measure); best_entry is shared by the module and call resolvers. No behaviour change: 700 passed, 7 skipped. Four mutation checks fail the named tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Task 2 of the per-call status plan. call_status.py: loader (taxa >= 2, measure and leakage required, status never stronger than the measure or the leakage cap), validity against a run (config, reads, run record, module state, identity, call_hash), resolver with lineage. calibration/call_files.py: merge, deterministic lock test, validation before write. 750 passed, 7 skipped; 17 mutation checks fail the named tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… (Task 3a) calls.long text and report (minus the version line) taken from the engine before call status files. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
evaluate(..., call_status_of=None). Contributors are grouped by the leaf call; a leaf with a call status contributes one status and one basis item; a stale file falls back to module statuses with the reason. Not-assessable records never take a call status. The pinned golden output is unchanged. 760 passed; six mutation checks fail the named tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…un.json (Task 4) CallStatusResolver is built after the modules are loaded and passed to evaluate. A call file for an unknown call stops the run (exit 2, file named); a stale file is listed with its reason and not used. The report gets a Call calibration section only when call files exist, so the pinned output of a run without them is unchanged. 765 passed; six mutation checks fail the named tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…several modules (Task 5) --module and --call-status are mutually exclusive; --config added. The call path requires an eligible call, a run.json with the same config hash and every read module ok, and unchanged module identities. The entry is written by write_call_status. 782 passed; six mutation checks fail the named tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s an assumed negative Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ries (Task 7) Truth tables widened with reviewed secreted UniProt proteins (S288C 31 pos in 22 clusters, 297 neg; C. albicans 16 pos in 9 clusters, 210 neg). Repeat call: S288C sens 0.323 [0.043, 0.535], spec 0.987; C. albicans sens 0.375 [0.000, 0.680], spec 0.976; both smoke. About half of the missed positives are tandem arrays the detectors do not find (AGA1, HPF1, EAP1, PGA18, ALS5-7). Cutoff and z-score scans are exploratory; nothing in the module changed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…S7 and ALS9 Sheppard 2004 shows no adherence for Als7p and the GO IMP reference does not study ALS7; the ALS9 mechanism citation in agent A's table is the ALS1 paper. Overrides only; generated tables unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s) and a fix for MMseqs2 ID handling Reviewed secreted A. fumigatus proteins: 8 positives are all enzyme repeat domains (PbH, BNR), so no status entry is written; specificity 1.000 [0.968, 1.000] on 159 negatives. cluster() now uses neutral IDs because MMseqs2 rewrites UniProt-style IDs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…at positives 22 stop at the z gate, 5 at the score pre-filter, 4 at the region test or the coverage cutoff; the extracted region covers 0.04 to 0.14 of the protein against 0.16 to 0.84 for the UniProt repeat span. Lowering the region cut recovers nothing. An earlier reading of the code in the report is corrected. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Variant checked before any lock or file name (F3, F4), single path in refusals (F5), report column renamed (F6), one leakage list (F10), comments and tests (F1, F8, F11), spec and plan text corrected (F2, F7, F12). F9 accepted. 788 passed, 7 skipped. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…er's definition of the call Repeating motif or array, or an adhesion-associated repeat domain only (owner, 2026-10-08). Globular repeat domains (BNR, Sel1, LRR, PbH, WD, ...) are left out. S288C 23 pos in 16 clusters, sens 0.435 [0.067, 0.667], spec 0.987; C. albicans 13 pos in 6 clusters, sens 0.462 [0.000, 0.788], spec 0.976; both smoke. All 20 remaining misses are arrays. ALS7 override confirmed by the owner; PR 74 merged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
hyphaltip
added a commit
that referenced
this pull request
Oct 9, 2026
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds per-call status entries to cellsurface_sorting_hat and the first measured status for
tandem_repeat_protein.calibrate truth --call-status, report section, tests (788 passed, 7 skipped at the last full run). Spec and plan were independently reviewed before code, and a code review followed.smoke(leakage: tuned on truth): S288C sens 0.435 [0.067, 0.667], spec 0.987 [0.962, 1.000]; C. albicans sens 0.462 [0, 0.788], spec 0.976 [0.938, 0.996]. Negatives are assumed from absent annotation.docs/reports/2026-10-08-repeat-call-calibration.md, handoffdocs/HANDOFF-2026-10-08.md(owner decisions waiting).git merge-tree).Not in this PR: detector changes, which need a spec and held-out species first.
🤖 Generated with Claude Code