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

pirl-unc / hitlist / 25142379586
80%

Build:
DEFAULT BRANCH: main
Ran 30 Apr 2026 01:19AM UTC
Jobs 1
Files 25
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

30 Apr 2026 01:18AM UTC coverage: 69.726% (+0.4%) from 69.277%
25142379586

push

github

web-flow
v1.30.5: hitlist pmhc --sample / --samples for paired (sample, allele) input (#189)

Closes #188.

Until now ``hitlist pmhc --mhc-allele A B C`` did a cross-product —
every protein crossed with every allele. That's wrong shape for the
common pMHC workflow of "I have a cohort of patients each with their
own HLA typing, what evidence does hitlist have for these proteins on
each patient's background?".

Two new flags on ``hitlist pmhc``:

  --sample NAME:ALLELE[,ALLELE,...]   (repeatable, inline)
  --samples PATH.tsv                  (batch: name<TAB>alleles per row)

Both feed a new ``pmhc_query.query_by_samples()`` that runs ``query()``
once per sample with that sample's allele list and returns a single
DataFrame tagged with ``sample_name``. The grouped-format output
sections by sample, with the existing gene/allele/peptide structure
nested beneath each sample header.

Mutually exclusive with ``--mhc-allele`` — the CLI catches the conflict
and exits with a usage error rather than silently picking one.

#188 contract decisions:
  * Per-sample empty allele lists raise ``ValueError`` (silent expansion
    to "all alleles" inside ``query`` is not the paired-API contract).
  * Samples with non-empty alleles but no matching evidence keep a
    placeholder row tagged with ``sample_name`` (other columns NaN) so
    the sample still appears in any downstream groupby and the
    ``format_table`` output prints "(no pMHC evidence on this sample's
    alleles)" rather than dropping the sample silently.

Tested:
  * 15 CLI parser tests (inline form, TSV form, header detection,
    comments/blanks, mutual exclusion, error paths).
  * 4 query_by_samples tests (per-sample isolation, empty input schema,
    empty-allele ValueError, empty-result placeholder propagation).
  * 1 format_table test asserting per-sample sectioning.
  * Smoke-tested against the live observations.parquet for inline,
    TSV, mutex, and no-hit-sample cases.

3411 of 4892 relevant lines covered (69.73%)

0.7 hits per line

Coverage Regressions

Lines Coverage ∆ File
90
53.82
2.19% cli.py
18
88.36
2.65% pmhc_query.py
7
93.65
0.86% observations.py
Jobs
ID Job ID Ran Files Coverage
1 25142379586.1 30 Apr 2026 01:19AM UTC 25
69.73
GitHub Action Run
Source Files on build 25142379586
  • Tree
  • List 25
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25142379586
  • 0fac76f6 on github
  • Prev Build on main (#25077832559)
  • Next Build on main (#25143627132)
  • 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