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

pirl-unc / hitlist / 33540198140
81%

Build:
DEFAULT BRANCH: main
Ran 01 Sep 2026 05:55PM 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

01 Sep 2026 05:51PM UTC coverage: 81.118% (+0.03%) from 81.084%
33540198140

push

github

web-flow
v1.55.0: one seed index, any peptide length, 15-residue flanks (#398)

* Map peptides longer than the k-mer index by prefix-and-verify (#394)

Every class II peptide was silently unmapped. `build_peptide_mappings` bucketed
peptides by length and kept only `(8, 9, 10, 11)`; a canonical whose peptides
were all 12+ hit the `continue` and produced nothing. Since `n_flank`,
`c_flank`, `position`, `protein_id`, `gene_name` and `gene_id` all come from
`peptide_mappings.parquet`, class II received none of them.

Measured on the current build: 15,258,466 class I MS rows carry flanks at
97.3% / 96.2%, and 1,395,872 class II rows carry them at **0.0% / 0.0%** --
569,670 unique peptides, none at length 8-11, all at 12+.

The 8-11 ceiling is not arbitrary. `_PackedIndex` encodes each k-mer into one
63-bit integer, so `bits * max(lengths) <= 63` -- about 12 residues at 5 bits
per residue. Past that `_PackedIndex.build` returns None and the caller falls
back to the legacy dict index, which is the ~10 GB-per-length build #109
removed. Widening `default_lengths` would reintroduce exactly that.

So instead of indexing longer k-mers, reuse the index already built. A peptide
longer than any indexed length is located by looking up its first `k` residues
and keeping the hits whose protein really does continue with the remaining
`L - k`. Exact rather than approximate, because every candidate is verified
against the source sequence; no new index; no additional memory. The only added
work is one string comparison per candidate, and protein k-mers at k >= 8 are
near-unique, so there are very few.

`default_lengths` therefore stays at the MHC-I lengths and is now documented as
the set of lengths an index is *built* at, not the set of peptide lengths that
can be mapped.

Tests cover the 12-25 range that holds 96.1% of class II rows, correct flanks
and position for a long peptide, and the case that makes verification
load-bearing: a decoy protein sharing the peptide's first 11 re... (continued)

6139 of 7568 relevant lines covered (81.12%)

0.81 hits per line

Coverage Regressions

Lines Coverage ∆ File
75
84.47
0.67% proteome.py
49
71.43
-0.76% mappings.py
12
77.16
0.03% builder.py
Jobs
ID Job ID Ran Files Coverage
1 33540198140.1 01 Sep 2026 05:55PM UTC 30
81.12
GitHub Action Run
Source Files on build 33540198140
  • Tree
  • List 30
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33540198140
  • ff18095c on github
  • Prev Build on main (#33463069439)
  • Next Build on main (#33544963348)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc