MHCflurry
MHCflurry predicts which peptides are likely to be displayed by MHC class I molecules. It provides pretrained models for three related tasks:
- Binding affinity: how strongly a peptide binds an MHC allele.
- Antigen processing: whether cellular processing favors the peptide.
- Presentation: a combined score using binding and processing predictions.
You can use the released models from the command line or Python, scan proteins for candidate epitopes, or train models on your own data.
Quick start
Install MHCflurry 2.3 and download the pretrained presentation models:
pip install --upgrade "mhcflurry>=2.3,<2.4"
mhcflurry downloads fetch models_class1_presentation
The presentation bundle includes affinity and processing components. Browse
current and historical weights with mhcflurry downloads info; select a weight
release for prediction with --model-release.
Predict a few peptides:
mhcflurry predict \
--alleles HLA-A0201 HLA-A0301 \
--peptides SIINFEKL SIINFEKD SIINFEKQ \
--out predictions.csv
Or scan a protein sequence for candidate ligands:
mhcflurry predict-scan \
--sequences MFVFLVLLPLVSSQCVNLTTRTQLPPAYTNSFTRGVYYPDKVFRSSVLHS \
--alleles 'HLA-A*02:01' \
--out scan.csv
To try MHCflurry without installing anything, open the Colab notebook.
The historical mhcflurry-* command names remain supported for existing
scripts. See the 2.3.0 release notes for details.
Documentation
- Introduction and installation
- Command-line tutorial
- Python tutorial
- Training models
- Command reference
- API reference
Please file an issue if you have questions or encounter problems.
Citing MHCflurry
If you use MHCflurry in your research, please cite:
T. O'Donnell, A. Rubinsteyn, U. Laserson. "MHCflurry 2.0: Improved pan-allele prediction of MHC I-presented peptides by incorporating antigen processing," Cell Systems, 2020. https://doi.org/10.1016/j.cels.2020.06.010
T. O'Donnell, A. Rubinsteyn, M. Bonsack, A. B. Riemer, U. Laserson, and J. Hammerbacher, "MHCflurry: Open-Source Class I MHC Binding Affinity Prediction," Cell Systems, 2018. https://doi.org/10.1016/j.cels.2018.05.014
Development
Contributions are welcome. Start with CONTRIBUTING.md; the testing guide describes the fast local checks and full suite.
Docker
Docker images built from version 2.3.6 onward include the full presentation weights, the command-line tools and Jupyter notebooks. They run predictions on the CPU and support Intel/AMD and ARM Linux. Check the published image's version with:
docker pull openvax/mhcflurry:latest
docker run --rm openvax/mhcflurry:latest mhcflurry --version
Stable releases publish a matching version tag and update latest after
both architecture builds pass an offline prediction check. Publication status
is visible in the Docker workflow;
an incomplete publication can leave latest on the previous version.
Run predictions against files in the current directory:
docker run --rm -v "$PWD:/work" openvax/mhcflurry:latest \
mhcflurry predict input.csv --out predictions.csv
To start Jupyter, run the image without a command:
docker run --rm -p 127.0.0.1:9999:9999 -v "$PWD:/work" openvax/mhcflurry:latest
Open the localhost URL printed in the logs, including its access token.
Without the volume mount, the image starts in a directory containing the
example notebooks. Mounted directories must be writable by the container's
user (UID 1000). To build from a checkout, use
docker build -t mhcflurry:local .. For CUDA training, a separate image can be
built with docker build -f docker/Dockerfile.train -t mhcflurry:train ..
More resources
Metadata
Release files for mhcflurry 2.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mhcflurry-2.3.7.tar.gz | 763.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mhcflurry-2.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / mhcflurry-2.3.7.tar.gz
| Download URL | mhcflurry-2.3.7.tar.gz |
|---|---|
| Size | 763.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c5cdae93882b15e81550d04e2f5ad8eb43aa9ba225200f40a88b5fc8bd204cd7
|
|
BLAKE2b-256 checksum How to use checksums |
126eca2b13abab6dc17d2f6e4f874ca15a83fa9c48e606e130fd37a12be3cc95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / mhcflurry-2.3.7-py3-none-any.whl
| Download URL | mhcflurry-2.3.7-py3-none-any.whl |
|---|---|
| Size | 558.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
166a5f22172530aae837175c1fee2841861f15bb6977b9a8f56ddfd549ff7892
|
|
BLAKE2b-256 checksum How to use checksums |
059dd88bff115221f66ec6ecbb96c559c084d3e43c0cc420e010ac28f3d06c66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log