From 138172fbfe2ff16a88133b6637279a80be29a512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Tue, 7 Nov 2017 17:09:03 +0100 Subject: [PATCH] add new "name" property for the PPI based on proteins in complexes Former-commit-id: cac6d4ec52af22686f1f100b4b6662ebd5b7c2ee --- ippisite/ippidb/models.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 52c5d875..ad07f70a 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -220,6 +220,17 @@ class Ppi(models.Model): # this is the less efficient query ever seen, FIXME return PpiComplex.objects.filter(ppi=self, complex__in=ProteinDomainBoundComplex.objects.all()) + @property + def name(self): + all_protein_names = set([ppi_complex.complex.protein.short_name for ppi_complex in self.get_ppi_complexes()]) + bound_protein_names = set([ppi_complex.complex.protein.short_name for ppi_complex in self.get_ppi_bound_complexes()]) + partner_protein_names = all_protein_names - bound_protein_names + bound_str = ','.join(bound_protein_names) + partner_str = ','.join(partner_protein_names) + name = bound_str + if partner_str!='': + name += ' / ' + partner_str + return name class PpiComplex(models.Model): ppi = models.ForeignKey(Ppi) -- GitLab