diff --git a/ippisite/ippidb/migrations/0040_compound_families.py b/ippisite/ippidb/migrations/0040_compound_families.py new file mode 100644 index 0000000000000000000000000000000000000000..fa2b630f5a7d949cad2447e3736d1049876b773d --- /dev/null +++ b/ippisite/ippidb/migrations/0040_compound_families.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.1 on 2019-12-19 14:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ippidb', '0039_auto_20191216_1438'), + ] + + operations = [ + migrations.AddField( + model_name='compound', + name='families', + field=models.TextField(blank=True, null=True, verbose_name='PPI family names'), + ), + ] diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 6af2ed3820457e59ba305362906e7c22b62dad29..70d5d2e26c76f0d445b7fb25e994e401538c5f3c 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -714,6 +714,8 @@ class Compound(AutoFillableModel): best_activity_ppi_family_name = models.CharField( "Best activity PPI family name", max_length=30, null=True, blank=True ) + families = models.TextField("PPI family names", null=True, blank=True) + le = models.FloatField(verbose_name="Ligand efficiency", null=True, blank=True) lle = models.FloatField(verbose_name="Lipophilic efficiency", null=True, blank=True) lipinsky_mw = models.BooleanField("MW ok for Lipinsky", null=True, blank=True) @@ -875,13 +877,6 @@ class Compound(AutoFillableModel): .count() ) - @property - def families(self): - """ - return the all PPI families for PPIs involved in the compound activity of the compound - """ - return list(set([ca.ppi.family for ca in self.compoundaction_set.all()])) - @property def sorted_similar_drugbank_compounds(self): return self.drugbankcompoundtanimoto_set.order_by("-tanimoto") @@ -1283,6 +1278,9 @@ class Contribution(models.Model): def update_compound_cached_properties(): + for c in Compound.objects.all(): + c.families = ', '.join(list(set([ca.ppi.family.name for ca in c.compoundaction_set.all()]))) + c.save() Compound.objects.update( pubs=Subquery( Compound.objects.filter(id=OuterRef("id")) diff --git a/ippisite/ippidb/templates/compound_t_list.html b/ippisite/ippidb/templates/compound_t_list.html index 43fba1c554bf9172ec3c057cae9e6cda06b01ccc..09b6e2ecf1a90dc78a8fb82d60f66f61fe03456d 100644 --- a/ippisite/ippidb/templates/compound_t_list.html +++ b/ippisite/ippidb/templates/compound_t_list.html @@ -40,7 +40,7 @@ <td scope="col">{{ compound.common_name|default_if_none:"-" }}</td> {% endif %} {% if "families" in fields %} - <td scope="col">{% for family in compound.families %}{{ family.name }}{% if not forloop.last %}, {% endif %}{% endfor %}</td> + <td scope="col">{{ compound.families }}</td> {% endif %} {% if "pubs" in fields %} <td scope="col">{{ compound.pubs }}</td>