def __init__(self, ref_file, alt_files, simple_selection): self.selection = SelectionParser(simple_selection) self.ref_struct = PDBParser(PERMISSIVE=True).get_structure( 'ref', ref_file)[0] assert self.ref_struct, self.logger.error( "Can't parse the ref file %s".format(ref_file)) if self.selection.generic_numbers != [] or self.selection.helices != []: if not check_gn(self.ref_struct): gn_assigner = GenericNumbering(structure=self.ref_struct) self.ref_struct = gn_assigner.assign_generic_numbers() self.alt_structs = [] for alt_id, alt_file in enumerate(alt_files): try: tmp_struct = PDBParser(PERMISSIVE=True).get_structure( alt_id, alt_file)[0] if self.selection.generic_numbers != [] or self.selection.helices != []: if not check_gn(tmp_struct): gn_assigner = GenericNumbering(structure=tmp_struct) self.alt_structs.append( gn_assigner.assign_generic_numbers()) self.alt_structs[-1].id = alt_id else: self.alt_structs.append(tmp_struct) except Exception as e: logger.warning("Can't parse the file {!s}\n{!s}".format( alt_id, e)) self.selector = CASelector(self.selection, self.ref_struct, self.alt_structs)
def post(self, request): root, ext = os.path.splitext(request.FILES['pdb_file'].name) generic_numbering = GenericNumbering( StringIO(request.FILES['pdb_file'].file.read().decode( 'UTF-8', "ignore"))) out_struct = generic_numbering.assign_generic_numbers() out_stream = StringIO() io = PDBIO() io.set_structure(out_struct) io.save(out_stream) print(len(out_stream.getvalue())) # filename="{}_GPCRdb.pdb".format(root) return Response(out_stream.getvalue())
def __init__(self, pdb_file=None, pdb_filename=None): #pdb_file can be either a name/path or a handle to an open file self.pdb_file = pdb_file self.pdb_filename = pdb_filename self.pdb_seq = {} self.blast = BlastSearch() self.pdb_struct = self.parse_pdb() if not check_gn(self.pdb_struct): gn_assigner = GenericNumbering(structure=self.pdb_struct) self.pdb_struct = gn_assigner.assign_generic_numbers() self.target = Protein.objects.get(pk=gn_assigner.prot_id_list[0]) else: self.target = Protein.objects.get(pk=self.identify_receptor())