import os import sys import glob def pdbs_to_pdbqts(pdb_dir, pdbqt_dir, dataset): for file in glob.glob(os.path.join(pdb_dir, '*.pdb')): name = os.path.splitext(os.path.basename(file))[0] outfile = os.path.join(pdbqt_dir, name + '.pdbqt') pdb_to_pdbqt(file, outfile, dataset) print('Wrote converted file to {}'.format(outfile)) def pdb_to_pdbqt(pdb_file, pdbqt_file, dataset): if os.path.exists(pdbqt_file): return pdbqt_file if dataset == 'crossdocked': os.system('prepare_receptor4.py -r {} -o {}'.format(pdb_file, pdbqt_file)) elif dataset == 'bindingmoad': os.system('prepare_receptor4.py -r {} -o {} -A checkhydrogens -e'.format(pdb_file, pdbqt_file)) else: raise NotImplementedError return pdbqt_file if __name__ == '__main__': pdbs_to_pdbqts(sys.argv[1], sys.argv[2], sys.argv[3])