Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_mhcflurry():
predictor = MHCflurry(alleles=[DEFAULT_ALLELE])
binding_predictions = predictor.predict_subsequences(
protein_sequence_dict,
peptide_lengths=[9])
eq_(4, len(binding_predictions),
"Expected 4 binding predictions from %s" % (binding_predictions,))
prediction_scores = {
(x.peptide, x.allele): x.affinity for x in binding_predictions
}
predictor = Class1AffinityPredictor.load()
# test one prediction at a time to make sure there's no peptide/allele mixup
for (peptide, allele), affinity in prediction_scores.items():
prediction = predictor.predict([peptide], allele=allele)
assert len(prediction) == 1
# testing.assert_almost_equal(round(prediction[0], 2), round(affinity, 2))
testing.assert_almost_equal(prediction[0], affinity)
"""
# moving import here since the mhcflurry package imports
# Keras and its backend (either Theano or TF) which end up
# slowing down responsive for any CLI application using MHCtools
from mhcflurry import Class1AffinityPredictor
BasePredictor.__init__(
self,
alleles=alleles,
default_peptide_lengths=default_peptide_lengths,
min_peptide_length=8,
max_peptide_length=15)
if predictor:
self.predictor = predictor
elif models_path:
logging.info("Loading MHCflurry models from %s" % models_path)
self.predictor = Class1AffinityPredictor.load(models_path)
else:
self.predictor = Class1AffinityPredictor.load()
# relying on BasePredictor and MHCflurry to both normalize
# allele names the same way using mhcnames
for allele in self.alleles:
if allele not in self.predictor.supported_alleles:
raise UnsupportedAllele(allele)