pdb/sdf转pdbqt错误、pdbqt小分子文件对接蛋白质dock分数为0
pdb/sdf转pdbqt错误、
(openbabel) mapengsen@mapengsen:/mnt/d/Pycharm_workspace/gypsum_dl-1.2.0$ python docking/pdb2pdbqt.py --pdb_file docking_data/dynamicMol/Kras/ligand/raw/9ggt/pdbqt/ --pdbqt_file docking_data/dynamicMol/Kras/ligand/raw/9ggt/pdbqt/
['docking_data/dynamicMol/Kras/ligand/raw/9ggt/pdbqt/9ggt.pdb']
Traceback (most recent call last):
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_ligand4.py", line 206, in <module>
attach_singletons=attach_singletons)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/MoleculePreparation.py", line 1019, in __init__
detect_bonds_between_cycles=detect_bonds_between_cycles)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/MoleculePreparation.py", line 768, in __init__
delete_single_nonstd_residues=False)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/MoleculePreparation.py", line 143, in __init__
self.addCharges(mol, charges_to_add)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/MoleculePreparation.py", line 229, in addCharges
chargeCalculator.addCharges(mol.allAtoms)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/MolKit/chargeCalculator.py", line 80, in addCharges
babel.assignHybridization(atoms)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/PyBabel/atomTypes.py", line 127, in assignHybridization
a.babel_atomic_number = self.get_atomic_number(a.babel_type)
File "/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/PyBabel/atomTypes.py", line 103, in get_atomic_number
(name,_name) )
ValueError: Could not find atomic number for * *
Wrote converted file to docking_data/dynamicMol/Kras/ligand/raw/9ggt/pdbqt/9ggt.pdbqt
pdbqt小分子文件对接蛋白质dock分数为0
这种可能都是因为转换出来的小分子的pdbqt文件是错误的,所以需要下载mol2文件,然后转为pdbqt文件,这样就没错误了
conda activate openbabel
import os
import glob
import argparse
from pathlib import Path"""
python docking/mol22pdbqt.py --pdb_file docking_data/dynamicMol/Kras/ligand/raw/9ggu/pdbqt --pdbqt_file docking_data/dynamicMol/Kras/ligand/raw/9ggu/pdbqt"""import os
import glob
import argparse
from multiprocessing import Pool
from pathlib import Pathdef pdbs_to_pdbqts(pdb_dir, pdbqt_dir):os.makedirs(pdbqt_dir, exist_ok=True)pdb_files = glob.glob(os.path.join(pdb_dir, '*.mol2'))print(pdb_files)with Pool(os.cpu_count()) as p:p.starmap(pdb_to_pdbqt, [(file, os.path.join(pdbqt_dir, os.path.splitext(os.path.basename(file))[0] + '.pdbqt')) for file in pdb_files])def pdb_to_pdbqt(pdb_file, pdbqt_file):os.system('/mnt/d/MGLTools/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_ligand4.py -l {} -o {}'.format(pdb_file, pdbqt_file))print('Wrote converted file to {}'.format(pdbqt_file))return pdbqt_file# prepare ligand for docking
if __name__ == '__main__':parser = argparse.ArgumentParser('QuickVina evaluation')parser.add_argument('--pdb_file', type=Path, help='pdb files in pdbqt format')parser.add_argument('--pdbqt_file', type=Path, default=None, help='pdbqt files in pdbqt format')args = parser.parse_args()pdbs_to_pdbqts(args.pdb_file, args.pdbqt_file)