From e0bba382f1fc02dc9fa8f51329255df5edefd872 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Sun, 12 Mar 2017 21:27:00 +0100
Subject: [PATCH] further work on data models, based on latest meetings

---
 ippisite/db.sqlite3                           | Bin 233472 -> 245760 bytes
 ippisite/ippidb/admin.py                      |  13 +-
 .../migrations/0002_auto_20170221_1606.py     |  41 ++
 ippisite/ippidb/models.py                     | 467 ++++++++----------
 4 files changed, 258 insertions(+), 263 deletions(-)
 create mode 100644 ippisite/ippidb/migrations/0002_auto_20170221_1606.py

diff --git a/ippisite/db.sqlite3 b/ippisite/db.sqlite3
index d7af3c51bb79c322ce6fc7f3abdf063b5e007092..b4dfacb9d2067dd66c0af33420cc8ef242c0089c 100644
GIT binary patch
delta 1714
zcmah~ZA@EL7{2G;mKNIHbJ=82akMgEAVSZ*{i2jDcI$v{w&kOv6imu3xAf!oYb|Wh
znD7x27v17We>5h3Oky<AWXmX96Elr*e`frHMiXP^qRakl32r~k^oNO_Qb1W^yt(J(
zzVCU?dEfio_j&KaWqM%&UaGI|Aqb*0n(+X51Xf<ugPv;>A3zE!?Kv59kW|_WEYqMo
z)dQu3+G>lWQV}755aRs&%yiPvA=ZpIj`g!9WGWdQi0j~3Eo<sVrf$8dvkM`E#mv%p
zck}k{-20mP!pF~zQ3onvD*^5BCQQJO;9a;0$6+gctx!Ed!(6Mb4!o7K>C^z`#&zu`
zhGD3~@^XB?kc{(@1pJ1ean{?{{tBuc;H1L-R4^TnWHOOt0_AS%>eQ+o2%%C?nlff4
z6HJr2O<nB)hQ2|-U*XsANB9}M3^ULSYv>z=I`lTZf1gBM56UrxNG8Z<f=uD7qgFsM
z^!1$VB@IbmFFdckNbj#^B!s$t53+FE)dMJ`c#@M1j7ybTr9x5QH{Mj(o{@kyzzD%u
za60JUJ{FaolVLs)+I8xxCEyTXctO~Kbv8)A5s<%j8>kBdudM6kq-vR<zf>*bEM`^n
zOIA|qT$b7bA(6|>#MpBvfu`b<hOBu?NJr0}Nn5638H*Tqdqln4?&I8^m^fyS#hh8E
z(HHk2m&a#xW<#@1&k**9V{Wf2?uwqs`r?i`w>@Qc#4KT9bSOEhAIXl5o}BW<d!sxz
zGBbAEVRFQW=Fj-N#zbJw7!7bnG#QUYUXJ&&LSJZR7ufHd@pvubn0NNL&+AH$d5xkY
zaxOB;m2lxHVbm3yj9HStQCHFtO-7s^k#*Z`Mpt&w=(Hb;Ik{fZ6+J0B`y6_g-4*sl
zvF(|hb#bofShW9y!O4w?u3<;!=}dX=V8k79%sCS1NV!b)9h^zap>B@t)}u}%t2ZM3
zk`-+6m;3puw(#)XXMvoAMFJM#9bA*2z~&~(3I2~;vT)~WtCm9a{hVxLyn=pAKcw&D
z&+{t1Pf7v6psiWAHFp-C+@*04`U(L@=qnhtO3yDglPY5Iu&q+1(pOg6YEl7FnBx4I
zFwYrHO?s?7)Fg(Ejm(+FA@S_=Xp@*7=6kc;pfjrDM^2>!zWzjC$lRWBqz7ktA$l%w
zCOGLH?(4T78{B<&miy=34Hi8zo5Jy6f)54Lx$hrU*XcWU0m#s4;5dWHl1?V43nP!N
zTxz7jI-v?xdgVE}vVyPZl+H-IB%hM2itefh^dwjZ>&2D@V6BoU4-)5dEVEpE@H#L6
z3EcutV$)oDfVizFKrwU?yu(pQ-j$bq0mduj=j9XfF1)lMn{Po<0<^JD3FSDS(3Yj6
z-Ih*^u8iBOof59>*}-W$G44?NzvWZ{VRh{wtQ{C}qz`VLUo74R&RSdmn*@9UH*o>{
z0yT1~29$UpD=BqlS?yK0xsdP{0q?<E7*vFs2FeEhyT-`ky}v*MT1_!40}9ZDw>*L?
z1Jcz6W-TSr79<mYYVg`x3TP!&zY{fi=?2-XRQ{p(P<dVP0uFT=Gx&M&w+)iQ{5~f1
z*wh)ar)9O)Hn4awk`RKkJ593OvHV?vz_UR<u-Dy`U-_1-sVI|}fA2f8R=rJVqqemX
zw|Rd=z;|QYl5#jdegU)qYyR;fsLAIqfDO{($!jivE@SEMAuqMp#nVHw+O{^Z6rAP*
uvEbfVd#&!Rb7b4m@|WKL#tQpZu6gYbWNltp0!ND*Kapr{Z9&3pG4eMyH~kg>

delta 581
zcmYLGT}YE*6n@Y5w;w;>^R1j~{%u9Gfvs&SnpxqXi!L&}$-?!cmDnz_57+L;5DFns
z-ryssun|PNNc0uH2#xS+(#;Bj(iJi2!pOXdbraNUAssju59i@L&vQ;Ti`iK^-RS8g
zg!G8ssS7g)JD_uZ_%X^<&oPJ5%=ZQ_>a}sI5`QR>GR@T0%j{90kr$eV<a#HD37)_u
z9LFbk4>vK1VGMK6Fhv%Q?txn@5%mLQ$!J>_;v2GSM~9GYq}Rv+*GT5(wM&`w=)`VK
zZiBzb9G$qHN~cpd#v^P=tZAA_)JrO1n^9jK(p7@r@ingDGR|TeyV1)VV)rTQGrWBD
zcrVCEi_Fm%5YF?I7f&ArIij~S$3T+DjZ%%;qQEh*=8NFx1LqezG@vVlt_b#X>df_m
z+CQl#*yp(*|N5{2G{7>!vWWB+d3i1zlq0mt9Hpe--=)0ziEdK{2@VR%DddA&&!+bo
zut;jhTxXrkscR$JAvL2OR$fSX{hZ!hbHu$tuh^|w=yfZ!mE2}=W76K3f=<wSx;0<_
z0c&dt0@hkt@+zU6-eo;qms(-JRa%$6*kgC#LAxAr7A(gr*v@m(X%~tx<P#>U1gpZt
zH>`8Xe%HTOxy8W&D+DWI@*eHVZ)l0-vqs(wE|^M?E5pA6dDB=hA*i^25|5>pq>%pq
cOVSx(@1^~tB*|`t5b1-Ed?(qZk5X*m4|}Jk_y7O^

diff --git a/ippisite/ippidb/admin.py b/ippisite/ippidb/admin.py
index b5bd39f2..7ebef2ec 100644
--- a/ippisite/ippidb/admin.py
+++ b/ippisite/ippidb/admin.py
@@ -1,13 +1,6 @@
 from django.contrib import admin
-
 from .models import *
+from django.apps import apps
 
-admin.site.register(Bibliography)
-admin.site.register(Taxonomy)
-admin.site.register(MolecularFunction)
-admin.site.register(Protein)
-admin.site.register(Domain)
-admin.site.register(BindingSite)
-admin.site.register(Complex)
-admin.site.register(Ppi)
-admin.site.register(PpiArchitecture)
+for model in apps.get_app_config('ippidb').models.values():
+    admin.site.register(model)
diff --git a/ippisite/ippidb/migrations/0002_auto_20170221_1606.py b/ippisite/ippidb/migrations/0002_auto_20170221_1606.py
new file mode 100644
index 00000000..eda1599a
--- /dev/null
+++ b/ippisite/ippidb/migrations/0002_auto_20170221_1606.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.5 on 2017-02-21 16:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ippidb', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Disease',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('disease_name', models.CharField(db_column='Disease', max_length=30)),
+                ('ppi_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi')),
+            ],
+        ),
+        migrations.AlterModelOptions(
+            name='bibliography',
+            options={'verbose_name_plural': 'bibliographies'},
+        ),
+        migrations.AlterModelOptions(
+            name='complex',
+            options={'verbose_name_plural': 'complexes'},
+        ),
+        migrations.AlterModelOptions(
+            name='taxonomy',
+            options={'verbose_name_plural': 'taxonomies'},
+        ),
+        migrations.AlterField(
+            model_name='domain',
+            name='domainfamily',
+            field=models.CharField(max_length=25, verbose_name='Domain family'),
+        ),
+    ]
diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index c4d1a4dd..053d9abd 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -67,109 +67,195 @@ class Domain(models.Model):
     pfam_acc = models.CharField('Pfam Accession', max_length=10, unique=True) 
     pfam_id = models.CharField('Pfam Family Identifier', max_length=20) 
     pfam_description = models.CharField('Pfam Description', max_length=100)
-    domainfamily = models.CharField('', max_length=25)  #TODO: what is this field? check database contents
-    
-class BindingSite(models.Model):
-    protein_id = models.ForeignKey('Protein')
-    domain_id = models.ForeignKey('Domain')
+    domainfamily = models.CharField('Domain family', max_length=25)  #TODO: what is this field? check database contents
 
-class Complex(models.Model):
+class ProteinDomainComplex(models.Model):
+    complex_id = models.IntegerField('Complex identifier')
     protein_id = models.ForeignKey('Protein')
-    copy_nb = models.IntegerField('Number of copies')
+    domain_id = models.ForeignKey('Domain')
+    ppc_copy_nb = models.IntegerField('Number of copies of the protein in the complex')
+    
     class Meta:
         verbose_name_plural = "complexes"
+
+#TEST inheritance for complex: BoundComplex and PartnerComplex
+class ProteinDomainBoundComplex(ProteinDomainComplex):
+    ppp_copy_nb_per_p = models.IntegerField('Number of copies of the protein in the pocket')
+    pockets_nb = models.IntegerField('Total number of pockets in the complex')
+    class Meta:
+        verbose_name_plural = "bound complexes"
     
+class ProteinDomainPartnerComplex(ProteinDomainComplex):
+    class Meta:
+        verbose_name_plural = "partner complexes"
 
-class Ppi(models.Model):
-    complex_id_1 = models.ForeignKey(Complex, related_name='cplx_id_1')
-    complex_id_2 = models.ForeignKey(Complex, related_name='cplx_id_2')
-    binding_site_id_1 = models.ForeignKey(BindingSite, related_name='binding_site_id_1')
-    binding_site_id_2 = models.ForeignKey(BindingSite, related_name='binding_site_id_2')
+class Symmetry(models.Model):
+    code = models.CharField('Symmetry code', max_length=2)
+    description = models.CharField('Description', max_length=300)
 
-class PpiArchitecture(models.Model):
-    ppi_id = models.ForeignKey(Ppi)
+    class Meta:
+        verbose_name_plural = "symmetries"
+
+class Ppi(models.Model):
+    ppi_id = models.IntegerField('PPI identifier')
+    complex_id = models.ForeignKey(ProteinDomainComplex)
+    cc_nb = models.IntegerField('Number of copies of the complex in the PPI')
     pdb_id = models.CharField('PDB ID', max_length=4)
+    symmetry_id = models.ForeignKey(Symmetry)
 
-"""
+class Disease(models.Model):
+    ppi_id = models.ForeignKey(Ppi)
+    disease_name = models.CharField('Disease', max_length=30) # is there any database/nomenclature for diseases?
 
 
+class Compound(models.Model):
+    canonical_smile = models.CharField('Canonical Smile', unique=True, max_length=250)
+    #TODO index this table on canonical_smile
+    is_macrocycle = models.BooleanField('Contains one or more macrocycles') 
+    aromatic_ratio = models.DecimalField('Aromatic ratio', max_digits=3, decimal_places=2)
+    balaban_index = models.DecimalField('Balaban index', max_digits=3, decimal_places=2)  
+    fsp3 = models.DecimalField('Fsp3', max_digits=3, decimal_places=2)
+    dh_Petitjean = models.DecimalField('Dh Petitjean', max_digits=4, decimal_places=2) 
+    diam_graph_non_h_petitjean = models.IntegerField('Diameter for the molecular graph for heavy atoms (Petitjean)') 
+    gc_molar_refractivity = models.DecimalField('GC Molar Refractivity', max_digits=5, decimal_places=2)
+    g_petitjean = models.DecimalField('G Petitjean', max_digits=3, decimal_places=2)
+    ig_petitjean = models.DecimalField('Ig Petitjean', max_digits=3, decimal_places=2)
+    log_d = models.DecimalField('LogD (Partition coefficient octanol-1/water, with pKa information)', max_digits=4, decimal_places=2)
+    a_log_p = models.DecimalField('ALogP (Partition coefficient octanol-1/water)', max_digits=4, decimal_places=2)
+    mean_atom_vol_vdw = models.DecimalField('Mean atom volume computed with VdW radii', max_digits=4, decimal_places=2)
+    molecular_weight = models.DecimalField('Molecular weight', max_digits=6, decimal_places=2)
+    nb_acceptor_h = models.IntegerField('Number of hydrogen bond acceptors')
+    nb_aliphatic_amines = models.IntegerField('Number of aliphatics amines')
+    nb_aromatic_bonds = models.IntegerField('Number of aromatic bonds')
+    nb_aromatic_ether = models.IntegerField('Number of aromatic ethers')
+    nb_aromatic_sssr = models.IntegerField('Number of aromatic Smallest Set of System Rings (SSSR)')
+    nb_atom = models.IntegerField('Number of atoms') 
+    nb_atom_non_h = models.IntegerField('Number of non hydrogen atoms') 
+    nb_benzene_like_rings = models.IntegerField('Number of benzene-like rings')
+    nb_bonds = models.IntegerField('Number of bonds')
+    nb_bonds_non_h = models.IntegerField('Number of bonds not involving a hydrogen')  
+    nb_br = models.IntegerField('Number of Bromine atoms')  
+    nb_c = models.IntegerField('Number of Carbon atoms')  
+    nb_chiral_centers = models.IntegerField('Number of chiral centers')  
+    nb_circuits = models.IntegerField('Number of circuits')  
+    nb_cl = models.IntegerField('Number of Chlorine atoms')  
+    nb_csp2 = models.IntegerField('Number of sp2-hybridized carbon atoms')  
+    nb_csp3 = models.IntegerField('Number of sp3-hybridized carbon atoms')  
+    nb_donor_h = models.IntegerField('Number of hydrogen bond donors')  
+    nb_double_bonds = models.IntegerField('Number of double bonds')  
+    nb_f = models.IntegerField('Number of fluorine atoms')  
+    nb_i = models.IntegerField('Number of iodine atoms')  
+    nb_multiple_bonds = models.IntegerField('Number of multiple bonds')  
+    nb_n = models.IntegerField('Number of nitrogen atoms')
+    nb_o = models.IntegerField('Number of oxygen atoms')  
+    nb_rings = models.IntegerField('Number of rings')  
+    nb_rotatable_bonds = models.IntegerField('Number of rotatable bonds')  
+    radius_graph_non_h_petitjean = models.IntegerField('Radius for the molecular graph for heavy atoms (Petitjean)')  
+    randic_index = models.DecimalField('Randic index', max_digits=4, decimal_places=2)  
+    rdf070m = models.DecimalField('RDF070m, radial distribution function weighted by the atomic masses at 7Ã…', max_digits=5, decimal_places=2)  
+    rotatable_bond_fraction = models.DecimalField('Fraction of rotatable bonds', max_digits=3, decimal_places=2)  
+    sum_atom_polar = models.DecimalField('Sum of atomic polarizabilities', max_digits=5, decimal_places=2)  
+    sum_atom_vol_vdw = models.DecimalField('Sum of atom volumes computed with VdW radii', max_digits=6, decimal_places=2)  
+    surface_vdw_petitjean = models.DecimalField('Van der Waals surface area (Petitjean)', max_digits=6, decimal_places=2)  
+    thickness_petitjean = models.DecimalField('Thickness (Petitjean)', max_digits=4, decimal_places=2)  
+    tpsa = models.DecimalField('Topological Polar Surface Area (TPSA)', max_digits=5, decimal_places=2)  
+    ui = models.DecimalField('Unsaturation index', max_digits=4, decimal_places=2)  
+    vol_vdw_petitjean = models.DecimalField('Van der Waals volume (Petitjean)', max_digits=7, decimal_places=2)  
+    wiener_index = models.IntegerField('Wiener index')  
+    common_name = models.CharField('Common name', unique=True, max_length=20, blank=True, null=True)  
+    pubchem_id = models.CharField('Pubchem ID', unique=True, max_length=10, blank=True, null=True)  
+    chemspider_id = models.CharField('Chemspider ID', unique=True, max_length=10, blank=True, null=True)  
+    chembl_id = models.CharField('Chembl ID', unique=True, max_length=30, blank=True, null=True)  
+    iupac_name = models.CharField('IUPAC name', unique=True, max_length=255, blank=True, null=True)  
+    mddr_compound_id = models.ForeignKey('MDDRCompoundImport', 'MDDR compound', unique=True, blank=True, null=True)  
+
+
+class MDDRCompoundImport(models.Model):
+    mddr_compound_id = models.IntegerField('MDDR compound ID')  
+    mddr_name = models.CharField('MDDR name', max_length=40)  
+    dvpmt_phase = models.CharField('Development phase', max_length=20)  
+    canonical_smile = models.CharField('Canonical Smile', max_length=500, unique=True, blank=True, null=True)  
+    #TODO index this table on canonical_smile
+    db_import_date = models.DecimalField('MDDR release year/month', max_digits=6, decimal_places=0)  
 
+    class Meta:
+        # over multiple releases of the MDDR database, the same compound can evolve in its development phase
+        # the same compound can have different names and development phases in the same MDDR release
+        unique_together = (('mddr_compound_id', 'mddr_name', 'dvpmt_phase'),)
 
 
-class Actionevidencetest(models.Model):
-    idcmpdaction = models.ForeignKey('Cmpdaction', models.DO_NOTHING, db_column='IDCmpdAction')  # Field name made lowercase.
-    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, db_column='IDTestActivity')  # Field name made lowercase.
-    nbcopycompound = models.IntegerField(db_column='NbCopyCompound', blank=True, null=True)  # Field name made lowercase.
+class MDDRCompoundActivityClass(models.Model):
+    mddr_compound_id = models.ForeignKey(MDDRCompoundImport)  
+    activity_class = models.CharField('Activity Class', max_length=100)  
 
     class Meta:
-#        managed = False
-        db_table = 'actionEvidenceTest'
-        unique_together = (('idcmpdaction', 'idtestactivity'),)
+        unique_together = (('mddr_compound_id', 'activity_class'),)
 
 
-class Actionevidencexray(models.Model):
-    idcmpdaction = models.ForeignKey('Cmpdaction', models.DO_NOTHING, db_column='IDCmpdAction')  # Field name made lowercase.
-    codepdb = models.CharField(db_column='CodePDB', max_length=4)  # Field name made lowercase.
-    nbcopycompound = models.IntegerField(db_column='NbCopyCompound')  # Field name made lowercase.
-    idbindingsite = models.ForeignKey('Bindingsite', models.DO_NOTHING, db_column='IDBindingSite')  # Field name made lowercase.
-    idbiblio = models.ForeignKey('Biblio', models.DO_NOTHING, db_column='IDBiblio', blank=True, null=True)  # Field name made lowercase.
+class MDDRSimilarity(models.Model):
+    canonical_smile_ippidb = models.CharField('Canonical Smile for IPPIDB compound', max_length=500, unique=True, blank=True, null=True)
+    canonical_smile_mddr = models.CharField('Canonical Smile for MDDR Compound', max_length=500, unique=True, blank=True, null=True)
+    tanimoto = models.DecimalField('Tanimoto', max_digits=6, decimal_places=5)  
 
     class Meta:
-#        managed = False
-        db_table = 'actionEvidenceXRay'
-        unique_together = (('idcmpdaction', 'codepdb'),)
+        unique_together = (('canonical_smile_ippidb', 'canonical_smile_mddr'),)
+
+"""
+class TestActivityDescription(models.Model):
+    complex_id = models.ForeignKey(Complex)
+    biblio_id = models.ForeignKey(Biblio)
+    idppi = models.ForeignKey(Ppi, models.DO_NOTHING, ='IDPPI', blank=True, null=True)  
+    testnameactivity = models.CharField(='TestNameActivity', max_length=40)  
+    isprimary = models.CharField(='IsPrimary', max_length=1)  
+    protboundconstruct = models.CharField(='ProtBoundConstruct', max_length=11)  
+    testtype = models.CharField(='TestType', max_length=5)  
+    testmodulationtype = models.CharField(='TestModulationType', max_length=13)  
+    nbactivescmpdstot = models.IntegerField(='NbActivesCmpdsTot')  
+    conccmpds = models.DecimalField(='ConcCmpds', max_digits=7, decimal_places=3, blank=True, null=True)  
+    protocol = models.TextField(='Protocol', blank=True, null=True)  
+    concproteinbound = models.DecimalField(='ConcProteinBound', max_digits=7, decimal_places=3, blank=True, null=True)  
+    concprotein2 = models.DecimalField(='ConcProtein2', max_digits=7, decimal_places=3, blank=True, null=True)  
+    controlepos = models.CharField(='ControlePos', max_length=50, blank=True, null=True)  
+    controleneg = models.CharField(='ControleNeg', max_length=50, blank=True, null=True)  
+    cellline = models.CharField(='CellLine', max_length=50, blank=True, null=True)  
+    pepseq = models.CharField(='PepSeq', max_length=100, blank=True, null=True)  
+    marker = models.CharField(='Marker', max_length=35, blank=True, null=True)  
 
 
-class Biblio(models.Model):
-    idbiblio = models.AutoField(db_column='IDBiblio', primary_key=True)  # Field name made lowercase.
-    source = models.CharField(db_column='Source', max_length=7)  # Field name made lowercase.
-    idsource = models.CharField(db_column='IDSource', max_length=25)  # Field name made lowercase.
-    title = models.CharField(db_column='Title', max_length=300)  # Field name made lowercase.
-    listauthor = models.CharField(db_column='ListAuthor', max_length=500)  # Field name made lowercase.
-    yearbiblio = models.IntegerField(db_column='YearBiblio')  # Field name made lowercase.
-    cytotox = models.CharField(db_column='Cytotox', max_length=1)  # Field name made lowercase.
-    insilico = models.CharField(db_column='InSilico', max_length=1)  # Field name made lowercase.
-    invitro = models.CharField(db_column='InVitro', max_length=1)  # Field name made lowercase.
-    invivo = models.CharField(db_column='InVivo', max_length=1)  # Field name made lowercase.
-    incellulo = models.CharField(db_column='InCellulo', max_length=1)  # Field name made lowercase.
-    pharmacokinetic = models.CharField(db_column='Pharmacokinetic', max_length=1)  # Field name made lowercase.
-    xray = models.CharField(db_column='XRay', max_length=1)  # Field name made lowercase.
-    journalname = models.CharField(db_column='JournalName', max_length=50, blank=True, null=True)  # Field name made lowercase.
 
-    class Meta:
-#        managed = False
-        db_table = 'biblio'
-        unique_together = (('source', 'idsource'),)
 
 
-class Bindingsite(models.Model):
-    idbindingsite = models.IntegerField(db_column='IDBindingSite')  # Field name made lowercase.
-    idprotein = models.ForeignKey('Protein', models.DO_NOTHING, db_column='IDProtein')  # Field name made lowercase.
-    iddomain = models.ForeignKey('Domain', models.DO_NOTHING, db_column='IDDomain')  # Field name made lowercase.
+
+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)  
 
     class Meta:
 #        managed = False
-        db_table = 'bindingSite'
-        unique_together = (('idbindingsite', 'idprotein', 'iddomain'),)
+        db_table = 'actionEvidenceTest'
+        unique_together = (('idcmpdaction', 'idtestactivity'),)
 
 
-class Bindingsiteevidence(models.Model):
-    idppi = models.ForeignKey('Ppi', models.DO_NOTHING, db_column='IDPPI')  # Field name made lowercase.
-    idbindingsite = models.ForeignKey(Bindingsite, models.DO_NOTHING, db_column='IDBindingSite')  # Field name made lowercase.
-    codepdb = models.CharField(db_column='CodePDB', max_length=4)  # Field name made lowercase.
+class Actionevidencexray(models.Model):
+    idcmpdaction = models.ForeignKey('Cmpdaction', models.DO_NOTHING, ='IDCmpdAction')  
+    codepdb = models.CharField(='CodePDB', max_length=4)  
+    nbcopycompound = models.IntegerField(='NbCopyCompound')  
+    idbindingsite = models.ForeignKey('Bindingsite', models.DO_NOTHING, ='IDBindingSite')  
+    idbiblio = models.ForeignKey('Biblio', models.DO_NOTHING, ='IDBiblio', blank=True, null=True)  
 
     class Meta:
 #        managed = False
-        db_table = 'bindingSiteEvidence'
-        unique_together = (('idppi', 'idbindingsite'),)
+        db_table = 'actionEvidenceXRay'
+        unique_together = (('idcmpdaction', 'codepdb'),)
 
 
 class Cmpdaction(models.Model):
-    idcmpdaction = models.AutoField(db_column='IDCmpdAction', primary_key=True)  # Field name made lowercase.
-    idcomplexebound = models.ForeignKey('Complexe', models.DO_NOTHING, db_column='IDComplexeBound')  # Field name made lowercase.
-    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    activationmode = models.CharField(db_column='ActivationMode', max_length=11)  # Field name made lowercase.
-    modulationtype = models.CharField(db_column='ModulationType', max_length=10)  # Field name made lowercase.
+    idcmpdaction = models.AutoField(='IDCmpdAction', primary_key=True)  
+    idcomplexebound = models.ForeignKey('Complexe', models.DO_NOTHING, ='IDComplexeBound')  
+    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, ='IDCompound')  
+    activationmode = models.CharField(='ActivationMode', max_length=11)  
+    modulationtype = models.CharField(='ModulationType', max_length=10)  
 
     class Meta:
 #        managed = False
@@ -177,11 +263,11 @@ class Cmpdaction(models.Model):
 
 
 class Cmpdactiveresult(models.Model):
-    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, db_column='IDTestActivity')  # Field name made lowercase.
-    activitytype = models.CharField(db_column='ActivityType', max_length=5)  # Field name made lowercase.
-    activity = models.DecimalField(db_column='Activity', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    pourcentinhib = models.IntegerField(db_column='PourcentInhib', blank=True, null=True)  # Field name made lowercase.
+    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, ='IDCompound')  
+    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, ='IDTestActivity')  
+    activitytype = models.CharField(='ActivityType', max_length=5)  
+    activity = models.DecimalField(='Activity', max_digits=4, decimal_places=2)  
+    pourcentinhib = models.IntegerField(='PourcentInhib', blank=True, null=True)  
 
     class Meta:
 #        managed = False
@@ -190,9 +276,9 @@ class Cmpdactiveresult(models.Model):
 
 
 class Cmpdcytotoxresult(models.Model):
-    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    idtestcytotox = models.ForeignKey('Testcytotoxdescription', models.DO_NOTHING, db_column='IDTestCytotox')  # Field name made lowercase.
-    toxicity = models.CharField(db_column='Toxicity', max_length=1)  # Field name made lowercase.
+    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, ='IDCompound')  
+    idtestcytotox = models.ForeignKey('Testcytotoxdescription', models.DO_NOTHING, ='IDTestCytotox')  
+    toxicity = models.CharField(='Toxicity', max_length=1)  
 
     class Meta:
 #        managed = False
@@ -201,9 +287,9 @@ class Cmpdcytotoxresult(models.Model):
 
 
 class Cmpdinactiveresult(models.Model):
-    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, db_column='IDTestActivity')  # Field name made lowercase.
-    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    pourcentinhib = models.IntegerField(db_column='PourcentInhib', blank=True, null=True)  # Field name made lowercase.
+    idtestactivity = models.ForeignKey('Testactivitydescription', models.DO_NOTHING, ='IDTestActivity')  
+    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, ='IDCompound')  
+    pourcentinhib = models.IntegerField(='PourcentInhib', blank=True, null=True)  
 
     class Meta:
 #        managed = False
@@ -212,16 +298,16 @@ class Cmpdinactiveresult(models.Model):
 
 
 class Cmpdpkresult(models.Model):
-    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    idtestpk = models.ForeignKey('Testpkdescription', models.DO_NOTHING, db_column='IDTestPK')  # Field name made lowercase.
-    tolerated = models.CharField(db_column='Tolerated', max_length=1)  # Field name made lowercase.
-    auc = models.IntegerField(db_column='AUC', blank=True, null=True)  # Field name made lowercase.
-    clearance = models.DecimalField(db_column='Clearance', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    cmax = models.DecimalField(db_column='Cmax', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    oralbioavailability = models.IntegerField(db_column='OralBioavailability', blank=True, null=True)  # Field name made lowercase.
-    tdemi = models.IntegerField(db_column='Tdemi', blank=True, null=True)  # Field name made lowercase.
-    tmax = models.IntegerField(db_column='Tmax', blank=True, null=True)  # Field name made lowercase.
-    voldistribution = models.DecimalField(db_column='VolDistribution', max_digits=5, decimal_places=2, blank=True, null=True)  # Field name made lowercase.
+    idcompound = models.ForeignKey('Compound', models.DO_NOTHING, ='IDCompound')  
+    idtestpk = models.ForeignKey('Testpkdescription', models.DO_NOTHING, ='IDTestPK')  
+    tolerated = models.CharField(='Tolerated', max_length=1)  
+    auc = models.IntegerField(='AUC', blank=True, null=True)  
+    clearance = models.DecimalField(='Clearance', max_digits=7, decimal_places=3, blank=True, null=True)  
+    cmax = models.DecimalField(='Cmax', max_digits=7, decimal_places=3, blank=True, null=True)  
+    oralbioavailability = models.IntegerField(='OralBioavailability', blank=True, null=True)  
+    tdemi = models.IntegerField(='Tdemi', blank=True, null=True)  
+    tmax = models.IntegerField(='Tmax', blank=True, null=True)  
+    voldistribution = models.DecimalField(='VolDistribution', max_digits=5, decimal_places=2, blank=True, null=True)  
 
     class Meta:
 #        managed = False
@@ -229,87 +315,6 @@ class Cmpdpkresult(models.Model):
         unique_together = (('idcompound', 'idtestpk'),)
 
 
-class Complexe(models.Model):
-    idcomplexe = models.AutoField(db_column='IDComplexe', primary_key=True)  # Field name made lowercase.
-    idprotein = models.ForeignKey('Protein', models.DO_NOTHING, db_column='IDProtein')  # Field name made lowercase.
-    nbcopy = models.IntegerField(db_column='NbCopy')  # Field name made lowercase.
-
-    class Meta:
-#        managed = False
-        db_table = 'complexe'
-
-
-class Compound(models.Model):
-    idcompound = models.AutoField(db_column='IDCompound', primary_key=True)  # Field name made lowercase.
-    canonicalsmile = models.CharField(db_column='CanonicalSmile', unique=True, max_length=250)  # Field name made lowercase.
-    physchemfilter = models.CharField(db_column='PhysChemFilter', max_length=2)  # Field name made lowercase.
-    htsfilter = models.CharField(db_column='HTSFilter', max_length=1)  # Field name made lowercase.
-    ismacrocycle = models.CharField(db_column='IsMacrocycle', max_length=1)  # Field name made lowercase.
-    aromaticratio = models.DecimalField(db_column='AromaticRatio', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    balabanindex = models.DecimalField(db_column='BalabanIndex', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    csp3ratio = models.DecimalField(db_column='Csp3Ratio', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    dhpetitjean = models.DecimalField(db_column='DhPetitjean', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    diamgraphnonhpetitjean = models.IntegerField(db_column='DiamGraphNonHPetitjean')  # Field name made lowercase.
-    gcmolarrefractivity = models.DecimalField(db_column='GCMolarRefractivity', max_digits=5, decimal_places=2)  # Field name made lowercase.
-    gpetitjean = models.DecimalField(db_column='GPetitjean', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    igpetitjean = models.DecimalField(db_column='IgPetitjean', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    logd = models.DecimalField(db_column='LogD', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    alogp = models.DecimalField(db_column='ALogP', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    meanatomvolvdw = models.DecimalField(db_column='MeanAtomVolVdW', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    molecularweight = models.DecimalField(db_column='MolecularWeight', max_digits=6, decimal_places=2)  # Field name made lowercase.
-    nbacceptorh = models.IntegerField(db_column='NbAcceptorH')  # Field name made lowercase.
-    nbaliphaticsamines = models.IntegerField(db_column='NbAliphaticsAmines')  # Field name made lowercase.
-    nbaromaticbonds = models.IntegerField(db_column='NbAromaticBonds')  # Field name made lowercase.
-    nbaromaticsether = models.IntegerField(db_column='NbAromaticsEther')  # Field name made lowercase.
-    nbaromaticssssr = models.IntegerField(db_column='NbAromaticsSSSR')  # Field name made lowercase.
-    nbatom = models.IntegerField(db_column='NbAtom')  # Field name made lowercase.
-    nbatomnonh = models.IntegerField(db_column='NbAtomNonH')  # Field name made lowercase.
-    nbbenzlikerings = models.IntegerField(db_column='NbBenzLikeRings')  # Field name made lowercase.
-    nbbonds = models.IntegerField(db_column='NbBonds')  # Field name made lowercase.
-    nbbondsnonh = models.IntegerField(db_column='NbBondsNonH')  # Field name made lowercase.
-    nbbr = models.IntegerField(db_column='NbBr')  # Field name made lowercase.
-    nbc = models.IntegerField(db_column='NbC')  # Field name made lowercase.
-    nbchiralcenters = models.IntegerField(db_column='NbChiralCenters')  # Field name made lowercase.
-    nbcircuits = models.IntegerField(db_column='NbCircuits')  # Field name made lowercase.
-    nbcl = models.IntegerField(db_column='NbCl')  # Field name made lowercase.
-    nbcsp2 = models.IntegerField(db_column='NbCsp2')  # Field name made lowercase.
-    nbcsp3 = models.IntegerField(db_column='NbCsp3')  # Field name made lowercase.
-    nbdonorh = models.IntegerField(db_column='NbDonorH')  # Field name made lowercase.
-    nbdoublebonds = models.IntegerField(db_column='NbDoubleBonds')  # Field name made lowercase.
-    nbf = models.IntegerField(db_column='NbF')  # Field name made lowercase.
-    nbi = models.IntegerField(db_column='NbI')  # Field name made lowercase.
-    nbmultbonds = models.IntegerField(db_column='NbMultBonds')  # Field name made lowercase.
-    nbn = models.IntegerField(db_column='NbN')  # Field name made lowercase.
-    nbo = models.IntegerField(db_column='NbO')  # Field name made lowercase.
-    nbrings = models.IntegerField(db_column='NbRings')  # Field name made lowercase.
-    nbrotatablebonds = models.IntegerField(db_column='NbRotatableBonds')  # Field name made lowercase.
-    radiusgraphnonhpetitjean = models.IntegerField(db_column='RadiusGraphNonHPetitjean')  # Field name made lowercase.
-    randicindex = models.DecimalField(db_column='RandicIndex', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    rdf070m = models.DecimalField(db_column='RDF070m', max_digits=5, decimal_places=2)  # Field name made lowercase.
-    rotatablebondfraction = models.DecimalField(db_column='RotatableBondFraction', max_digits=3, decimal_places=2)  # Field name made lowercase.
-    sumatompolar = models.DecimalField(db_column='SumAtomPolar', max_digits=5, decimal_places=2)  # Field name made lowercase.
-    sumatomvolvdw = models.DecimalField(db_column='SumAtomVolVdW', max_digits=6, decimal_places=2)  # Field name made lowercase.
-    surfacevdwpetitjean = models.DecimalField(db_column='SurfaceVDWPetitjean', max_digits=6, decimal_places=2)  # Field name made lowercase.
-    thicknesspetitjean = models.DecimalField(db_column='ThicknessPetitjean', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    tpsa = models.DecimalField(db_column='TPSA', max_digits=5, decimal_places=2)  # Field name made lowercase.
-    ui = models.DecimalField(db_column='Ui', max_digits=4, decimal_places=2)  # Field name made lowercase.
-    volvdwpetitjean = models.DecimalField(db_column='VolVDWPetitjean', max_digits=7, decimal_places=2)  # Field name made lowercase.
-    wienerindex = models.IntegerField(db_column='WienerIndex')  # Field name made lowercase.
-    cmpdnamesh = models.CharField(db_column='CmpdNameSh', max_length=20, blank=True, null=True)  # Field name made lowercase.
-    idpubchem = models.CharField(db_column='IdPubchem', max_length=10, blank=True, null=True)  # Field name made lowercase.
-    idchemspider = models.CharField(db_column='IdChemspider', max_length=10, blank=True, null=True)  # Field name made lowercase.
-    idchembl = models.CharField(db_column='IDChembl', max_length=30, blank=True, null=True)  # Field name made lowercase.
-    cmpdiupacname = models.CharField(db_column='CmpdIUPACName', max_length=255, blank=True, null=True)  # Field name made lowercase.
-    idmddrcompound = models.ForeignKey('Mddrcompound', models.DO_NOTHING, db_column='IDMDDRCompound', blank=True, null=True)  # Field name made lowercase.
-
-    class Meta:
-#        managed = False
-        db_table = 'compound'
-
-
-class Disease(models.Model):
-    idppi = models.ForeignKey('Ppi', models.DO_NOTHING, db_column='IDPPI')  # Field name made lowercase.
-    disease = models.CharField(db_column='Disease', max_length=30)  # Field name made lowercase.
 
     class Meta:
 #        managed = False
@@ -328,45 +333,21 @@ class DjangoMigrations(models.Model):
 
 
 class Domain(models.Model):
-    iddomain = models.AutoField(db_column='IDDomain', primary_key=True)  # Field name made lowercase.
-    pfamid = models.CharField(db_column='PfamID', max_length=20)  # Field name made lowercase.
-    pfamnumaccession = models.CharField(db_column='PfamNumAccession', unique=True, max_length=10)  # Field name made lowercase.
-    domaindescription = models.CharField(db_column='DomainDescription', max_length=100)  # Field name made lowercase.
-    domainfamily = models.CharField(db_column='DomainFamily', max_length=25)  # Field name made lowercase.
+    iddomain = models.AutoField(='IDDomain', primary_key=True)  
+    pfamid = models.CharField(='PfamID', max_length=20)  
+    pfamnumaccession = models.CharField(='PfamNumAccession', unique=True, max_length=10)  
+    domaindescription = models.CharField(='DomainDescription', max_length=100)  
+    domainfamily = models.CharField(='DomainFamily', max_length=25)  
 
     class Meta:
 #        managed = False
         db_table = 'domain'
 
-
-class Mddrcmpdactclass(models.Model):
-    idmddrcompound = models.ForeignKey('Mddrcompound', models.DO_NOTHING, db_column='IDMDDRCompound')  # Field name made lowercase.
-    activityclass = models.CharField(db_column='ActivityClass', max_length=60)  # Field name made lowercase.
-
-    class Meta:
-#        managed = False
-        db_table = 'mDDRCmpdActClass'
-        unique_together = (('idmddrcompound', 'activityclass'),)
-
-
-class Mddrcompound(models.Model):
-    idmddrcompound = models.IntegerField(db_column='IDMDDRCompound')  # Field name made lowercase.
-    mddrcmpdname = models.CharField(db_column='MDDRCmpdName', max_length=40)  # Field name made lowercase.
-    phasedvpmt = models.CharField(db_column='PhaseDvpmt', max_length=20)  # Field name made lowercase.
-    canonicalsmile = models.CharField(db_column='CanonicalSmile', max_length=500, blank=True, null=True)  # Field name made lowercase.
-    versionmddr = models.CharField(db_column='VersionMDDR', max_length=7)  # Field name made lowercase.
-
-    class Meta:
-#        managed = False
-        db_table = 'mDDRCompound'
-        unique_together = (('idmddrcompound', 'mddrcmpdname', 'phasedvpmt'),)
-
-
 class Mddrsimilarity(models.Model):
-    idcompound = models.ForeignKey(Compound, models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    idmddrcompound = models.ForeignKey(Mddrcompound, models.DO_NOTHING, db_column='IDMDDRCompound')  # Field name made lowercase.
-    versionmddr = models.CharField(db_column='VersionMDDR', max_length=7)  # Field name made lowercase.
-    tanimoto = models.DecimalField(db_column='Tanimoto', max_digits=6, decimal_places=5)  # Field name made lowercase.
+    idcompound = models.ForeignKey(Compound, models.DO_NOTHING, ='IDCompound')  
+    idmddrcompound = models.ForeignKey(Mddrcompound, models.DO_NOTHING, ='IDMDDRCompound')  
+    versionmddr = models.CharField(='VersionMDDR', max_length=7)  
+    tanimoto = models.DecimalField(='Tanimoto', max_digits=6, decimal_places=5)  
 
     class Meta:
 #        managed = False
@@ -375,12 +356,12 @@ class Mddrsimilarity(models.Model):
 
 
 class Ppi(models.Model):
-    idppi = models.AutoField(db_column='IDPPI', primary_key=True)  # Field name made lowercase.
-    idcomplexe1 = models.ForeignKey(Complexe, models.DO_NOTHING, db_column='IDComplexe1', related_name='cplx_id_1')  # Field name made lowercase.
-    idcomplexe2 = models.ForeignKey(Complexe, models.DO_NOTHING, db_column='IDComplexe2', related_name='cplx_id_2')  # Field name made lowercase.
-    idbindingsite1 = models.ForeignKey(Bindingsite, models.DO_NOTHING, db_column='IDBindingSite1', related_name='bs_id_1') # Field name made lowercase.
-    idbindingsite2 = models.ForeignKey(Bindingsite, models.DO_NOTHING, db_column='IDBindingSite2', related_name='bs_id_2')  # Field name made lowercase.
-    family = models.CharField(db_column='Family', max_length=25)  # Field name made lowercase.
+    idppi = models.AutoField(='IDPPI', primary_key=True)  
+    idcomplexe1 = models.ForeignKey(Complexe, models.DO_NOTHING, ='IDComplexe1', related_name='cplx_id_1')  
+    idcomplexe2 = models.ForeignKey(Complexe, models.DO_NOTHING, ='IDComplexe2', related_name='cplx_id_2')  
+    idbindingsite1 = models.ForeignKey(Bindingsite, models.DO_NOTHING, ='IDBindingSite1', related_name='bs_id_1') 
+    idbindingsite2 = models.ForeignKey(Bindingsite, models.DO_NOTHING, ='IDBindingSite2', related_name='bs_id_2')  
+    family = models.CharField(='Family', max_length=25)  
 
     class Meta:
 #        managed = False
@@ -389,13 +370,13 @@ class Ppi(models.Model):
 
 
 class Protein(models.Model):
-    idprotein = models.AutoField(db_column='IDProtein', primary_key=True)  # Field name made lowercase.
-    numuniprot = models.CharField(db_column='NumUniprot', unique=True, max_length=10)  # Field name made lowercase.
-    protnamelg = models.CharField(db_column='ProtNameLg', max_length=75)  # Field name made lowercase.
-    protnamesh = models.CharField(db_column='ProtNameSh', max_length=50)  # Field name made lowercase.
-    protalias = models.CharField(db_column='ProtAlias', unique=True, max_length=30)  # Field name made lowercase.
-    protnamesp = models.CharField(db_column='ProtNameSp', max_length=30)  # Field name made lowercase.
-    organism = models.CharField(db_column='Organism', max_length=80)  # Field name made lowercase.
+    idprotein = models.AutoField(='IDProtein', primary_key=True)  
+    numuniprot = models.CharField(='NumUniprot', unique=True, max_length=10)  
+    protnamelg = models.CharField(='ProtNameLg', max_length=75)  
+    protnamesh = models.CharField(='ProtNameSh', max_length=50)  
+    protalias = models.CharField(='ProtAlias', unique=True, max_length=30)  
+    protnamesp = models.CharField(='ProtNameSp', max_length=30)  
+    organism = models.CharField(='Organism', max_length=80)  
 
     class Meta:
 #        managed = False
@@ -403,9 +384,9 @@ class Protein(models.Model):
 
 
 class Refcmpdbiblio(models.Model):
-    idcompound = models.ForeignKey(Compound, models.DO_NOTHING, db_column='IDCompound')  # Field name made lowercase.
-    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, db_column='IDBiblio')  # Field name made lowercase.
-    cmpdnameinbiblio = models.CharField(db_column='CmpdNameInBiblio', max_length=20, blank=True, null=True)  # Field name made lowercase.
+    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 Meta:
 #        managed = False
@@ -414,8 +395,8 @@ class Refcmpdbiblio(models.Model):
 
 
 class Refproteinfonction(models.Model):
-    idprotein = models.ForeignKey(Protein, models.DO_NOTHING, db_column='IDProtein')  # Field name made lowercase.
-    protfonctionsp = models.CharField(db_column='ProtFonctionSP', max_length=200)  # Field name made lowercase.
+    idprotein = models.ForeignKey(Protein, models.DO_NOTHING, ='IDProtein')  
+    protfonctionsp = models.CharField(='ProtFonctionSP', max_length=200)  
 
     class Meta:
 #        managed = False
@@ -423,26 +404,6 @@ class Refproteinfonction(models.Model):
         unique_together = (('protfonctionsp', 'idprotein'),)
 
 
-class Testactivitydescription(models.Model):
-    idtestactivity = models.AutoField(db_column='IDTestActivity', primary_key=True)  # Field name made lowercase.
-    idcomplexebound = models.ForeignKey(Complexe, models.DO_NOTHING, db_column='IDComplexeBound')  # Field name made lowercase.
-    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, db_column='IDBiblio')  # Field name made lowercase.
-    idppi = models.ForeignKey(Ppi, models.DO_NOTHING, db_column='IDPPI', blank=True, null=True)  # Field name made lowercase.
-    testnameactivity = models.CharField(db_column='TestNameActivity', max_length=40)  # Field name made lowercase.
-    isprimary = models.CharField(db_column='IsPrimary', max_length=1)  # Field name made lowercase.
-    protboundconstruct = models.CharField(db_column='ProtBoundConstruct', max_length=11)  # Field name made lowercase.
-    testtype = models.CharField(db_column='TestType', max_length=5)  # Field name made lowercase.
-    testmodulationtype = models.CharField(db_column='TestModulationType', max_length=13)  # Field name made lowercase.
-    nbactivescmpdstot = models.IntegerField(db_column='NbActivesCmpdsTot')  # Field name made lowercase.
-    conccmpds = models.DecimalField(db_column='ConcCmpds', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    protocol = models.TextField(db_column='Protocol', blank=True, null=True)  # Field name made lowercase.
-    concproteinbound = models.DecimalField(db_column='ConcProteinBound', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    concprotein2 = models.DecimalField(db_column='ConcProtein2', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    controlepos = models.CharField(db_column='ControlePos', max_length=50, blank=True, null=True)  # Field name made lowercase.
-    controleneg = models.CharField(db_column='ControleNeg', max_length=50, blank=True, null=True)  # Field name made lowercase.
-    cellline = models.CharField(db_column='CellLine', max_length=50, blank=True, null=True)  # Field name made lowercase.
-    pepseq = models.CharField(db_column='PepSeq', max_length=100, blank=True, null=True)  # Field name made lowercase.
-    marker = models.CharField(db_column='Marker', max_length=35, blank=True, null=True)  # Field name made lowercase.
 
     class Meta:
 #        managed = False
@@ -450,11 +411,11 @@ class Testactivitydescription(models.Model):
 
 
 class Testcytotoxdescription(models.Model):
-    idtestcytotox = models.AutoField(db_column='IDTestCytotox', primary_key=True)  # Field name made lowercase.
-    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, db_column='IDBiblio')  # Field name made lowercase.
-    testnamecytotox = models.CharField(db_column='TestNameCytotox', max_length=40)  # Field name made lowercase.
-    cellline = models.CharField(db_column='CellLine', max_length=50)  # Field name made lowercase.
-    conccmpd = models.DecimalField(db_column='ConcCmpd', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
+    idtestcytotox = models.AutoField(='IDTestCytotox', primary_key=True)  
+    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, ='IDBiblio')  
+    testnamecytotox = models.CharField(='TestNameCytotox', max_length=40)  
+    cellline = models.CharField(='CellLine', max_length=50)  
+    conccmpd = models.DecimalField(='ConcCmpd', max_digits=7, decimal_places=3, blank=True, null=True)  
 
     class Meta:
 #        managed = False
@@ -462,14 +423,14 @@ class Testcytotoxdescription(models.Model):
 
 
 class Testpkdescription(models.Model):
-    idtestpk = models.AutoField(db_column='IDTestPK', primary_key=True)  # Field name made lowercase.
-    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, db_column='IDBiblio')  # Field name made lowercase.
-    testnamepk = models.CharField(db_column='TestNamePK', max_length=40)  # Field name made lowercase.
-    animal = models.CharField(db_column='Animal', max_length=100)  # Field name made lowercase.
-    administrationmode = models.CharField(db_column='AdministrationMode', max_length=2, blank=True, null=True)  # Field name made lowercase.
-    concentration = models.DecimalField(db_column='Concentration', max_digits=7, decimal_places=3, blank=True, null=True)  # Field name made lowercase.
-    dose = models.DecimalField(db_column='Dose', max_digits=7, decimal_places=2, blank=True, null=True)  # Field name made lowercase.
-    doseinterval = models.IntegerField(db_column='DoseInterval', blank=True, null=True)  # Field name made lowercase.
+    idtestpk = models.AutoField(='IDTestPK', primary_key=True)  
+    idbiblio = models.ForeignKey(Biblio, models.DO_NOTHING, ='IDBiblio')  
+    testnamepk = models.CharField(='TestNamePK', max_length=40)  
+    animal = models.CharField(='Animal', max_length=100)  
+    administrationmode = models.CharField(='AdministrationMode', max_length=2, blank=True, null=True)  
+    concentration = models.DecimalField(='Concentration', max_digits=7, decimal_places=3, blank=True, null=True)  
+    dose = models.DecimalField(='Dose', max_digits=7, decimal_places=2, blank=True, null=True)  
+    doseinterval = models.IntegerField(='DoseInterval', blank=True, null=True)  
 
     class Meta:
 #        managed = False
-- 
GitLab