diff --git a/ippisite/db.sqlite3.REMOVED.git-id b/ippisite/db.sqlite3.REMOVED.git-id index bdaa3c932d4fa59e49c154e7e115fc2ca8b41d7e..fd53f17841cc869b6ca829b14b0481d2a188a538 100644 --- a/ippisite/db.sqlite3.REMOVED.git-id +++ b/ippisite/db.sqlite3.REMOVED.git-id @@ -1 +1 @@ -b5ded9e1a05b9a0751e6d1addad0faf88524c8ca \ No newline at end of file +a45fec449759455268a158a1fc5ca4b76146fb4c \ No newline at end of file diff --git a/ippisite/ippidb/management/commands/import_v1_data.py b/ippisite/ippidb/management/commands/import_v1_data.py index e525b46f460e13f0a66b0eef7a9fd99d9b27e9a5..eaa1b6523bac54833dab33eedfebc66667aad849 100644 --- a/ippisite/ippidb/management/commands/import_v1_data.py +++ b/ippisite/ippidb/management/commands/import_v1_data.py @@ -8,7 +8,7 @@ from ippidb.models import Bibliography, Protein, Taxonomy, MolecularFunction, \ Domain, ProteinDomainBoundComplex, ProteinDomainPartnerComplex, Symmetry, Ppi, PpiComplex, Disease, \ Compound, MDDRCompoundImport, MDDRActivityClass, TestActivityDescription, CellLine, RefCompoundBiblio, \ CompoundAction, TestCytotoxDescription, TestPKDescription, CompoundActivityResult, \ - CompoundCytotoxicityResult, CompoundPKResult + CompoundCytotoxicityResult, CompoundPKResult, PpiFamily class MyConverter(mysql.connector.conversion.MySQLConverter): @@ -221,19 +221,20 @@ class Command(BaseCommand): self.style.SUCCESS('Successfully inserted {} {}'.format(row[0], row[1]))) if options['ppi']: sql_request_string = ''' -select distinct protein.NumUniprot, domain.PfamNumAccession, complexe.NbCopy, cmpdAction.IDComplexeBound, bindingSiteEvidence.CodePDB, 'part1', ppi.IDPPI, disease.Disease, complexe.IDComplexe from bindingSite inner join ppi on (bindingSite.IDBindingSite=ppi.IDBindingSite1) inner join complexe on (ppi.IDComplexe1=complexe.IDComplexe) left outer join cmpdAction on (complexe.IDComplexe=cmpdAction.IDComplexeBound) inner join protein on (bindingSite.IDProtein=protein.IDProtein) inner join domain on (bindingSite.IDDomain=domain.IDDomain) inner join disease on (disease.IDPPI=ppi.IDPPI) left outer join bindingSiteEvidence on (ppi.IDPPI=bindingSiteEvidence.IDPPI) +select distinct protein.NumUniprot, domain.PfamNumAccession, complexe.NbCopy, cmpdAction.IDComplexeBound, bindingSiteEvidence.CodePDB, 'part1', ppi.IDPPI, disease.Disease, complexe.IDComplexe, ppi.Family from bindingSite inner join ppi on (bindingSite.IDBindingSite=ppi.IDBindingSite1) inner join complexe on (ppi.IDComplexe1=complexe.IDComplexe) left outer join cmpdAction on (complexe.IDComplexe=cmpdAction.IDComplexeBound) inner join protein on (bindingSite.IDProtein=protein.IDProtein) inner join domain on (bindingSite.IDDomain=domain.IDDomain) inner join disease on (disease.IDPPI=ppi.IDPPI) left outer join bindingSiteEvidence on (ppi.IDPPI=bindingSiteEvidence.IDPPI) union -select distinct protein.NumUniprot, domain.PfamNumAccession , complexe.NbCopy, cmpdAction.IDComplexeBound, null, 'part2', ppi.IDPPI, disease.Disease, complexe.IDComplexe from bindingSite inner join ppi on (bindingSite.IDBindingSite=ppi.IDBindingSite2) inner join complexe on (ppi.IDComplexe2=complexe.IDComplexe) left outer join cmpdAction on (complexe.IDComplexe=cmpdAction.IDComplexeBound) inner join protein on (bindingSite.IDProtein=protein.IDProtein) inner join domain on (bindingSite.IDDomain=domain.IDDomain) inner join disease on (disease.IDPPI=ppi.IDPPI)''' +select distinct protein.NumUniprot, domain.PfamNumAccession , complexe.NbCopy, cmpdAction.IDComplexeBound, null, 'part2', ppi.IDPPI, disease.Disease, complexe.IDComplexe, ppi.Family from bindingSite inner join ppi on (bindingSite.IDBindingSite=ppi.IDBindingSite2) inner join complexe on (ppi.IDComplexe2=complexe.IDComplexe) left outer join cmpdAction on (complexe.IDComplexe=cmpdAction.IDComplexeBound) inner join protein on (bindingSite.IDProtein=protein.IDProtein) inner join domain on (bindingSite.IDDomain=domain.IDDomain) inner join disease on (disease.IDPPI=ppi.IDPPI)''' cursor.execute(sql_request_string) rows = cursor.fetchall() ProteinDomainBoundComplex.objects.all().delete() ProteinDomainPartnerComplex.objects.all().delete() Disease.objects.all().delete() Ppi.objects.all().delete() + PpiFamily.objects.all().delete() PpiComplex.objects.all().delete() CompoundAction.objects.all().delete() self.stdout.write( - self.style.SUCCESS('Successfully flushed protein domain complex, PPI, compound actions, and disease tables')) + self.style.SUCCESS('Successfully flushed protein domain complex, PPI, PPI families, compound actions, and disease tables')) ppi_ids_mapping = {} protein_domain_bound_complexes_mapping = {} for row in rows: @@ -243,6 +244,8 @@ select distinct protein.NumUniprot, domain.PfamNumAccession , complexe.NbCopy, ppi = Ppi() disease, created = Disease.objects.get_or_create( name=row[7]) + ppi_family, created = PpiFamily.objects.get_or_create( + name=row[9]) ppi.pdb_id = row[4] ppi.pockets_nb = 1 ppi.symmetry = Symmetry.objects.get(code='AS') diff --git a/ippisite/ippidb/migrations/0033_auto_20180502_1500.py b/ippisite/ippidb/migrations/0033_auto_20180502_1500.py new file mode 100644 index 0000000000000000000000000000000000000000..428dab5fd7e9119d1b164accdf34f34f1699330d --- /dev/null +++ b/ippisite/ippidb/migrations/0033_auto_20180502_1500.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-05-02 15:00 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('ippidb', '0032_lellebiplotdata'), + ] + + operations = [ + migrations.CreateModel( + name='PpiFamily', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30, unique=True, verbose_name='Name')), + ], + ), + migrations.AddField( + model_name='ppi', + name='family', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.PpiFamily'), + ), + ] diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 6b3b1ac31b91837ae77edfd56acd230349b07281..2ec0acd07776509b9d7feea7f504fd3d91973671 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -201,6 +201,11 @@ class Disease(models.Model): def __str__(self): return self.name +class PpiFamily(models.Model): + name = models.CharField('Name', max_length=30, unique=True) + + def __str__(self): + return self.name class Ppi(models.Model): pdb_id = models.CharField('PDB ID', max_length=4, null=True) @@ -208,6 +213,7 @@ class Ppi(models.Model): 'Total number of pockets in the complex', default=1) symmetry = models.ForeignKey(Symmetry, models.CASCADE) diseases = models.ManyToManyField(Disease) + family = models.ForeignKey(PpiFamily, models.CASCADE, null=True) def __str__(self): return '{} PPI, PDB:{}'.format(self.symmetry.description, self.pdb_id or 'unknown')