From 764d8594b976103bd706bbf4abc958fdf47eccd1 Mon Sep 17 00:00:00 2001
From: Tim O'Donnell <timodonnell@gmail.com>
Date: Fri, 16 Feb 2018 16:10:35 -0500
Subject: [PATCH] fix

---
 mhcflurry/class1_affinity_predictor.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/mhcflurry/class1_affinity_predictor.py b/mhcflurry/class1_affinity_predictor.py
index 2ad081f6..406baf79 100644
--- a/mhcflurry/class1_affinity_predictor.py
+++ b/mhcflurry/class1_affinity_predictor.py
@@ -827,11 +827,14 @@ class Class1AffinityPredictor(object):
             if alleles is not None:
                 raise ValueError("Specify exactly one of allele or alleles")
             df["allele"] = allele
-            df["normalized_allele"] = mhcnames.normalize_allele_name(allele)
+            normalized_allele = mhcnames.normalize_allele_name(allele)
+            df["normalized_allele"] = normalized_allele
+            unique_alleles = [normalized_allele]
         else:
             df["allele"] = numpy.array(alleles)
             df["normalized_allele"] = df.allele.map(
                 mhcnames.normalize_allele_name)
+            unique_alleles = df.normalized_allele.unique()
 
         if len(df) == 0:
             # No predictions.
@@ -854,8 +857,8 @@ class Class1AffinityPredictor(object):
             # Only compute this if needed
             all_peptide_lengths_supported = False
             df["supported_peptide_length"] = (
-                (df.sequence_length.len() >= min_peptide_length) &
-                (df.sequence_length.len() <= max_peptide_length))
+                (df.sequence_length >= min_peptide_length) &
+                (df.sequence_length <= max_peptide_length))
             if (~df.supported_peptide_length).any():
                 msg = (
                     "%d peptides have lengths outside of supported range [%d, %d]: "
@@ -899,9 +902,8 @@ class Class1AffinityPredictor(object):
                         allele_encoding=masked_allele_encoding)
 
         if self.allele_to_allele_specific_models:
-            query_alleles = df.normalized_allele.unique()
             unsupported_alleles = [
-                allele for allele in query_alleles
+                allele for allele in unique_alleles
                 if not self.allele_to_allele_specific_models.get(allele)
             ]
             if unsupported_alleles:
@@ -914,9 +916,9 @@ class Class1AffinityPredictor(object):
                 if throw:
                     raise ValueError(msg)
 
-            for allele in query_alleles:
+            for allele in unique_alleles:
                 models = self.allele_to_allele_specific_models.get(allele, [])
-                if len(query_alleles) == 1 and all_peptide_lengths_supported:
+                if len(unique_alleles) == 1 and all_peptide_lengths_supported:
                     mask = None
                 else:
                     mask = (
-- 
GitLab