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. By default it supports 112 MHC alleles using ensembles of allele-specific models. Pan-allele predictors supporting virtually any MHC allele of known sequence are available for testing (see below). MHCflurry runs on Python 2.7 and 3.4+ using the keras neural network library. It exposes command-line and Python library interfaces.

If you find MHCflurry useful in your research please cite:

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

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

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

See the documentation for more details.

Pan-allele models (experimental)

We are testing new models that support prediction for any MHC I allele of known sequence (as opposed to the 112 alleles supported by the allele-specific predictors). These models are trained on both affinity measurements and mass spec.

To try the pan-allele models, first download them:

$ mhcflurry-downloads fetch models_class1_pan

then set this environment variable to use them by default:

$ export MHCFLURRY_DEFAULT_CLASS1_MODELS="$(mhcflurry-downloads path models_class1_pan)/models.with_mass_spec"

You can now generate predictions for about 14,000 MHC I alleles. For example:

$ mhcflurry-predict --alleles HLA-A*02:04 --peptides SIINFEKL

If you use these models please let us know how it goes.

Other allele-specific models

The default MHCflurry models are trained on affinity measurements, one allele per model (i.e. allele-specific). Mass spec datasets are incorporated in the model selection step.

We also release experimental allele-specific predictors whose training data directly includes mass spec. To download these predictors, run:

$ mhcflurry-downloads fetch models_class1_trained_with_mass_spec

and then to make them used by default:

$ export MHCFLURRY_DEFAULT_CLASS1_MODELS="$(mhcflurry-downloads path models_class1_trained_with_mass_spec)/models"

We also release predictors that do not use mass spec datasets at all. To use these predictors, run:

$ mhcflurry-downloads fetch models_class1_selected_no_mass_spec
export MHCFLURRY_DEFAULT_CLASS1_MODELS="$(mhcflurry-downloads path models_class1_selected_no_mass_spec)/models"

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
http://github.com/openvax/mhcflurry/releases/download/pre-1.2/models_class1.20180225.tar.bz2

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

$ mkdir downloads
$ wget  --directory-prefix downloads http://github.com/openvax/mhcflurry/releases/download/pre-1.2/models_class1.20180225.tar.bz2
HTTP request sent, awaiting response... 200 OK
Length: 72616448 (69M) [application/octet-stream]
Saving to: 'downloads/models_class1.20180225.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 --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.4.2.tar.gz (95.1 kB view details)

Uploaded Source

Built Distribution

mhcflurry-1.4.2-py3-none-any.whl (96.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mhcflurry-1.4.2.tar.gz
  • Upload date:
  • Size: 95.1 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.4.2.tar.gz
Algorithm Hash digest
SHA256 a1c3b78676092062f44021c1c734fc809ed45a9f2f4cf10d4f33e489e8078c6b
MD5 089a10cb4de0c87d841b32c3988c6b49
BLAKE2b-256 86beade372367a46cf58faa15759e27c21cf45762afb7b1191e35d29e1b1e84d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mhcflurry-1.4.2-py3-none-any.whl
  • Upload date:
  • Size: 96.4 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.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c3180ca24ea6671fbaa08570c105930b2f16b986d3c27500e7d58671ae26a38
MD5 f2a046311b51928d2d270b90ccecf4db
BLAKE2b-256 5384000dc974a43a8256841ddc5c6f75491282c26869a8fbcc4390795caacb0e

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