From ed4a6d99b4d5fbd64142edb2af2897e403bac55a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Wed, 25 Jul 2018 17:23:47 +0200 Subject: [PATCH] hack the squashed migration to have it actually work Former-commit-id: 66beebe3f8c1fcb5694f2b2c63cc82f3109a7975 --- .../0001_squashed_0035_auto_20180725_1347.py | 835 +++++------------- 1 file changed, 230 insertions(+), 605 deletions(-) diff --git a/ippisite/ippidb/migrations/0001_squashed_0035_auto_20180725_1347.py b/ippisite/ippidb/migrations/0001_squashed_0035_auto_20180725_1347.py index d799bccb..c088946f 100644 --- a/ippisite/ippidb/migrations/0001_squashed_0035_auto_20180725_1347.py +++ b/ippisite/ippidb/migrations/0001_squashed_0035_auto_20180725_1347.py @@ -20,116 +20,41 @@ class Migration(migrations.Migration): name='Bibliography', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('source', models.CharField(choices=[('PM', 'PubMed article'), ('PT', 'Patent')], max_length=2, verbose_name='Bibliographic type')), + ('source', models.CharField(choices=[('PM', 'PubMed ID'), ('PT', 'Patent'), ('DO', 'DOI ID')], default='PM', max_length=2, verbose_name='Bibliographic type')), ('id_source', models.CharField(max_length=25, verbose_name='Bibliographic ID')), ('title', models.CharField(max_length=300, verbose_name='Title')), ('journal_name', models.CharField(max_length=50, null=True, verbose_name='Journal name')), ('authors_list', models.CharField(max_length=500, verbose_name='Authors list')), ('biblio_year', models.PositiveSmallIntegerField(verbose_name='Year')), ('cytotox', models.BooleanField(default=False, verbose_name='Cytotoxicity data')), - ('in_silico', models.BooleanField(default=False, verbose_name='in silico study performed')), - ('in_vitro', models.BooleanField(default=False, verbose_name='in vitro study performed')), - ('in_vivo', models.BooleanField(default=False, verbose_name='in vivo study performed')), - ('in_cellulo', models.BooleanField(default=False, verbose_name='in cellulo study performed')), - ('pharmacokinetic', models.BooleanField(default=False, verbose_name='pharmacokinetic study performed')), - ('xray', models.BooleanField(default=False, verbose_name='contains xray data')), + ('in_silico', models.BooleanField(default=False, verbose_name='in silico study')), + ('in_vitro', models.BooleanField(default=False, verbose_name='in vitro study')), + ('in_vivo', models.BooleanField(default=False, verbose_name='in vivo study')), + ('in_cellulo', models.BooleanField(default=False, verbose_name='in cellulo study')), + ('pharmacokinetic', models.BooleanField(default=False, verbose_name='pharmacokinetic study')), + ('xray', models.BooleanField(default=False, verbose_name='X-Ray data')), ], options={ 'verbose_name_plural': 'bibliographies', }, ), migrations.CreateModel( - name='Complex', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('copy_nb', models.IntegerField(verbose_name='Number of copies')), - ], - ), - migrations.CreateModel( - name='Domain', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('pfam_acc', models.CharField(max_length=10, unique=True, verbose_name='Pfam Accession')), - ('pfam_id', models.CharField(max_length=20, verbose_name='Pfam Family Identifier')), - ('pfam_description', models.CharField(max_length=100, verbose_name='Pfam Description')), - ('domain_family', models.CharField(max_length=25, verbose_name='Domain family')), - ], - ), - migrations.CreateModel( - name='MolecularFunction', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('go_id', models.CharField(max_length=10, unique=True, verbose_name='Gene Ontology ID')), - ('description', models.CharField(max_length=500, verbose_name='description')), - ], - ), - migrations.CreateModel( - name='Ppi', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('cc_nb', models.IntegerField(default=1, verbose_name='Number of copies of the complex in the PPI')), - ('pdb_id', models.CharField(default=1, max_length=4, verbose_name='PDB ID')), - ('ppi_id', models.IntegerField(default=1, verbose_name='PPI identifier')), - ], - ), - migrations.CreateModel( - name='Protein', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('uniprot_id', models.CharField(max_length=10, unique=True, verbose_name='Uniprot ID')), - ('recommended_name_long', models.CharField(max_length=75, verbose_name='Uniprot Recommended Name (long)')), - ('short_name', models.CharField(max_length=50, verbose_name='Short name')), - ('gene_name', models.CharField(max_length=30, unique=True, verbose_name='Gene name')), - ('entry_name', models.CharField(max_length=30, verbose_name='Entry name')), - ('molecular_functions', models.ManyToManyField(to='ippidb.MolecularFunction')), - ], - ), - migrations.CreateModel( - name='Taxonomy', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('taxonomy_id', models.DecimalField(decimal_places=0, max_digits=9, unique=True, verbose_name='NCBI TaxID')), - ('name', models.CharField(max_length=200, verbose_name='Organism name')), - ], - options={ - 'verbose_name_plural': 'taxonomies', - }, - ), - migrations.AddField( - model_name='protein', - name='organism', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Taxonomy'), - ), - migrations.AddField( - model_name='complex', - name='protein_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Protein'), - ), - migrations.CreateModel( - name='Disease', + name='CellLine', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(default=None, max_length=30, unique=True, verbose_name='Disease')), + ('name', models.CharField(max_length=50, unique=True, verbose_name='Name')), ], ), - migrations.AlterModelOptions( - name='complex', - options={'verbose_name_plural': 'complexes'}, - ), migrations.CreateModel( name='Compound', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('canonical_smile', models.CharField(max_length=250, unique=True, verbose_name='Canonical Smile')), + ('canonical_smile', models.CharField(max_length=500, unique=True, verbose_name='Canonical Smile')), ('is_macrocycle', models.BooleanField(verbose_name='Contains one or more macrocycles')), ('aromatic_ratio', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='Aromatic ratio')), ('balaban_index', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='Balaban index')), ('fsp3', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='Fsp3')), - ('dh_Petitjean', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Dh Petitjean')), - ('diam_graph_non_h_petitjean', models.IntegerField(verbose_name='Diameter for the molecular graph for heavy atoms (Petitjean)')), ('gc_molar_refractivity', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='GC Molar Refractivity')), - ('g_petitjean', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='G Petitjean')), - ('ig_petitjean', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='Ig Petitjean')), ('log_d', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='LogD (Partition coefficient octanol-1/water, with pKa information)')), ('a_log_p', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='ALogP (Partition coefficient octanol-1/water)')), ('mean_atom_vol_vdw', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Mean atom volume computed with VdW radii')), @@ -160,230 +85,244 @@ class Migration(migrations.Migration): ('nb_o', models.IntegerField(verbose_name='Number of oxygen atoms')), ('nb_rings', models.IntegerField(verbose_name='Number of rings')), ('nb_rotatable_bonds', models.IntegerField(verbose_name='Number of rotatable bonds')), - ('radius_graph_non_h_petitjean', models.IntegerField(verbose_name='Radius for the molecular graph for heavy atoms (Petitjean)')), ('randic_index', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Randic index')), ('rdf070m', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='RDF070m, radial distribution function weighted by the atomic masses at 7Å')), ('rotatable_bond_fraction', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='Fraction of rotatable bonds')), ('sum_atom_polar', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='Sum of atomic polarizabilities')), ('sum_atom_vol_vdw', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='Sum of atom volumes computed with VdW radii')), - ('surface_vdw_petitjean', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='Van der Waals surface area (Petitjean)')), - ('thickness_petitjean', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Thickness (Petitjean)')), ('tpsa', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='Topological Polar Surface Area (TPSA)')), ('ui', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Unsaturation index')), - ('vol_vdw_petitjean', models.DecimalField(decimal_places=2, max_digits=7, verbose_name='Van der Waals volume (Petitjean)')), ('wiener_index', models.IntegerField(verbose_name='Wiener index')), ('common_name', models.CharField(blank=True, max_length=20, null=True, unique=True, verbose_name='Common name')), - ('pubchem_id', models.CharField(blank=True, max_length=10, null=True, unique=True, verbose_name='Pubchem ID')), + ('pubchem_id', models.CharField(blank=True, max_length=10, null=True, verbose_name='Pubchem ID')), ('chemspider_id', models.CharField(blank=True, max_length=10, null=True, unique=True, verbose_name='Chemspider ID')), - ('chembl_id', models.CharField(blank=True, max_length=30, null=True, unique=True, verbose_name='Chembl ID')), - ('iupac_name', models.CharField(blank=True, max_length=255, null=True, unique=True, verbose_name='IUPAC name')), + ('chembl_id', models.CharField(blank=True, max_length=30, null=True, verbose_name='Chembl ID')), + ('iupac_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='IUPAC name')), ], ), migrations.CreateModel( - name='MDDRCompoundActivityClass', + name='CompoundAction', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('activity_class', models.CharField(max_length=100, verbose_name='Activity Class')), + ('activation_mode', models.CharField(choices=[('O', 'Orthosteric'), ('A', 'Allosteric'), ('U', 'Unspecified')], max_length=1, verbose_name='Activation mode')), + ('pdb_id', models.CharField(blank=True, max_length=4, null=True, verbose_name='PDB ID')), + ('nb_copy_compounds', models.IntegerField(verbose_name='Number of copies for the compound')), + ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), ], ), migrations.CreateModel( - name='MDDRCompoundImport', + name='CompoundActivityResult', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('mddr_compound_id', models.IntegerField(verbose_name='MDDR compound ID')), - ('mddr_name', models.CharField(max_length=40, verbose_name='MDDR name')), - ('dvpmt_phase', models.CharField(max_length=20, verbose_name='Development phase')), - ('canonical_smile', models.CharField(blank=True, max_length=500, null=True, unique=True, verbose_name='Canonical Smile')), - ('db_import_date', models.DecimalField(decimal_places=0, max_digits=6, verbose_name='MDDR release year/month')), + ('activity_type', models.CharField(choices=[('pIC50', 'pIC50 (half maximal inhibitory concentration, -log10)'), ('pEC50', 'pEC50 (half maximal effective concentration, -log10)'), ('pKd', 'pKd (dissociation constant, -log10)'), ('pKi', 'pKi (inhibition constant, -log10)')], max_length=5, verbose_name='Activity type')), + ('activity', models.DecimalField(decimal_places=10, max_digits=12, verbose_name='Activity')), + ('inhibition_percentage', models.DecimalField(decimal_places=0, max_digits=3, null=True, verbose_name='Inhibition percentage')), + ('modulation_type', models.CharField(choices=[('B', 'Binding'), ('I', 'Inhibition'), ('S', 'Stabilization')], max_length=1, verbose_name='Modulation type')), + ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), ], ), migrations.CreateModel( - name='MDDRSimilarity', + name='CompoundCytotoxicityResult', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('canonical_smile_ippidb', models.CharField(blank=True, max_length=500, null=True, unique=True, verbose_name='Canonical Smile for IPPIDB compound')), - ('canonical_smile_mddr', models.CharField(blank=True, max_length=500, null=True, unique=True, verbose_name='Canonical Smile for MDDR Compound')), - ('tanimoto', models.DecimalField(decimal_places=5, max_digits=6, verbose_name='Tanimoto')), + ('toxicity', models.BooleanField(default=False, verbose_name='Toxicity')), + ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), ], ), migrations.CreateModel( - name='ProteinDomainComplex', + name='CompoundPKResult', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('ppc_copy_nb', models.IntegerField(verbose_name='Number of copies of the protein in the complex')), + ('tolerated', models.NullBooleanField(verbose_name='Tolerated')), + ('auc', models.IntegerField(blank=True, null=True, verbose_name='Area under curve (ng.mL-1.hr)')), + ('clearance', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Clearance (mL/hr)')), + ('c_max', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Maximal concentration (ng/mL)')), + ('oral_bioavailability', models.IntegerField(blank=True, null=True, verbose_name='Oral Bioavailability (%F)')), + ('t_demi', models.IntegerField(blank=True, null=True, verbose_name='t½')), + ('t_max', models.IntegerField(blank=True, null=True, verbose_name='tmax')), + ('voldistribution', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Volume distribution (Vd)')), + ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), ], - options={ - 'verbose_name_plural': 'complexes', - }, ), migrations.CreateModel( - name='Symmetry', + name='Disease', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('code', models.CharField(max_length=2, verbose_name='Symmetry code')), - ('description', models.CharField(max_length=300, verbose_name='Description')), + ('name', models.CharField(max_length=30, unique=True, verbose_name='Disease')), + ], + ), + migrations.CreateModel( + name='Domain', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pfam_acc', models.CharField(max_length=10, unique=True, verbose_name='Pfam Accession')), + ('pfam_id', models.CharField(max_length=20, verbose_name='Pfam Family Identifier')), + ('pfam_description', models.CharField(max_length=100, verbose_name='Pfam Description')), + ('domain_family', models.CharField(max_length=25, verbose_name='Domain family')), ], options={ - 'verbose_name_plural': 'symmetries', + 'abstract': False, }, ), - migrations.RemoveField( - model_name='complex', - name='protein_id', + migrations.CreateModel( + name='LeLleBiplotData', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('le_lle_biplot_data', models.CharField(blank=True, max_length=150000, null=True, verbose_name='LE-LLE biplot JSON data')), + ], ), migrations.CreateModel( - name='ProteinDomainBoundComplex', + name='MDDRActivityClass', fields=[ - ('proteindomaincomplex_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ippidb.ProteinDomainComplex')), - ('ppp_copy_nb_per_p', models.IntegerField(verbose_name='Number of copies of the protein in the pocket')), - ('pockets_nb', models.IntegerField(verbose_name='Total number of pockets in the complex')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True, verbose_name='Activity Class')), ], options={ - 'verbose_name_plural': 'bound complexes', + 'verbose_name_plural': 'MDDR activity classes', }, - bases=('ippidb.proteindomaincomplex',), ), migrations.CreateModel( - name='ProteinDomainPartnerComplex', + name='MDDRCompoundImport', fields=[ - ('proteindomaincomplex_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ippidb.ProteinDomainComplex')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mddr_name', models.CharField(max_length=40, verbose_name='MDDR name')), + ('dvpmt_phase', models.CharField(choices=[('Biological Testing', ''), ('Preclinical', ''), ('Phase III', ''), ('Phase II', ''), ('Phase I/II', ''), ('Phase I', ''), ('Launched', ''), ('Pre-Registered', ''), ('Not Applicable', ''), ('Discontinued', ''), ('Clinical', ''), ('Withdrawn', ''), ('Registered', ''), ('Not Determined', ''), ('Phase II/III', ''), ('IND Filed', '')], max_length=20, verbose_name='Development phase')), + ('canonical_smile', models.CharField(blank=True, max_length=500, null=True, verbose_name='Canonical Smile')), + ('db_import_date', models.DateTimeField(verbose_name='MDDR release year/month')), + ('activity_classes', models.ManyToManyField(to='ippidb.MDDRActivityClass')), ], options={ - 'verbose_name_plural': 'partner complexes', + 'verbose_name_plural': 'MDDR compound imports', }, - bases=('ippidb.proteindomaincomplex',), - ), - migrations.DeleteModel( - name='Complex', - ), - migrations.AddField( - model_name='proteindomaincomplex', - name='domain', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Domain'), ), - migrations.AddField( - model_name='proteindomaincomplex', - name='protein', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Protein'), - ), - migrations.AlterUniqueTogether( - name='mddrsimilarity', - unique_together=set([('canonical_smile_ippidb', 'canonical_smile_mddr')]), - ), - migrations.AlterUniqueTogether( - name='mddrcompoundimport', - unique_together=set([('mddr_compound_id', 'mddr_name', 'dvpmt_phase')]), - ), - migrations.AddField( - model_name='mddrcompoundactivityclass', - name='mddr_compound_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.MDDRCompoundImport'), - ), - migrations.AddField( - model_name='compound', - name='mddr_compound_id', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.MDDRCompoundImport'), - ), - migrations.AddField( - model_name='ppi', - name='complex_id', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainComplex'), - preserve_default=False, - ), - migrations.AddField( - model_name='ppi', - name='symmetry_id', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ippidb.Symmetry'), - preserve_default=False, + migrations.CreateModel( + name='MDDRSimilarity', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('canonical_smile_ippidb', models.CharField(blank=True, max_length=500, null=True, unique=True, verbose_name='Canonical Smile for IPPIDB compound')), + ('canonical_smile_mddr', models.CharField(blank=True, max_length=500, null=True, unique=True, verbose_name='Canonical Smile for MDDR Compound')), + ('tanimoto', models.DecimalField(decimal_places=5, max_digits=6, verbose_name='Tanimoto')), + ], + options={ + 'verbose_name_plural': 'MDDR similarities', + }, ), - migrations.AlterUniqueTogether( - name='mddrcompoundactivityclass', - unique_together=set([('mddr_compound_id', 'activity_class')]), + migrations.CreateModel( + name='MolecularFunction', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('go_id', models.CharField(max_length=10, unique=True, verbose_name='Gene Ontology ID')), + ('description', models.CharField(max_length=500, verbose_name='description')), + ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='CellLine', + name='PcaBiplotData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=50, unique=True, verbose_name='Name')), + ('pca_biplot_data', models.CharField(blank=True, max_length=150000, null=True, verbose_name='PCA biplot JSON data')), ], ), migrations.CreateModel( - name='TestActivityDescription', + name='Ppi', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('test_name', models.CharField(max_length=100, verbose_name='Test name')), - ('test_type', models.CharField(choices=[('BIOCH', 'Biochemical assay'), ('CELL', 'Cellular assay')], max_length=5, verbose_name='Test type')), - ('test_modulation_type', models.CharField(choices=[('B', 'Binding'), ('I', 'Inhibition'), ('S', 'Stabilization')], max_length=1, verbose_name='Test modulation type')), - ('nb_active_compounds', models.IntegerField(verbose_name='Total number of active compounds')), - ('biblio_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Bibliography')), - ('cell_line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.CellLine')), - ('complex_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainBoundComplex')), - ('ppi_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi')), + ('pdb_id', models.CharField(max_length=4, null=True, verbose_name='PDB ID')), + ('pockets_nb', models.IntegerField(default=1, verbose_name='Total number of pockets in the complex')), + ('diseases', models.ManyToManyField(to='ippidb.Disease')), ], ), - migrations.AlterModelOptions( - name='mddrcompoundactivityclass', - options={'verbose_name_plural': 'MDDR compound activity classes'}, + migrations.CreateModel( + name='PpiComplex', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cc_nb', models.IntegerField(default=1, verbose_name='Number of copies of the complex in the PPI')), + ], + options={ + 'verbose_name_plural': 'Ppi complexes', + }, ), - migrations.AlterModelOptions( - name='mddrcompoundimport', - options={'verbose_name_plural': 'MDDR compound imports'}, + 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')), + ], + options={ + 'verbose_name_plural': 'PPI Families', + }, ), - migrations.AlterModelOptions( - name='mddrsimilarity', - options={'verbose_name_plural': 'MDDR similarities'}, + migrations.CreateModel( + name='Protein', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('uniprot_id', models.CharField(max_length=10, unique=True, verbose_name='Uniprot ID')), + ('recommended_name_long', models.CharField(max_length=75, verbose_name='Uniprot Recommended Name (long)')), + ('short_name', models.CharField(max_length=50, verbose_name='Short name')), + ('gene_name', models.CharField(max_length=30, unique=True, verbose_name='Gene name')), + ('entry_name', models.CharField(max_length=30, verbose_name='Entry name')), + ('molecular_functions', models.ManyToManyField(to='ippidb.MolecularFunction')), + ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='ActivityType', + name='ProteinDomainComplex', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=50, unique=True, verbose_name='Name')), + ('ppc_copy_nb', models.IntegerField(verbose_name='Number of copies of the protein in the complex')), ], + options={ + 'verbose_name_plural': 'complexes', + }, ), migrations.CreateModel( - name='CmpdAction', + name='RefCompoundBiblio', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('activation_mode', models.CharField(choices=[('O', 'Orthosteric'), ('A', 'Allosteric')], max_length=1, verbose_name='Activation mode')), - ('complex_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainBoundComplex')), - ('compound_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), - ('nb_copy_compounds', models.IntegerField(default=1, verbose_name='Number of copies for the compound')), - ('pdb_id', models.CharField(default='NA', max_length=4, verbose_name='PDB ID')), - ('ppi_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi')), + ('compound_name', models.CharField(max_length=50, verbose_name='Compound name in the publication')), + ('bibliography', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Bibliography')), + ('compound', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), ], ), migrations.CreateModel( - name='CompoundActivityResult', + name='Symmetry', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('activity', models.DecimalField(decimal_places=10, max_digits=12, verbose_name='Activity')), - ('activity_type_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ActivityType')), - ('compound_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), - ('test_activity_description_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestActivityDescription')), - ('modulation_type', models.CharField(choices=[('B', 'Binding'), ('I', 'Inhibition'), ('S', 'Stabilization')], default='B', max_length=1, verbose_name='Modulation type')), + ('code', models.CharField(max_length=2, verbose_name='Symmetry code')), + ('description', models.CharField(max_length=300, verbose_name='Description')), ], + options={ + 'verbose_name_plural': 'symmetries', + }, ), migrations.CreateModel( - name='CompoundCytotoxicityResult', + name='Taxonomy', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('toxicity', models.BooleanField(default=False, verbose_name='Toxicity')), - ('compound_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), + ('taxonomy_id', models.DecimalField(decimal_places=0, max_digits=9, unique=True, verbose_name='NCBI TaxID')), + ('name', models.CharField(max_length=200, verbose_name='Organism name')), ], + options={ + 'verbose_name_plural': 'taxonomies', + }, ), migrations.CreateModel( - name='CompoundPKResult', + name='TestActivityDescription', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('tolerated', models.NullBooleanField(verbose_name='Tolerated')), - ('auc', models.IntegerField(blank=True, null=True, verbose_name='Area under curve (ng.mL-1.hr)')), - ('clearance', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Clearance (mL/hr)')), - ('cmax', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Maximal concentration (ng/mL)')), - ('oral_bioavailability', models.IntegerField(blank=True, null=True, verbose_name='Oral Bioavailability (%F)')), - ('t_demi', models.IntegerField(blank=True, null=True, verbose_name='t½')), - ('t_max', models.IntegerField(blank=True, null=True, verbose_name='tmax')), - ('voldistribution', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Volume distribution (Vd)')), - ('compound_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Compound')), + ('test_name', models.CharField(max_length=100, verbose_name='Test name')), + ('is_primary', models.BooleanField(verbose_name='Is primary')), + ('protein_bound_construct', models.CharField(blank=True, choices=[('F', 'Full length'), ('U', 'Unspecified')], max_length=5, null=True, verbose_name='Protein bound construct')), + ('test_type', models.CharField(choices=[('BIOCH', 'Biochemical assay'), ('CELL', 'Cellular assay')], max_length=5, verbose_name='Test type')), + ('test_modulation_type', models.CharField(choices=[('B', 'Binding'), ('I', 'Inhibition'), ('S', 'Stabilization')], max_length=1, verbose_name='Test modulation type')), + ('nb_active_compounds', models.IntegerField(verbose_name='Total number of active compounds')), + ('biblio', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Bibliography')), + ('cell_line', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.CellLine')), + ('ppi', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi')), ], ), migrations.CreateModel( @@ -401,440 +340,126 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('test_name', models.CharField(max_length=100, verbose_name='Pharmacokinetic test name')), + ('administration_mode', models.CharField(blank=True, choices=[('IV', ''), ('PO', ''), ('IP', ''), ('SL', 'SL')], max_length=2, null=True, verbose_name='Administration mode')), + ('concentration', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Concentration in mg/l')), ('dose', models.DecimalField(blank=True, decimal_places=4, max_digits=9, null=True, verbose_name='Dose in mg/kg')), ('dose_interval', models.IntegerField(blank=True, null=True, verbose_name='Dose interval, in hours')), - ('administration_mode', models.CharField(blank=True, choices=[('IV', ''), ('PO', ''), ('IP', ''), ('SL', 'SL')], max_length=2, null=True, verbose_name='Administration mode')), ('biblio', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Bibliography')), ('organism', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Taxonomy')), - ('concentration', models.DecimalField(blank=True, decimal_places=3, max_digits=7, null=True, verbose_name='Concentration in mg/l')), ], ), - migrations.AddField( - model_name='compoundpkresult', - name='test_pk_description_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestPKDescription'), - ), - migrations.AddField( - model_name='compoundcytotoxicityresult', - name='test_cytotoxicity_description_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestCytotoxDescription'), - ), - migrations.AlterUniqueTogether( - name='compoundpkresult', - unique_together=set([('compound_id', 'test_pk_description_id')]), - ), - migrations.AlterUniqueTogether( - name='compoundcytotoxicityresult', - unique_together=set([('compound_id', 'test_cytotoxicity_description_id')]), - ), - migrations.AlterUniqueTogether( - name='compoundactivityresult', - unique_together=set([('compound_id', 'test_activity_description_id', 'activity_type_id')]), - ), migrations.CreateModel( - name='RefCompoundBiblio', + name='ProteinDomainBoundComplex', 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')), + ('proteindomaincomplex_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ippidb.ProteinDomainComplex')), + ('ppp_copy_nb_per_p', models.IntegerField(verbose_name='Number of copies of the protein in the pocket')), ], - ), - migrations.AlterUniqueTogether( - name='cmpdaction', - unique_together=set([('complex_id', 'compound_id', 'pdb_id')]), - ), - migrations.AlterUniqueTogether( - name='refcompoundbiblio', - unique_together=set([('compound_id', 'bibliography_id')]), - ), - migrations.RenameField( - model_name='cmpdaction', - old_name='complex_id', - new_name='complex', - ), - migrations.RenameField( - model_name='cmpdaction', - old_name='compound_id', - new_name='compound', - ), - migrations.RenameField( - model_name='cmpdaction', - old_name='ppi_id', - new_name='ppi', - ), - migrations.RenameField( - model_name='compound', - old_name='mddr_compound_id', - new_name='mddr_compound', - ), - migrations.RenameField( - model_name='compoundactivityresult', - old_name='activity_type_id', - new_name='activity_type', - ), - migrations.RenameField( - model_name='compoundactivityresult', - old_name='compound_id', - new_name='compound', - ), - migrations.RenameField( - model_name='compoundactivityresult', - old_name='test_activity_description_id', - new_name='test_activity_description', - ), - migrations.RenameField( - model_name='compoundcytotoxicityresult', - old_name='compound_id', - new_name='compound', - ), - migrations.RenameField( - model_name='compoundcytotoxicityresult', - old_name='test_cytotoxicity_description_id', - new_name='test_cytotoxicity_description', - ), - migrations.RenameField( - model_name='compoundpkresult', - old_name='compound_id', - new_name='compound', - ), - migrations.RenameField( - model_name='compoundpkresult', - old_name='test_pk_description_id', - new_name='test_pk_description', - ), - migrations.RenameField( - model_name='mddrcompoundactivityclass', - old_name='mddr_compound_id', - new_name='mddr_compound', - ), - migrations.RenameField( - model_name='ppi', - old_name='complex_id', - new_name='complex', - ), - migrations.RenameField( - model_name='ppi', - old_name='symmetry_id', - new_name='symmetry', - ), - migrations.RenameField( - model_name='refcompoundbiblio', - old_name='bibliography_id', - new_name='bibliography', - ), - migrations.RenameField( - model_name='refcompoundbiblio', - old_name='compound_id', - new_name='compound', - ), - migrations.RenameField( - model_name='testactivitydescription', - old_name='biblio_id', - new_name='biblio', - ), - migrations.RenameField( - model_name='testactivitydescription', - old_name='complex_id', - new_name='complex', - ), - migrations.RenameField( - model_name='testactivitydescription', - old_name='ppi_id', - new_name='ppi', - ), - migrations.RemoveField( - model_name='compound', - name='dh_Petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='diam_graph_non_h_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='g_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='ig_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='radius_graph_non_h_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='surface_vdw_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='thickness_petitjean', - ), - migrations.RemoveField( - model_name='compound', - name='vol_vdw_petitjean', - ), - migrations.AlterField( - model_name='compound', - name='canonical_smile', - field=models.CharField(max_length=500, unique=True, verbose_name='Canonical Smile'), - ), - migrations.RemoveField( - model_name='cmpdaction', - name='complex', - ), - migrations.AlterUniqueTogether( - name='cmpdaction', - unique_together=set([('ppi', 'compound', 'activation_mode', 'pdb_id')]), - ), - migrations.AlterUniqueTogether( - name='compoundactivityresult', - unique_together=set([('compound', 'test_activity_description', 'activity_type')]), - ), - migrations.AlterUniqueTogether( - name='compoundcytotoxicityresult', - unique_together=set([('compound', 'test_cytotoxicity_description')]), - ), - migrations.RenameField( - model_name='compoundpkresult', - old_name='cmax', - new_name='c_max', - ), - migrations.AlterUniqueTogether( - name='compoundpkresult', - unique_together=set([('compound', 'test_pk_description')]), - ), - migrations.AlterUniqueTogether( - name='mddrcompoundactivityclass', - unique_together=set([]), - ), - migrations.AlterUniqueTogether( - name='refcompoundbiblio', - unique_together=set([('compound', 'bibliography')]), + options={ + 'verbose_name_plural': 'bound complexes', + }, + bases=('ippidb.proteindomaincomplex',), ), migrations.CreateModel( - name='PpiComplex', + name='ProteinDomainPartnerComplex', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('cc_nb', models.IntegerField(default=1, verbose_name='Number of copies of the complex in the PPI')), - ('complex', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainComplex')), + ('proteindomaincomplex_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ippidb.ProteinDomainComplex')), ], options={ - 'verbose_name_plural': 'Ppi complexes', + 'verbose_name_plural': 'partner complexes', }, + bases=('ippidb.proteindomaincomplex',), ), - migrations.RemoveField( - model_name='ppi', - name='cc_nb', + migrations.AddField( + model_name='proteindomaincomplex', + name='domain', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Domain'), ), - migrations.RemoveField( - model_name='ppi', - name='complex', + migrations.AddField( + model_name='proteindomaincomplex', + name='protein', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Protein'), ), - migrations.RemoveField( - model_name='ppi', - name='ppi_id', + migrations.AddField( + model_name='protein', + name='organism', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Taxonomy'), ), - migrations.RemoveField( - model_name='testactivitydescription', + migrations.AddField( + model_name='ppicomplex', name='complex', - ), - migrations.AlterField( - model_name='compoundactivityresult', - name='activity_type', - field=models.CharField(choices=[('pIC50', 'pIC50 (half maximal inhibitory concentration, -log10)'), ('pEC50', 'pEC50 (half maximal effective concentration, -log10)'), ('pKd', 'pKd (dissociation constant, -log10)'), ('pKi', 'pKi (inhibition constant, -log10)')], max_length=5, verbose_name='Activity type'), - ), - migrations.DeleteModel( - name='ActivityType', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainComplex'), ), migrations.AddField( model_name='ppicomplex', name='ppi', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi'), ), - migrations.AlterField( - model_name='ppi', - name='pdb_id', - field=models.CharField(max_length=4, null=True, verbose_name='PDB ID'), - ), - migrations.RenameModel( - old_name='CmpdAction', - new_name='CompoundAction', - ), migrations.AddField( model_name='ppi', - name='diseases', - field=models.ManyToManyField(to='ippidb.Disease'), - ), - migrations.RemoveField( - model_name='proteindomainboundcomplex', - name='pockets_nb', + name='family', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.PpiFamily'), ), migrations.AddField( model_name='ppi', - name='pockets_nb', - field=models.IntegerField(default=1, verbose_name='Total number of pockets in the complex'), - ), - migrations.AlterField( - model_name='compound', - name='pubchem_id', - field=models.CharField(blank=True, max_length=10, null=True, verbose_name='Pubchem ID'), - ), - migrations.AlterField( - model_name='compound', - name='iupac_name', - field=models.CharField(blank=True, max_length=255, null=True, verbose_name='IUPAC name'), - ), - migrations.AlterField( - model_name='compound', - name='chembl_id', - field=models.CharField(blank=True, max_length=30, null=True, verbose_name='Chembl ID'), - ), - migrations.CreateModel( - name='MDDRActivityClass', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100, unique=True, verbose_name='Activity Class')), - ], - options={ - 'verbose_name_plural': 'MDDR activity classes', - }, - ), - migrations.RemoveField( - model_name='mddrcompoundactivityclass', - name='mddr_compound', - ), - migrations.DeleteModel( - name='MDDRCompoundActivityClass', - ), - migrations.AddField( - model_name='mddrcompoundimport', - name='activity_classes', - field=models.ManyToManyField(to='ippidb.MDDRActivityClass'), - ), - migrations.AlterField( - model_name='mddrcompoundimport', - name='db_import_date', - field=models.DateTimeField(verbose_name='MDDR release year/month'), - ), - migrations.RemoveField( - model_name='mddrcompoundimport', - name='mddr_compound_id', + name='symmetry', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Symmetry'), ), migrations.AlterUniqueTogether( - name='mddrcompoundimport', - unique_together=set([('mddr_name', 'dvpmt_phase', 'canonical_smile')]), - ), - migrations.AlterField( - model_name='mddrcompoundimport', - name='canonical_smile', - field=models.CharField(blank=True, max_length=500, null=True, verbose_name='Canonical Smile'), + name='mddrsimilarity', + unique_together=set([('canonical_smile_ippidb', 'canonical_smile_mddr')]), ), - migrations.AlterField( - model_name='mddrcompoundimport', - name='dvpmt_phase', - field=models.CharField(choices=[('Biological Testing', ''), ('Preclinical', ''), ('Phase III', ''), ('Phase II', ''), ('Phase I/II', ''), ('Phase I', ''), ('Launched', ''), ('Pre-Registered', ''), ('Not Applicable', ''), ('Discontinued', ''), ('Clinical', ''), ('Withdrawn', ''), ('Registered', ''), ('Not Determined', ''), ('Phase II/III', ''), ('IND Filed', '')], max_length=20, verbose_name='Development phase'), + migrations.AddField( + model_name='compoundpkresult', + name='test_pk_description', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestPKDescription'), ), - migrations.AlterField( - model_name='testactivitydescription', - name='cell_line', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.CellLine'), - ), - migrations.AlterField( - model_name='bibliography', - name='in_cellulo', - field=models.BooleanField(default=False, verbose_name='in cellulo study'), - ), - migrations.AlterField( - model_name='bibliography', - name='in_silico', - field=models.BooleanField(default=False, verbose_name='in silico study'), - ), - migrations.AlterField( - model_name='bibliography', - name='in_vitro', - field=models.BooleanField(default=False, verbose_name='in vitro study'), - ), - migrations.AlterField( - model_name='bibliography', - name='in_vivo', - field=models.BooleanField(default=False, verbose_name='in vivo study'), - ), - migrations.AlterField( - model_name='bibliography', - name='pharmacokinetic', - field=models.BooleanField(default=False, verbose_name='pharmacokinetic study'), - ), - migrations.AlterField( - model_name='bibliography', - name='source', - field=models.CharField(choices=[('PM', 'PubMed ID'), ('PT', 'Patent'), ('DO', 'DOI ID')], default='PM', max_length=2, verbose_name='Bibliographic type'), - ), - migrations.AlterField( - model_name='bibliography', - name='xray', - field=models.BooleanField(default=False, verbose_name='X-Ray data'), - ), - migrations.AlterField( - model_name='compoundaction', - name='activation_mode', - field=models.CharField(choices=[('O', 'Orthosteric'), ('A', 'Allosteric'), ('U', 'Unspecified')], max_length=1, verbose_name='Activation mode'), + migrations.AddField( + model_name='compoundcytotoxicityresult', + name='test_cytotoxicity_description', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestCytotoxDescription'), ), - migrations.AlterField( - model_name='compoundaction', - name='pdb_id', - field=models.CharField(blank=True, max_length=4, null=True, verbose_name='PDB ID'), + migrations.AddField( + model_name='compoundactivityresult', + name='test_activity_description', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.TestActivityDescription'), ), migrations.AddField( - model_name='testactivitydescription', - name='is_primary', - field=models.BooleanField(default=False, verbose_name='Is primary'), - preserve_default=False, + model_name='compoundaction', + name='ppi', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.Ppi'), ), migrations.AddField( - model_name='testactivitydescription', - name='protein_bound_construct', - field=models.CharField(blank=True, choices=[('F', 'Full length'), ('U', 'Unspecified')], max_length=5, null=True, verbose_name='Protein bound construct'), + model_name='compound', + name='mddr_compound', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.MDDRCompoundImport'), ), migrations.AddField( model_name='testactivitydescription', name='protein_domain_bound_complex', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainBoundComplex'), - preserve_default=False, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ippidb.ProteinDomainBoundComplex'), ), - migrations.AddField( - model_name='compoundactivityresult', - name='inhibition_percentage', - field=models.DecimalField(decimal_places=0, max_digits=3, null=True, verbose_name='Inhibition percentage'), + migrations.AlterUniqueTogether( + name='refcompoundbiblio', + unique_together=set([('compound', 'bibliography')]), ), - migrations.CreateModel( - name='LeLleBiplotData', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('le_lle_biplot_data', models.CharField(blank=True, max_length=150000, null=True, verbose_name='LE-LLE biplot JSON data')), - ], + migrations.AlterUniqueTogether( + name='mddrcompoundimport', + unique_together=set([('mddr_name', 'dvpmt_phase', 'canonical_smile')]), ), - 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')), - ], - options={ - 'verbose_name_plural': 'PPI Families', - }, + migrations.AlterUniqueTogether( + name='compoundpkresult', + unique_together=set([('compound', 'test_pk_description')]), ), - migrations.AddField( - model_name='ppi', - name='family', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='ippidb.PpiFamily'), + migrations.AlterUniqueTogether( + name='compoundcytotoxicityresult', + unique_together=set([('compound', 'test_cytotoxicity_description')]), ), - migrations.CreateModel( - name='PcaBiplotData', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('pca_biplot_data', models.CharField(blank=True, max_length=150000, null=True, verbose_name='PCA biplot JSON data')), - ], + migrations.AlterUniqueTogether( + name='compoundactivityresult', + unique_together=set([('compound', 'test_activity_description', 'activity_type')]), + ), + migrations.AlterUniqueTogether( + name='compoundaction', + unique_together=set([('ppi', 'compound', 'activation_mode', 'pdb_id')]), ), ] -- GitLab