From 0880187daa0725e350a6adf09f700441b30761e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Sat, 7 Apr 2018 21:07:19 +0200
Subject: [PATCH] add computing of LE and LLE in Compound

Former-commit-id: b1a17d4f65dc933c11891cee60d91e12334e41be
---
 ippisite/ippidb/models.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index ba47ac4a..32cf38fd 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -2,6 +2,7 @@ from __future__ import unicode_literals
 
 from django.db import models
 from django_pandas.managers import DataFrameManager
+from django.db.models import Max
 
 from .ws import get_pubmed_info, get_epo_info, get_uniprot_info, get_taxonomy_info, get_go_info, get_pfam_info
 
@@ -407,6 +408,20 @@ class Compound(models.Model):
     def pfizer_global(self):
         return self.pfizer_a_log_p and self.pfizer_tpsa
 
+    @property
+    def le(self):
+        """
+        LE: Ligand Efficiency
+        """
+        return (1.37 * float(self.compoundactivityresult_set.aggregate(Max('activity'))['activity__max']))/self.nb_atom_non_h
+
+    @property
+    def lle(self):
+        """
+        LLE: Lipophilic Efficiency
+        """
+        return float(self.compoundactivityresult_set.aggregate(Max('activity'))['activity__max'] - self.a_log_p)     
+
 class MDDRActivityClass(models.Model):
     name = models.CharField('Activity Class', max_length=100, unique=True)
 
-- 
GitLab