Python interface to running command-line and web-based MHC binding predictors.
mhctools --sequence SIINFEKL SIINFEKLQ --mhc-predictor netmhc --mhc-alleles A0201
mhctools --sequence AAAQQQSIINFEKL --extract-subsequences --mhc-peptide-lengths 8-10 --mhc-predictor mhcflurry --mhc-alleles A0201
from mhctools import NetMHCpan
# Run NetMHCpan for alleles HLA-A*01:01 and HLA-A*02:01
predictor = NetMHCpan(alleles=["A*02:01", "hla-a0101"])
# scan the short proteins 1L2Y and 1L3Y for epitopes
protein_sequences = {
"1L2Y": "NLYIQWLKDGGPSSGRPPPS",
"1L3Y": "ECDTINCERYNGQVCGGPGRGLCFCGKCRCHPGFEGSACQA"
}
binding_predictions = predictor.predict_subsequences(protein_sequences, peptide_lengths=[9])
# flatten binding predictions into a Pandas DataFrame
df = binding_predictions.to_dataframe()
# epitope collection is sorted by percentile rank
# of binding predictions
for binding_prediction in binding_predictions:
if binding_prediction.affinity < 100:
print("Strong binder: %s" % (binding_prediction,))
The following MHC binding predictors are available in mhctools
:
MHCflurry
: open source predictor installed by default with mhctools
, requires the user run mhcflurry-downloads fetch
first to download MHCflurry modelsNetMHC3
: requires locally installed version of NetMHC 3.xNetMHC4
: requires locally installed version of NetMHC 4.xNetMHC
: a wrapper function to automatically use NetMHC3
or NetMHC4
depending on what's installed.NetMHCpan
: requires locally installed version of NetMHCpanNetMHCIIpan
: requires locally installed version of NetMHCIIpanNetMHCcons
: requires locally installed version of NetMHCconsIedbMhcClass1
: Uses IEDB's REST API for class I binding predictions.IedbMhcClass2
: Uses IEDB's REST API for class II binding predictions.RandomBindingPredictor
: Creates binding predictions with random IC50 and percentile rank values.Every binding predictor is constructed with an alleles
argument specifying the HLA type for which to make predictions. Predictions are generated by calling the predict
method with a dictionary mapping sequence IDs or names to amino acid sequences.
Additionally there is a module for running the NetChop proteosomal cleavage predictor:
NetChop
: requires locally installed version of NetChop-3.1