first version
This commit is contained in:
48
script/add_hydrogen.py
Normal file
48
script/add_hydrogen.py
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
'''
|
||||
@file :add_hydrogen.py
|
||||
@Description: : add hydrogen in pymol
|
||||
@Date :2022/10/24 11:17:11
|
||||
@Author :hotwa
|
||||
@version :1.0
|
||||
'''
|
||||
from pymol import cmd
|
||||
from openbabel import pybel
|
||||
"""
|
||||
conda install -c conda-forge pymol-open-source openbabel --yes
|
||||
"""
|
||||
|
||||
def add_polar_hydrogen(file, out_file,read_fmt = 'mol2', pymol_obj='sele',
|
||||
save_format='mol2',tool = 'pymol'):
|
||||
"""add_polar_hydrogen _summary_
|
||||
|
||||
_extended_summary_
|
||||
|
||||
Arguments:
|
||||
file {pathlike} -- input file path
|
||||
out_file {pathlike} -- output file
|
||||
|
||||
Keyword Arguments:
|
||||
read_fmt {string} -- the format of read file (default: {'mol2'})
|
||||
pymol_obj {string } -- add polar hydrogen object name, ligand ID (default: {'sele'})
|
||||
save_format {string} -- the format of save file (default: {'mol2'})
|
||||
tool {string} -- the tool of add polar hydrogens (default: {'pymol'})
|
||||
|
||||
Returns:
|
||||
_type_ -- path or None
|
||||
"""
|
||||
if tool == 'pymol':
|
||||
cmd.reinitialize("everything")
|
||||
cmd.load(filename=file, format=read_fmt)
|
||||
cmd.h_add(pymol_obj) # add all hydrogens in this molecular
|
||||
cmd.remove(f"{pymol_obj} & hydro & not nbr. (don.|acc.)") # remove no-polar-hydrogen
|
||||
cmd.save(filename=out_file,selection=pymol_obj, format=save_format)
|
||||
return out_file
|
||||
elif tool == 'pybel':
|
||||
omol = list(pybel.readfile(format = 'mol2', filename = file))[0]
|
||||
omol.OBMol.AddPolarHydrogens()
|
||||
omol.write('mol2',out_file,overwrite=True)
|
||||
return out_file
|
||||
else:
|
||||
return None
|
||||
Reference in New Issue
Block a user