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

pirl-unc / hitlist / 25563211782
75%

Build:
DEFAULT BRANCH: main
Ran 08 May 2026 03:12PM UTC
Jobs 1
Files 28
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

08 May 2026 03:09PM UTC coverage: 74.388% (+0.2%) from 74.185%
25563211782

push

github

web-flow
v1.30.43: per-donor row split for attributed peptides (closes #236) (#237)

* v1.30.43: per-donor row split for attributed peptides (closes #236)

When the per-peptide attribution CSV maps a peptide to N matched
donors, the scanner now emits N observation rows (one per donor
with that donor's typed alleles) instead of one row carrying the
union of donor typings.  Concrete impact: SLLQHLIGL on HORMAD1
goes from one 15-allele blob row to three 6-allele rows tagged
with MEL3 / MEL15 / OV1 — making the data model match reality
(each donor sample is a separate biological observation) and
unblocking per-donor analysis downstream.

The split ONLY fires when ALL three are true for a row:
  1. mhc_restriction is class-only ("HLA class I")
  2. The PMID has a peptide_attributions: CSV registered in
     pmid_overrides.yaml
  3. The peptide appears in that CSV

Today only PMID 31844290 (Sarkizova 2020) satisfies (2).  Every
other class-only row falls through unchanged to host_mhc_types
(sample_allele_match) or pmid_class_pool.  Verified by grep:
  $ grep -n "peptide_attributions:" hitlist/data/pmid_overrides.yaml
  1135:    peptide_attributions: peptide_attributions/sarkizova_2020_patient_cohort.csv

A regression test (test_scan_non_attributed_pmid_unaffected_by_per_donor_split)
locks this in.

- curation.py: new attribute_peptide_to_per_sample_typings(pmid, peptide)
  returning ((sample_label, frozenset(alleles)), ...) sorted by label.
  Backed by a new lru_cached _pmid_peptide_per_sample_typings.  The
  existing union-returning helper is kept as-is for backwards compat.
- scanner.py: per-IEDB-row class-only branch now loops over the
  per-sample typings and emits one record per donor, replacing the
  single union-row path.  Each emitted row carries the donor's typing
  in mhc_restriction / mhc_allele_set, plus the donor's sample_label
  in a new attributed_sample_label column.  Non-attributed rows still
  emit a single record with attributed_sample_label="".
-... (continued)

4162 of 5595 relevant lines covered (74.39%)

0.74 hits per line

Coverage Regressions

Lines Coverage ∆ File
151
62.08
0.15% builder.py
9
91.62
0.43% curation.py
Jobs
ID Job ID Ran Files Coverage
1 25563211782.1 08 May 2026 03:12PM UTC 28
74.39
GitHub Action Run
Source Files on build 25563211782
  • Tree
  • List 28
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25563211782
  • 75b189cc on github
  • Prev Build on main (#25562739614)
  • Next Build on main (#25587063807)
  • 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