Skip to content

Add CapHLA presentation and affinity wrapper - #273

Merged
iskandr merged 1 commit into
masterfrom
feature/caphla
Sep 4, 2026
Merged

Add CapHLA presentation and affinity wrapper#273
iskandr merged 1 commit into
masterfrom
feature/caphla

Conversation

@iskandr

@iskandr iskandr commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add CapHLA, CapHLA_EL, and CapHLA_BA for class-I/class-II EL presentation and BA affinity
  • fetch the exact MIT-licensed upstream commit and five-fold weights through mhctools fetch caphla; report it through mhctools ls
  • preserve both native outputs in the canonical API, including BA normalized score plus inverse-transformed IC50 nM, with no invented ranks or thresholds
  • normalize and validate all 16,025 upstream HLA/H-2 library identifiers through mhcgnomes-derived identities
  • load unchanged upstream model classes/checkpoints lazily, batch in-process with deterministic zero-worker behavior, and support EL-only, BA-only, or both
  • add CLI registry entries, a caphla optional extra, user documentation, and a dedicated public integration job

Verification

  • ./lint.sh
  • ./test.sh — 718 passed, 55 skipped, 2 xfailed
  • managed mhctools fetch caphla smoke test — 44 MB installed with pinned provenance
  • official 32-row EL+BA regression — maximum tolerated absolute error 3e-7
  • all upstream alleles resolve to a present library key: 10,389 class I + 5,636 class II
  • real class-I, class-II heterodimer, and H-2 predictions through the managed snapshot

Closes #270.

Related parser API gap: pirl-unc/mhcgnomes#190.

@iskandr
iskandr merged commit 6cbf8f9 into master Sep 4, 2026
6 checks passed
@iskandr
iskandr deleted the feature/caphla branch September 4, 2026 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add CapHLA wrapper — modern PyTorch EL/BA for class I and II

1 participant