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