Skip to content

Update mhcgnomes dependency to >=3.4.0#171

Merged
iskandr merged 12 commits into
masterfrom
feature/newer-mhcgnomes
Mar 17, 2026
Merged

Update mhcgnomes dependency to >=3.4.0#171
iskandr merged 12 commits into
masterfrom
feature/newer-mhcgnomes

Conversation

@iskandr
Copy link
Copy Markdown
Contributor

@iskandr iskandr commented Mar 16, 2026

Summary

  • Updates minimum mhcgnomes version from >=2.0.0 to >=3.4.0 in both pyproject.toml and requirements.txt
  • Includes all changes from the feature/newer-mhcgnomes branch: migration to pyproject.toml, replacement of mhcnames with mhcgnomes-backed allele_normalization module, GitHub Actions CI, and NetMHCIIpan 4.x support

Test plan

  • Verified mhcgnomes 3.4.0 installs cleanly and all imports (Allele, Pair, ParseError, parse) work
  • Verified allele normalization produces correct results (HLA-A02:01, HLA-DRB104:01, H-2-Kb, class II pairs, serotypes)
  • All non-environment-dependent tests pass (CLI, parsing, binding predictions, netMHC class I, etc.)
  • Pre-existing failures (netMHCIIpan binary not installed locally, mhcflurry/tensorflow numpy conflict) confirmed identical on master — not related to this change

🤖 Generated with Claude Code

iskandr and others added 12 commits February 15, 2026 22:02
Update minimum mhcgnomes version from 2.0.0 to 3.4.0 in both pyproject.toml
and requirements.txt. Also include the unstaged NetMHCIIpan version detection
fix that broadens support from 4.0-only to any 4.x release.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace `secrets.NETMHC_BUNDLE_ACCESS_TOKEN != ''` with a repository
check since GitHub Actions doesn't allow the secrets context in
job-level if expressions. The integration job only needs to run on the
main repo anyway (forks won't have the secret).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bump pylint minimum from >=1.4.4 to >=3.0 to fix astroid crashes on
  Python 3.12
- Install setuptools explicitly in integration job so mhcflurry can
  import pkg_resources on Python 3.12+

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move setuptools install to after pip install so it isn't removed during
dependency resolution. mhcflurry needs pkg_resources at runtime but
doesn't declare setuptools as a dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
setuptools 82.x removed pkg_resources, which mhcflurry still imports.
Pin to <81 until mhcflurry updates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The netMHC wrapper scripts have hardcoded paths like
/tools/src/netMHCIIpan-4.3. Create a symlink from /tools/src to
the bundle checkout directory so these paths resolve correctly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
netMHC-3.4 wrapper calls python2 which isn't available on Ubuntu 24.04.
Create a symlink to python3 since the bundle's Python scripts are
compatible with Python 3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
netMHC-3.4/netMHC.py and netMHCcons-1.1/pseudofind use Python 2 print
syntax. Run lib2to3 to patch them for Python 3 compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The netMHC bundle scripts (netMHC-3.4, netMHCcons) require Python 2
which is not available on Ubuntu 24.04. Pin the integration job to
ubuntu-22.04 and install python2 via apt. Remove lib2to3 workaround.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@iskandr iskandr merged commit c7433f8 into master Mar 17, 2026
4 checks passed
@iskandr iskandr deleted the feature/newer-mhcgnomes branch March 17, 2026 14:44
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.

1 participant