def handle(self, *args, **options): if options["verbose"] == 1: import logging logging.basicConfig(level=logging.DEBUG) pdbs = PDBs(options["pdbs_dir"]) pdbs.url_pdb_entries = options["entries_url"] if not os.path.exists(options["entries_path"]): pdbs.download_pdb_entries() pdbio = PDBIO(options['pdbs_dir'] + "/", options['entries_path'], options['tmp']) pdbio.init() try: pdbs.update_pdb(options['code']) pdbio.process_pdb(options['code'], force=options['force'], pocket_path=pdbs.pdb_pockets_path( options['code']), pdb_path=pdbs.pdb_path(options['code'])) except IOError as ex: traceback.print_exc() self.stderr.write("error processing pockets from %s: %s" % (options['code'], str(ex))) except Exception as ex: traceback.print_exc() raise CommandError(ex)
def handle(self, *args, **options): pdbs_utils = PDBs(pdb_dir=options['pdbs_dir']) pdbs_utils.url_pdb_entries = options["entries_url"] if not options['entries_path']: options['entries_path'] = options['pdbs_dir'] + "/entries.idx" if (datetime.now() - datetime.fromtimestamp( os.path.getctime(options["entries_path"]))).days > 7: pdbs_utils.download_pdb_entries() pdb2sql = PDB2SQL(options['pdbs_dir'], options['entries_path']) pdb2sql.load_entries() if options["only_annotated"]: self.stderr.write("only_annotated option activated by default") from bioseq.models.Dbxref import Dbxref pdbs = [(x.accession.lower(), pdbs_utils.pdb_path(x.accession.lower())) for x in Dbxref.objects.filter(dbname="PDB")] else: pdbs = list(tqdm(iterpdbs(options['pdbs_dir']))) # 4zux 42 mer 2lo7("5my5","/data/databases/pdb/divided/my/pdb5my5.ent") # ("4zu4", "/data/databases/pdb/divided/zu/pdb4zu4.ent") with tqdm(pdbs) as pbar: for code, pdb_path in pbar: code = code.lower() if PDBsWS.is_obsolete(code): self.stderr.write(f"{code} entry is obsolete") continue try: pdb_path = pdbs_utils.update_pdb(code) except KeyboardInterrupt: raise except: self.stderr.write("PDB %s could not be downloaded" % code) continue if PDB.objects.filter(code=code).exists(): self.stderr.write("PDB %s already exists" % code) continue pbar.set_description(code) try: pdb2sql.create_pdb_entry(code, pdb_path) pdb2sql.update_entry_data(code, pdb_path) except KeyboardInterrupt: raise except Exception as ex: import traceback traceback.print_exc() raise CommandError(ex)
def handle(self, *args, **options): pdbs = PDBs() pdbs.url_pdb_entries = options["entries_url"] if not os.path.exists(options["entries_path"]): pdbs.download_pdb_entries() pdbio = PDBIO(options['pdbs_dir'] + "/", options['entries_path'], options['tmp']) pdbio.init() try: pdbio.process_pdb(options['code']) except IOError as ex: traceback.print_exc() self.stderr.write("error processing pockets from %s: %s" % (options['code'], str(ex))) except Exception as ex: traceback.print_exc() raise CommandError(ex)
def handle(self, *args, **options): pdbs = PDBs(pdb_dir=options['pdbs_dir']) pdbs.url_pdb_entries = options["entries_url"] if not os.path.exists(options["entries_path"]): pdbs.download_pdb_entries() pdb2sql = PDB2SQL(options['pdbs_dir'], options['entries_path']) pdb2sql.load_entries() if options["only_annotated"]: self.stderr.write("only_annotated option activated by default") from bioseq.models.Dbxref import Dbxref pdbs = [(x.accession.lower(),pdbs.pdb_path( x.accession.lower())) for x in Dbxref.objects.filter(dbname="PDB")] else: pdbs = list(tqdm(iterpdbs(options['pdbs_dir']))) # 4zux 42 mer 2lo7("5my5","/data/databases/pdb/divided/my/pdb5my5.ent") # ("4zu4", "/data/databases/pdb/divided/zu/pdb4zu4.ent") with tqdm(pdbs) as pbar: for code,pdb_path in pbar: code = code.lower() try: pdb_path = pdb2sql.download(code) except: self.stderr.write("PDB %s could not be downloaded" % code) continue if PDB.objects.filter(code=code).exists(): self.stderr.write("PDB %s already exists" % code) continue pbar.set_description(code) try: pdb2sql.create_pdb_entry(code, pdb_path) pdb2sql.update_entry_data(code, pdb_path) except Exception as ex: raise CommandError(ex)