From 8b3c9e274fe6b374f4ad14dfdb6d49e154910457 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Wed, 29 Mar 2017 17:03:32 +0200
Subject: [PATCH] finish last model classes and update db.

---
 ippisite/db.sqlite3                           | Bin 520192 -> 536576 bytes
 .../migrations/0008_auto_20170329_1441.py     |  66 ++++++++++++++++++
 ippisite/ippidb/models.py                     |  50 +++++--------
 3 files changed, 85 insertions(+), 31 deletions(-)
 create mode 100644 ippisite/ippidb/migrations/0008_auto_20170329_1441.py

diff --git a/ippisite/db.sqlite3 b/ippisite/db.sqlite3
index 4322d387f7390adb118f06d2b776199986ca1340..47ec17349e4b67ca860f635c93619456554a9e2f 100644
GIT binary patch
delta 2559
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

delta 915
zcmY*XU2IfE6rOYM+&Q<sd-v{Q?PB@aDVA;)C|j&7+aJ<y{Ncf_tUe$TFe?RQHMX^_
zQmug<w^&p9P`rVOMo81d5HMotO}r1)L|LN`G>SYJ6>1ttOd!U_L~EkNIt#uyIcIY6
zoqXSXXJ!iXyf7afUlBe=2sxs%O{GQ%R2|>Y1jjDqiVi-kpr^zJ_m)$mS6M+9Lvb(7
zf2#C?D;BAKuRZ1>k1>138FfazaBipVjy1&13dJIXZ*k`n+?{K1p~`(}<83(ab|;oY
zt2>g&K*CM)^;l_tL85_K7aN<rw#NQ|o8?h&wk@UWchHV@b=aE$Z?;n*dzk5Bc19tO
z8V0A(uF2mnVT~8tG1qKr_Am)vw1<_4LE9TXRnSb$@rmO**A(=DL+kVmxMQcdclDz<
z*Z0`(x_G&)^?g82J)=|a^ju#!oZ^kimdz;@8&eN#N^VIOYZqkg0^CqyCE{FnN=nRk
zMoLTImzK1x6CTgaJIZv-05x!{>Ml6Pv&LjEpX?3YiT{e}Udlb1yB$?U=nNgFm-V1l
zkeD-88(F*FUZt$;&}3n+aYcjC^3>q}xX-AcnJnDZ2~GDxXnjSISo#F1_{ZL5y=DGk
z9&jGQvuu%NjQ8~k`i}myzEwK`zd{??r8EX~f1-<hNiAWC%@|21Ks3o{A1;>{%Uix5
zYvtd4m^2@}+uT%cMr5`h?}G#Ki9Y1z+LUki<2o9=N`~AtKV%h|XuwD!0Y_Wq=>d#E
zm+W{AtL5AP?w2z|SSQ<GMjzt-`J8bD{HMDN0aV@2LB-xjMYCv;A3n#{$v+Po_sDBK
zY}v@k9wtxr;0yN~NfIQxN#)1*2p!gG#kl#o#>sBB(%7k9pwYe&{9TEptYU}g#K^X7
zaP){=dKKGY$X6ByArKci@fb#)-41W8lHcZ8Om^p)DOcv%IiK%k1(3I1WYZLXA#0S-
zYAQO!<I)<$5@h^u25~LO_qy4c8tW{nF8|>FFVQNt%g#giiTo<hzV`phv3igvo@a~D
z;-z^~^A`?d7_eD9$s(DUyzreCl|LNDYAQNKR=)lU&Q4D8=>mj&m_j|IFSBk+{0!GB
N@~4)6^Abkt{srjb7nA@1

diff --git a/ippisite/ippidb/migrations/0008_auto_20170329_1441.py b/ippisite/ippidb/migrations/0008_auto_20170329_1441.py
new file mode 100644
index 00000000..a4226179
--- /dev/null
+++ b/ippisite/ippidb/migrations/0008_auto_20170329_1441.py
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.5 on 2017-03-29 14:41
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ippidb', '0007_auto_20170328_2045'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='RefCompoundBiblio',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('compound_name', models.CharField(max_length=50, verbose_name='Compound name in the publication')),
+                ('bibliography_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Bibliography')),
+                ('compound_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')),
+            ],
+        ),
+        migrations.AddField(
+            model_name='cmpdaction',
+            name='nb_copy_compounds',
+            field=models.IntegerField(default=1, verbose_name='Number of copies for the compound'),
+            preserve_default=False,
+        ),
+        migrations.AddField(
+            model_name='cmpdaction',
+            name='pdb_id',
+            field=models.CharField(default='NA', max_length=4, verbose_name='PDB ID'),
+            preserve_default=False,
+        ),
+        migrations.AddField(
+            model_name='cmpdaction',
+            name='ppi_id',
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi'),
+            preserve_default=False,
+        ),
+        migrations.AddField(
+            model_name='compoundactivityresult',
+            name='modulation_type',
+            field=models.CharField(choices=[('B', 'Binding'), ('I', 'Inhibition'), ('S', 'Stabilization')], default='B', max_length=1, verbose_name='Modulation type'),
+            preserve_default=False,
+        ),
+        migrations.AlterField(
+            model_name='cmpdaction',
+            name='activation_mode',
+            field=models.CharField(choices=[('O', 'Orthosteric'), ('A', 'Allosteric')], max_length=1, verbose_name='Activation mode'),
+        ),
+        migrations.RemoveField(
+            model_name='cmpdaction',
+            name='modulation_type',
+        ),
+        migrations.AlterUniqueTogether(
+            name='cmpdaction',
+            unique_together=set([('complex_id', 'compound_id', 'pdb_id')]),
+        ),
+        migrations.AlterUniqueTogether(
+            name='refcompoundbiblio',
+            unique_together=set([('compound_id', 'bibliography_id')]),
+        ),
+    ]
diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index 325a849e..73de8458 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -119,6 +119,9 @@ class Domain(models.Model):
         self.pfam_description = info['description']
         super(Domain, self).save(*args, **kwargs)
 
+    def __str__(self):
+        return '{} ({}-{})'.format(self.pfam_acc, self.pfam_id, self.pfam_description)
+
 class ProteinDomainComplex(models.Model):
     protein_id = models.ForeignKey('Protein')
     domain_id = models.ForeignKey('Domain')
@@ -277,10 +280,16 @@ class ActivityType(models.Model):
     name = models.CharField('Name', max_length=50, unique=True)
 
 class CompoundActivityResult(models.Model):
+    MODULATION_TYPES = (
+        ('B', 'Binding'),
+        ('I', 'Inhibition'),
+        ('S', 'Stabilization')
+    )
     compound_id = models.ForeignKey(Compound)  
     test_activity_description_id = models.ForeignKey(TestActivityDescription)  
     activity_type_id = models.ForeignKey(ActivityType)  
     activity = models.DecimalField('Activity', max_digits=12, decimal_places=10)  
+    modulation_type = models.CharField('Modulation type', max_length=1, choices=MODULATION_TYPES)  
 
     class Meta:
         unique_together = (('compound_id', 'test_activity_description_id', 'activity_type_id'),)
@@ -329,43 +338,22 @@ class CompoundPKResult(models.Model):
 class CmpdAction(models.Model):
     ACTIVATION_MODES = (
         ('O', 'Orthosteric'),
-        ('A', 'Allosteric'),
-        ('U', 'Unspecified')
-    )
-    MODULATION_TYPES = (
-        ('I', 'Inhibition'),
-        ('S', 'Stabilization')
+        ('A', 'Allosteric')
     )
     complex_id = models.ForeignKey(ProteinDomainBoundComplex)
     compound_id = models.ForeignKey(Compound)  
     activation_mode = models.CharField('Activation mode', max_length=1, choices=ACTIVATION_MODES)  
-    modulation_type = models.CharField('Modulation type', max_length=1, choices=MODULATION_TYPES)  
-
-""""
-class Actionevidencetest(models.Model):
-    idcmpdaction = models.ForeignKey('Cmpdaction', models.DO_NOTHING, ='IDCmpdAction')  
-    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, ='IDTestActivity')  
-    nbcopycompound = models.IntegerField(='NbCopyCompound', blank=True, null=True)  
+    ppi_id = models.ForeignKey(Ppi)
+    pdb_id = models.CharField('PDB ID', max_length=4)
+    nb_copy_compounds = models.IntegerField('Number of copies for the compound')  
 
     class Meta:
-#        managed = False
-        db_table = 'actionEvidenceTest'
-        unique_together = (('idcmpdaction', 'idtestactivity'),)
-
-
+        unique_together = (('complex_id', 'compound_id', 'pdb_id'),)
 
-
-
-
-
-class Refcmpdbiblio(models.Model):
-    idcompound = models.ForeignKey(Compound, models.DO_NOTHING, ='IDCompound')  
-    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, ='IDBiblio')  
-    cmpdnameinbiblio = models.CharField(='CmpdNameInBiblio', max_length=20, blank=True, null=True)  
+class RefCompoundBiblio(models.Model):
+    compound_id = models.ForeignKey(Compound)  
+    bibliography_id = models.ForeignKey(Bibliography)  
+    compound_name = models.CharField('Compound name in the publication', max_length=50)  
 
     class Meta:
-#        managed = False
-        db_table = 'refCmpdBiblio'
-        unique_together = (('idcompound', 'idbiblio'),)
-
-"""
+        unique_together = (('compound_id', 'bibliography_id'),)
-- 
GitLab