def can_create_arrestins(self, family, residue_numbering_scheme, accession, uniprot): # get/create protein source try: source, created = ProteinSource.objects.get_or_create( name=uniprot['source'], defaults={'name': uniprot['source']}) if created: self.logger.info('Created protein source ' + source.name) except IntegrityError: source = ProteinSource.objects.get(name=uniprot['source']) # get/create species try: species, created = Species.objects.get_or_create( latin_name=uniprot['species_latin_name'], defaults={ 'common_name': uniprot['species_common_name'], }) if created: self.logger.info('Created species ' + species.latin_name) except IntegrityError: species = Species.objects.get( latin_name=uniprot['species_latin_name']) # get/create protein sequence type # Wild-type for all sequences from source file try: sequence_type, created = ProteinSequenceType.objects.get_or_create( slug='wt', defaults={ 'slug': 'wt', 'name': 'Wild-type', }) if created: self.logger.info('Created protein sequence type Wild-type') except: self.logger.error( 'Failed creating protein sequence type Wild-type') # create protein p = Protein() p.family = family p.species = species p.source = source p.residue_numbering_scheme = residue_numbering_scheme p.sequence_type = sequence_type if accession: p.accession = accession p.entry_name = uniprot['entry_name'].lower() p.name = uniprot['names'][0] p.sequence = uniprot['sequence'] try: p.save() self.logger.info('Created protein {}'.format(p.entry_name)) except: self.logger.error('Failed creating protein {}'.format( p.entry_name)) # protein aliases for i, alias in enumerate(uniprot['names']): pcan = Protein.objects.get( entry_name=uniprot['entry_name'].lower()) a = ProteinAlias() a.protein = pcan a.name = alias a.position = i try: a.save() self.logger.info('Created protein alias ' + a.name + ' for protein ' + p.name) except: self.logger.error('Failed creating protein alias ' + a.name + ' for protein ' + p.name) # genes for i, gene in enumerate(uniprot['genes']): g = False try: g, created = Gene.objects.get_or_create(name=gene, species=species, position=i) if created: self.logger.info('Created gene ' + g.name + ' for protein ' + p.name) except IntegrityError: g = Gene.objects.get(name=gene, species=species, position=i) if g: pcan = Protein.objects.get( entry_name=uniprot['entry_name'].lower()) g.proteins.add(pcan) # structures for i, structure in enumerate(uniprot['structures']): try: res = structure[1] if res == '-': res = 0 structure, created = SignprotStructure.objects.get_or_create( PDB_code=structure[0], resolution=res) if created: self.logger.info('Created structure ' + structure.PDB_code + ' for protein ' + p.name) except IntegrityError: self.logger.error('Failed creating structure ' + structure.PDB_code + ' for protein ' + p.name) if g: pcan = Protein.objects.get( entry_name=uniprot['entry_name'].lower()) structure.origin.add(pcan) structure.save()
def create_protein(self, name, family, sequence_type, residue_numbering_scheme, accession, uniprot): # get/create protein source try: source, created = ProteinSource.objects.get_or_create( name=uniprot['source'], defaults={'name': uniprot['source']}) if created: self.logger.info('Created protein source ' + source.name) except IntegrityError: source = ProteinSource.objects.get(name=uniprot['source']) # get/create species try: species, created = Species.objects.get_or_create( latin_name=uniprot['species_latin_name'], defaults={ 'common_name': uniprot['species_common_name'], }) if created: self.logger.info('Created species ' + species.latin_name) except IntegrityError: species = Species.objects.get( latin_name=uniprot['species_latin_name']) # create protein p = Protein() p.family = family p.species = species p.source = source p.residue_numbering_scheme = residue_numbering_scheme p.sequence_type = sequence_type if accession: p.accession = accession p.entry_name = uniprot['entry_name'] p.name = name p.sequence = uniprot['sequence'] try: p.save() self.logger.info('Created protein {}'.format(p.entry_name)) except: self.logger.error('Failed creating protein {}'.format( p.entry_name)) # protein conformations try: ps, created = ProteinState.objects.get_or_create( slug=settings.DEFAULT_PROTEIN_STATE, defaults={'name': settings.DEFAULT_PROTEIN_STATE.title()}) except IntegrityError: ps = ProteinState.objects.get(slug=settings.DEFAULT_PROTEIN_STATE) pc = ProteinConformation.objects.create(protein=p, state=ps) # protein aliases for i, alias in enumerate(uniprot['names']): a = ProteinAlias() a.protein = p a.name = alias a.position = i try: a.save() self.logger.info('Created protein alias ' + a.name + ' for protein ' + p.name) except: self.logger.error('Failed creating protein alias ' + a.name + ' for protein ' + p.name) # genes for i, gene in enumerate(uniprot['genes']): g = False try: g, created = Gene.objects.get_or_create(name=gene, species=species, position=i) if created: self.logger.info('Created gene ' + g.name + ' for protein ' + p.name) except IntegrityError: g = Gene.objects.get(name=gene, species=species, position=i) if g: g.proteins.add(p)
def cgn_creat_gproteins(self, family, residue_numbering_scheme, accession, uniprot): # get/create protein source try: source, created = ProteinSource.objects.get_or_create(name=uniprot['source'], defaults={'name': uniprot['source']}) if created: self.logger.info('Created protein source ' + source.name) except IntegrityError: source = ProteinSource.objects.get(name=uniprot['source']) # get/create species try: species, created = Species.objects.get_or_create(latin_name=uniprot['species_latin_name'], defaults={ 'common_name': uniprot['species_common_name'], }) if created: self.logger.info('Created species ' + species.latin_name) except IntegrityError: species = Species.objects.get(latin_name=uniprot['species_latin_name']) # get/create protein sequence type # Wild-type for all sequences from source file try: sequence_type, created = ProteinSequenceType.objects.get_or_create(slug='wt', defaults={ 'slug': 'wt', 'name': 'Wild-type', }) if created: self.logger.info('Created protein sequence type Wild-type') except: self.logger.error('Failed creating protein sequence type Wild-type') # create protein p = Protein() p.family = family p.species = species p.source = source p.residue_numbering_scheme = residue_numbering_scheme p.sequence_type = sequence_type if accession: p.accession = accession p.entry_name = uniprot['entry_name'].lower() p.name = uniprot['names'][0].split('Guanine nucleotide-binding protein ')[1] p.sequence = uniprot['sequence'] try: p.save() self.logger.info('Created protein {}'.format(p.entry_name)) except: self.logger.error('Failed creating protein {}'.format(p.entry_name)) # protein aliases for i, alias in enumerate(uniprot['names']): pcgn = Protein.objects.get(entry_name=uniprot['entry_name'].lower()) a = ProteinAlias() a.protein = pcgn a.name = alias a.position = i try: a.save() self.logger.info('Created protein alias ' + a.name + ' for protein ' + p.name) except: self.logger.error('Failed creating protein alias ' + a.name + ' for protein ' + p.name) # genes for i, gene in enumerate(uniprot['genes']): g = False try: g, created = Gene.objects.get_or_create(name=gene, species=species, position=i) if created: self.logger.info('Created gene ' + g.name + ' for protein ' + p.name) except IntegrityError: g = Gene.objects.get(name=gene, species=species, position=i) if g: pcgn = Protein.objects.get(entry_name=uniprot['entry_name'].lower()) g.proteins.add(pcgn) # structures for i, structure in enumerate(uniprot['structures']): try: res = structure[1] if res == '-': res = 0 structure, created = SignprotStructure.objects.get_or_create(PDB_code=structure[0], resolution=res) if created: self.logger.info('Created structure ' + structure.PDB_code + ' for protein ' + p.name) except IntegrityError: self.logger.error('Failed creating structure ' + structure.PDB_code + ' for protein ' + p.name) if g: pcgn = Protein.objects.get(entry_name=uniprot['entry_name'].lower()) structure.origin.add(pcgn) structure.save()
def create_protein(self, name, family, sequence_type, residue_numbering_scheme, accession, uniprot): # get/create protein source try: source, created = ProteinSource.objects.get_or_create(name=uniprot['source'], defaults={'name': uniprot['source']}) if created: self.logger.info('Created protein source ' + source.name) except IntegrityError: source = ProteinSource.objects.get(name=uniprot['source']) # get/create species try: species, created = Species.objects.get_or_create(latin_name=uniprot['species_latin_name'], defaults={ 'common_name': uniprot['species_common_name'], }) if created: self.logger.info('Created species ' + species.latin_name) except IntegrityError: species = Species.objects.get(latin_name=uniprot['species_latin_name']) # create protein p = Protein() p.family = family p.species = species p.source = source p.residue_numbering_scheme = residue_numbering_scheme p.sequence_type = sequence_type if accession: p.accession = accession p.entry_name = uniprot['entry_name'] p.name = name p.sequence = uniprot['sequence'] try: p.save() self.logger.info('Created protein {}'.format(p.entry_name)) except Exception as e: self.logger.error('Failed creating protein {} {}'.format(p.entry_name, str(e))) # protein conformations try: ps, created = ProteinState.objects.get_or_create(slug=settings.DEFAULT_PROTEIN_STATE, defaults={'name': settings.DEFAULT_PROTEIN_STATE.title()}) except IntegrityError: ps = ProteinState.objects.get(slug=settings.DEFAULT_PROTEIN_STATE) pc = ProteinConformation.objects.create(protein=p, state=ps) # protein aliases for i, alias in enumerate(uniprot['names']): a = ProteinAlias() a.protein = p a.name = alias a.position = i try: a.save() self.logger.info('Created protein alias ' + a.name + ' for protein ' + p.name) except: self.logger.error('Failed creating protein alias ' + a.name + ' for protein ' + p.name) # genes for i, gene in enumerate(uniprot['genes']): g = False try: g, created = Gene.objects.get_or_create(name=gene, species=species, position=i) if created: self.logger.info('Created gene ' + g.name + ' for protein ' + p.name) except IntegrityError: g = Gene.objects.get(name=gene, species=species, position=i) if g: g.proteins.add(p)