Skip to main content

MHC Binding Predictor

Project description

Build Status

mhcflurry

MHC I ligand prediction package with competitive accuracy and a fast and documented implementation.

MHCflurry implements class I peptide/MHC binding affinity prediction. The current version provides pan-MHC I predictors supporting any MHC allele of known sequence. MHCflurry runs on Python 3.4+ using the keras neural network library. It exposes command-line and Python library interfaces.

Starting in version 1.6.0, MHCflurry also includes two expermental predictors, an “antigen processing” predictor that attempts to model MHC allele-independent effects such as proteosomal cleavage and a “presentation” predictor that integrates processing predictions with binding affinity predictions to give a composite “presentation score.” Both models are trained on mass spec-identified MHC ligands.

If you find MHCflurry useful in your research please cite:

T. O’Donnell, A. Rubinsteyn, U. Laserson. “A model of antigen processing improves prediction of MHC I-presented peptides”. biorxiv, 2020. https://www.biorxiv.org/content/10.1101/2020.03.28.013714v2

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://www.cell.com/cell-systems/fulltext/S2405-4712(18)30232-1.

Please file an issue if you have questions or encounter problems.

Have a bugfix or other contribution? We would love your help. See our contributing guidelines.

Installation (pip)

Install the package:

$ pip install mhcflurry

Then download our datasets and trained models:

$ mhcflurry-downloads fetch

You can now generate predictions:

$ mhcflurry-predict \
       --alleles HLA-A0201 HLA-A0301 \
       --peptides SIINFEKL SIINFEKD SIINFEKQ \
       --out /tmp/predictions.csv

Wrote: /tmp/predictions.csv

Or scan protein sequences for potential epitopes:

$ mhcflurry-predict-scan \
        --sequences MFVFLVLLPLVSSQCVNLTTRTQLPPAYTNSFTRGVYYPDKVFRSSVLHS \
        --alleles HLA-A*02:01 \
        --out /tmp/predictions.csv

Wrote: /tmp/predictions.csv

See the documentation for more details.

Older allele-specific models

Previous versions of MHCflurry used models trained on affinity measurements, one allele per model (i.e. allele-specific). Mass spec datasets were incorporated in the model selection step.

These models are still available to use with the latest version of MHCflurry. To download these predictors, run:

$ mhcflurry-downloads fetch models_class1

and specify --models when you call mhcflurry-predict:

$ mhcflurry-predict \
       --alleles HLA-A0201 HLA-A0301 \
       --peptides SIINFEKL SIINFEKD SIINFEKQ \
       --models "$(mhcflurry-downloads path models_class1)/models"
       --out /tmp/predictions.csv

Wrote: /tmp/predictions.csv

Common issues and fixes

Problems downloading data and models

Some users have reported HTTP connection issues when using mhcflurry-downloads fetch. As a workaround, you can download the data manually (e.g. using wget) and then use mhcflurry-downloads just to copy the data to the right place.

To do this, first get the URL(s) of the downloads you need using mhcflurry-downloads url:

$ mhcflurry-downloads url models_class1_presentation
https://github.com/openvax/mhcflurry/releases/download/1.6.0/models_class1_presentation.20200205.tar.bz2```

Then make a directory and download the needed files to this directory:

$ mkdir downloads
$ wget  --directory-prefix downloads https://github.com/openvax/mhcflurry/releases/download/1.6.0/models_class1_presentation.20200205.tar.bz2```

HTTP request sent, awaiting response... 200 OK
Length: 72616448 (69M) [application/octet-stream]
Saving to: 'downloads/models_class1_presentation.20200205.tar.bz2'

Now call mhcflurry-downloads fetch with the --already-downloaded-dir option to indicate that the downloads should be retrived from the specified directory:

$ mhcflurry-downloads fetch models_class1_presentation --already-downloaded-dir downloads

Problems deserializing models

If you encounter errors loading the MHCflurry models, such as:

...
  File "/usr/local/lib/python3.6/site-packages/keras/engine/topology.py", line 293, in __init__
    raise TypeError('Keyword argument not understood:', kwarg)
TypeError: ('Keyword argument not understood:', 'data_format')

You may need to upgrade Keras:

pip install --upgrade Keras

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mhcflurry-1.6.1.tar.gz (132.4 kB view details)

Uploaded Source

Built Distribution

mhcflurry-1.6.1-py3-none-any.whl (134.8 kB view details)

Uploaded Python 3

File details

Details for the file mhcflurry-1.6.1.tar.gz.

File metadata

  • Download URL: mhcflurry-1.6.1.tar.gz
  • Upload date:
  • Size: 132.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.23.4 CPython/3.6.1

File hashes

Hashes for mhcflurry-1.6.1.tar.gz
Algorithm Hash digest
SHA256 e8c354af4e6e09b30075bd2dca5a2f13585061dae4b841e1863a36faced0d8c0
MD5 f64bec4d7fb152c347940f62ddc64e36
BLAKE2b-256 3d37088569b4b15534e17c3dc366537bcd228c3b8f371b5e55c6ee10d82be6a5

See more details on using hashes here.

File details

Details for the file mhcflurry-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: mhcflurry-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 134.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.23.4 CPython/3.6.1

File hashes

Hashes for mhcflurry-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b436e10b818b960b7cee903a8518454df68b8894412ab2bec9e070278945491
MD5 380c548b9161d5c1c70a1ec48106d952
BLAKE2b-256 01b8995d20a77017ac15776e3ed5b51f86addc233e37f80a5c6a0f773aca9d8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page