• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pirl-unc / tsarina / 24680859041
74%

Build:
DEFAULT BRANCH: main
Ran 20 Apr 2026 05:32PM UTC
Jobs 1
Files 30
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Apr 2026 05:31PM UTC coverage: 41.534% (+6.7%) from 34.808%
24680859041

push

github

web-flow
v0.8.0: modernize personalize() with tumor-specificity gates + explicit tiers (#11)

Audit (tasks/todo.md Review section) found personalize() let non-exclusive
CTA peptides, non-exclusive viral peptides, and unpredicted candidates into
the output. Ranking conflated modalities into an uncalibrated numeric
priority_score; healthy-tissue MS was a penalty not a filter; sort was
non-deterministic on ties.

Changes (bundled as PRs A-H from the audit):

- Default cta_exclusive_peptides in personalize.py; targets.py was already
  on this path.
- Default human_exclusive_viral_peptides in both personalize.py and
  targets.py (new require_human_exclusive_viral kwarg to opt out).
- Mandatory MHC gate: ImportError from scoring propagates; unscored rows
  land in tier 4.
- Explicit 4-tier system (STRONG / MODERATE / CANDIDATE / WEAK) consuming
  scoring.PRESENTATION_PERCENTILE_THRESHOLDS replaces priority_score.
  Vectorized reason assembly via chained .mask over pre-computed drivers.
- enforce_tumor_specificity=True hard-filters ms_in_healthy_tissue rows.
- New min_restriction_confidence=("HIGH","MODERATE") CTA gate via CTA_by_axes.
- mtec_matrix_path / mtec_max_tpm wiring via mtec.filter_by_mtec.
- min_cta_tpm default 1.0 -> 2.0 (matches never_expressed HPA cutoff).
- Predictor warning when score_presentation=True and predictor != mhcflurry.
- Deterministic multi-key mergesort on (tier, ms_hit_count, percentile,
  peptide, best_allele).
- CLI: --min-restriction-confidence, --mtec-matrix, --mtec-max-tpm,
  --no-require-human-exclusive-viral, --no-enforce-tumor-specificity,
  --keep-weak-tier.

Tests: +18 new (tier unit tests, CTA/viral routing, healthy-tissue
filter and its opt-out, mtec wiring, confidence bypass, predictor warning
and tier population, ImportError propagation, drop_weak_tier, deterministic
sort, canonical empty frame). 164 pass. personalize.py coverage 85% -> 87%;
mtec.py 0% -> 100%.

Breaking: output no longer carries priority_score (replaced by
... (continued)

758 of 1825 relevant lines covered (41.53%)

0.42 hits per line

Coverage Regressions

Lines Coverage ∆ File
42
25.61
-0.64% targets.py
25
0.0
0.0% cli_personalize.py
17
87.18
87.18% personalize.py
Jobs
ID Job ID Ran Files Coverage
1 24680859041.1 20 Apr 2026 05:32PM UTC 30
41.53
GitHub Action Run
Source Files on build 24680859041
  • Tree
  • List 30
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24680859041
  • a096be69 on github
  • Prev Build on main (#24607455020)
  • Next Build on main (#24684145316)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc