def analyze_construct(self, filenames=None):
        self.logger.info("ANALYZING CONSTRUCT STRUCTURES")

        # read source files
        if not filenames:
            filenames = os.listdir(self.construct_data_dir)

        for filename in filenames:
            if filename[-3:] != 'pdb' and filename[-3:] != 'ent':
                continue
            root, ext = os.path.splitext(os.path.basename(filename))
            print(filename)
            print(root)
            filepath = os.sep.join([self.construct_data_dir, filename])
            self.logger.info("Working on a file: {}".format(filename))
            header = parse_pdb_header(filepath)
            parser = SequenceParser(filepath)

            json_data = OrderedDict()
            json_data["header"] = header
            json_data.update(parser.get_fusions())
            json_data.update(parser.get_mutations())
            json_data.update(parser.get_deletions())
            json.dump(json_data,
                      open(
                          os.sep.join(
                              [settings.DATA_DIR,
                               "{}_auto.json".format(root)]), 'w'),
                      indent=4,
                      separators=(',', ': '))
Example #2
0
 def handle(self, *args, **options):
     print("Working on file {}".format(options['pdb_file']))
     header = parse_pdb_header(options['pdb_file'])
     print(header['compound'])
     sp = SequenceParser(options['pdb_file'])
     c = list(sp.mapping.keys())[0]
     poly = sp.get_chain_peptides(c)
     for peptide in poly:
         print("Start: {} Stop: {} Len: {}".format(peptide[0].id[1], peptide[-1].id[1], len(peptide)))
         sp.map_to_wt_blast(c, peptide, None, int(peptide[0].id[1]))
     sp.map_seqres()
     sp.save_excel_report("test.xlsx")
     #sp.get_report()
Example #3
0
    def post(self, request):
        # root, ext = os.path.splitext(request._request.FILES['pdb_file'].name)
        pdb_file = StringIO(
            request._request.FILES['pdb_file'].file.read().decode(
                'UTF-8', "ignore"))
        header = parse_pdb_header(pdb_file)
        parser = SequenceParser(pdb_file)

        json_data = OrderedDict()
        json_data["header"] = header
        json_data.update(parser.get_fusions())
        json_data.update(parser.get_mutations())
        json_data.update(parser.get_deletions())

        return Response(json_data)
Example #4
0
    def handle(self, *args, **options):

        q = QueryPDB()
        q.list_xtals(verbose=False)

        for record in q.new_structures:
            pdb_code = record[0]
            wt_id = Protein.objects.get(entry_name=record[1]).id
            if not os.path.exists(
                    os.sep.join([self.pdb_data_dir, "{}.pdb".format(pdb_code)
                                 ])):
                self.download_pdb(pdb_code)
            self.parser = SequenceParser(os.sep.join(
                [self.pdb_data_dir, "{}.pdb".format(pdb_code)]),
                                         wt_protein_id=wt_id)
            header = parse_pdb_header(
                os.sep.join([self.pdb_data_dir, "{}.pdb".format(pdb_code)]))
            self.create_yaml(pdb_code, record[1], header)
Example #5
0
 def handle(self, *args, **options):
     root, ext = os.path.splitext(os.path.basename(options['pdb_file']))
     print("Working on file {}".format(options['pdb_file']))
     header = parse_pdb_header(options['pdb_file'])
     sp = SequenceParser(options['pdb_file'])
     print(sp.get_fusions())
     print(sp.get_mutations())
     print(sp.get_deletions())
     json_data = {}
     json_data["header"] = header
     json_data.update(sp.get_fusions())
     json_data.update(sp.get_mutations())
     json_data.update(sp.get_deletions())
     json.dump(
         json_data,
         open(os.sep.join([settings.DATA_DIR, "{}_auto.json".format(root)]),
              'w'),
         indent=4,
         separators=(',', ': '))