Repository navigation
feat: AUPRC benchmark metric, 2 new seeds (Bac2A + KR-12), assay pre-registration - #58
Merged
Merged
Conversation
AUPRC (Area Under Precision-Recall Curve): - Add _auprc() to retrospective.py (trapezoidal integration) - run_retrospective_benchmark() now returns auprc, auprc_random_baseline, auprc_above_random alongside existing AUROC + bootstrap CI - 10 new tests in tests/test_auprc.py (perfect/worst/random/edge cases + integration test verifying all three keys appear in benchmark output) - METHODS.md Section 8 updated with AUPRC explanation and rationale New seeds: - SEED-009: RRLPRPPYLPRP — Bac2A bovine proline-rich cathelicidin (intracellular DnaK-targeting mechanism, genuinely distinct from all 8 prior membrane-disruption seeds; Gram-negative selective) - SEED-010: KRIVQRIKDFLR — KR-12, shortest active fragment of human LL-37 cathelicidin (clinical relevance; good selectivity vs MRSA + E. coli) - Increases effective independent scaffolds: 8 → 10 - Calibrated breaking-news probability: 15-30% → 18-30% Pre-registration: - docs/ASSAY_PREREGISTRATION.md: full assay pre-registration template including EUCAST/CLSI broth microdilution protocol, HC50 protocol, selectivity index definition, pre-registered hit criteria, statistical plan, deviation log, and signature block
…d HC50 ceiling AUPRC tie-breaking: - Sort key changed from (-score,) to (-score, label) so negatives sort before positives on tied scores; prevents inflation to 1.0 for random classifiers (matches sklearn average_precision_score pessimistic convention) - Add test_all_tied_scores_pessimistic_not_inflated to verify behavior - Fix test_worst_classifier: assert result < prevalence (was trivially true) - Add test for tied-scores case Assay pre-registration: - Ciprofloxacin EUCAST QC range: 0.008-0.06 → 0.004-0.016 µg/mL (v14 Table 5) - HC50 concentration ceiling: 256 → 512 µg/mL to resolve TI ambiguity at the 32 µg/mL MIC boundary; add explicit interpretation rule for >512 µg/mL
This was referenced Jun 28, 2026
Merged
cschanhniem
added a commit
that referenced
this pull request
Jun 28, 2026
* chore: update ROADMAP.md with current metrics, add coverage gate to make coverage - AUROC 0.8164→0.8420 (bootstrap CI₉₅: 0.76–0.91) in v0.4 milestone entry - Add v0.6.x section documenting PRs #61–#72 scoring improvements - Mark AUPRC gap as Done (PR #58, pipeline AUPRC=0.8627) - Update large-scale benchmark gap row with corrected n=87 and CI - coverage target: add --cov-fail-under=80 so make coverage exits non-zero below 80%; currently passes at 87.40% * docs: fix v0.6.x chain gap (add PR #65) and AUPRC attribution
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.
Summary
Pre-wet-lab polish sprint — three improvements that increase scientific rigor and wet-lab success probability:
1. AUPRC benchmark metric
_auprc()tobenchmark/retrospective.py(trapezoidal PR-curve integration)run_retrospective_benchmark()now returnsauprc,auprc_random_baseline,auprc_above_random2. Two new mechanistically distinct seeds
RRLPRPPYLPRP, bovine proline-rich cathelicidin)KRIVQRIKDFLR, shortest active fragment of human LL-37 cathelicidin)3. Assay pre-registration
docs/ASSAY_PREREGISTRATION.md: full pre-registration templateTest plan
make validate-scoringoutput includesauprcfieldmake generate🤖 Generated with Claude Code