From 2991a93ad3016f661e319faa6a10620e45df0631 Mon Sep 17 00:00:00 2001
From: Tim O'Donnell <timodonnell@gmail.com>
Date: Fri, 3 Jan 2020 16:33:31 -0500
Subject: [PATCH] fix

---
 .../run_predictors.py                         | 27 +++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/downloads-generation/data_mass_spec_benchmark/run_predictors.py b/downloads-generation/data_mass_spec_benchmark/run_predictors.py
index 14916c45..5bdd02db 100644
--- a/downloads-generation/data_mass_spec_benchmark/run_predictors.py
+++ b/downloads-generation/data_mass_spec_benchmark/run_predictors.py
@@ -394,8 +394,31 @@ def do_predictions_mhctools(work_item_dicts, constant_data=None):
                 program_name="netMHCpan-4.0",
                 mode="elution_score")
         elif predictor_name == "mixmhcpred":
-            predictor = mhctools.MixMHCpred(
-                alleles=alleles)
+            # Empirically determine supported alleles.
+            mixmhcpred_usable_alleles = []
+            unusable_alleles = []
+            for allele in alleles:
+                predictor = mhctools.MixMHCpred(alleles=[allele])
+
+                # We use inf not nan to indicate unsupported alleles since
+                # we use nan to indicate incomplete results that still need
+                # to execute.
+                empty_results = pandas.Series(index=peptides,
+                    dtype=numpy.float16)
+                empty_results[:] = numpy.inf
+                try:
+                    predictor.predict_peptides_dataframe(["PEPTIDESS"])
+                    mixmhcpred_usable_alleles.append(allele)
+                except ValueError:
+                    unusable_alleles.append(allele)
+                    for col in cols:
+                        result["%s %s" % (allele, col)] = empty_results.values
+
+            print("MixMHCpred usable alleles: ", *mixmhcpred_usable_alleles)
+            print("MixMHCpred unusable alleles: ", *unusable_alleles)
+            predictor = mhctools.MixMHCpred(alleles=alleles)
+            assert mixmhcpred_usable_alleles, mixmhcpred_usable_alleles
+            alleles = mixmhcpred_usable_alleles
         else:
             raise ValueError("Unsupported", predictor_name)
 
-- 
GitLab