From c9e89845045cbb9b606ac759c47b4c032a377357 Mon Sep 17 00:00:00 2001
From: Tim O'Donnell <timodonnell@gmail.com>
Date: Mon, 12 Feb 2018 16:21:51 -0500
Subject: [PATCH] add filter_networks function

---
 mhcflurry/class1_affinity_predictor.py | 27 ++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/mhcflurry/class1_affinity_predictor.py b/mhcflurry/class1_affinity_predictor.py
index 4a4144ea..4773df95 100644
--- a/mhcflurry/class1_affinity_predictor.py
+++ b/mhcflurry/class1_affinity_predictor.py
@@ -1046,4 +1046,31 @@ class Class1AffinityPredictor(object):
 
         return encoded_peptides
 
+    def filter_networks(self, predicate):
+        """
+        Return a new Class1AffinityPredictor containing a subset of this
+        predictor's neural networks.
+
+        Parameters
+        ----------
+        predicate : Class1NeuralNetwork -> boolean
+            Function specifying which neural networks to include
 
+        Returns
+        -------
+        Class1AffinityPredictor
+        """
+        allele_to_allele_specific_models = {}
+        for (allele, models) in self.allele_to_allele_specific_models.items():
+            allele_to_allele_specific_models[allele] = [
+                m for m in models if predicate(m)
+            ]
+        class1_pan_allele_models = [
+            m for m in self.class1_pan_allele_models if predicate(m)
+        ]
+
+        return Class1AffinityPredictor(
+            allele_to_allele_specific_models=allele_to_allele_specific_models,
+            class1_pan_allele_models=class1_pan_allele_models,
+            allele_to_fixed_length_sequence=self.allele_to_fixed_length_sequence,
+        )
\ No newline at end of file
-- 
GitLab