diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 52c5d8753034c2e8cc5ed527267ce8773dab11b8..ad07f70a834c9048c663c140a47371057a164b7c 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)