新建
Jupyter_Dock | 骨架对接

liyq@dp.tech

赞
2
目录
数据集
AI4SCUP-CNS-BBB(v1)
🏃🏻 快速开始
您可以直接在 Bohrium Notebook 上执行此文档。首先,请点击位于界面顶部的 开始连接 按钮,然后选择 ubuntu:22.04-py3.10 镜像并选择合适的的机器配置,稍等片刻即可开始运行。
📖 来源
本 Notebook 来自 https://github.com/AngelRuizMoreno/Jupyter_Dock,由李亚奇 📨 修改搬运至 Bohrium Notebook。
代码
文本
🎯 本教程旨在快速掌握 Jupyter Dock 的用法:使用 Smina 和Ledock 进行药效团对接。
一键运行,你可以快速在实践中检验你的想法。
丰富完善的注释,对于入门者友好。
代码
文本
那么就让我们开始吧
代码
文本
首先,我们将配置运行环境,并下载所需要的文件以及赋予相关软件可执行权限
代码
文本
[ ]
!mamba install -c conda-forge pymol-open-source py3dmol openbabel pdbfixer vina rdkit cython -y --quiet
代码
文本
[ ]
!apt-get update && apt-get upgrade -y && apt-get install libgl1-mesa-glx -y
代码
文本
[ ]
!pip install git+https://github.com/chemosim-lab/ProLIF.git && pip install meeko
代码
文本
[1]
!git clone https://github.com/AngelRuizMoreno/Jupyter_Dock
Cloning into 'Jupyter_Dock'... remote: Enumerating objects: 2177, done. remote: Counting objects: 100% (57/57), done. remote: Compressing objects: 100% (29/29), done. remote: Total 2177 (delta 39), reused 30 (delta 28), pack-reused 2120 Receiving objects: 100% (2177/2177), 30.84 MiB | 2.21 MiB/s, done. Resolving deltas: 100% (1664/1664), done. Updating files: 100% (596/596), done.
代码
文本
[2]
!wget http://www.lephar.com/download/ledock_linux_x86 -O ./Jupyter_Dock/bin/ledock_linux_x86
--2023-06-15 08:42:22-- http://www.lephar.com/download/ledock_linux_x86 Resolving ga.dp.tech (ga.dp.tech)... 10.255.255.41 Connecting to ga.dp.tech (ga.dp.tech)|10.255.255.41|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 362677 (354K) [application/octet-stream] Saving to: ‘./Jupyter_Dock/bin/ledock_linux_x86’ ./Jupyter_Dock/bin/ 100%[===================>] 354.18K 204KB/s in 1.7s 2023-06-15 08:42:24 (204 KB/s) - ‘./Jupyter_Dock/bin/ledock_linux_x86’ saved [362677/362677]
代码
文本
[3]
!wget http://www.lephar.com/download/lepro_linux_x86 -O ./Jupyter_Dock/bin/lepro_linux_x86
--2023-06-15 08:42:25-- http://www.lephar.com/download/lepro_linux_x86 Resolving ga.dp.tech (ga.dp.tech)... 10.255.255.41 Connecting to ga.dp.tech (ga.dp.tech)|10.255.255.41|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 393683 (384K) [application/octet-stream] Saving to: ‘./Jupyter_Dock/bin/lepro_linux_x86’ ./Jupyter_Dock/bin/ 100%[===================>] 384.46K 240KB/s in 1.6s 2023-06-15 08:42:28 (240 KB/s) - ‘./Jupyter_Dock/bin/lepro_linux_x86’ saved [393683/393683]
代码
文本
[4]
!chmod +x -R ./Jupyter_Dock/bin
代码
文本
导入所需环境
代码
文本
[5]
from pymol import cmd
from rdkit import Chem
import py3Dmol
from openbabel import pybel
import sys, os, random
sys.path.insert(1, 'utilities/')
from Jupyter_Dock.utilities.utils import get_inplace_rmsd, get_scaffold_based_conformers
import warnings
warnings.filterwarnings("ignore")
%config Completer.use_jedi = False
代码
文本
[6]
os.chdir('Jupyter_Dock/test/Scaffold_based_Docking/')
代码
文本
使用pymol cmd 下载所需要的体系PDB文件
代码
文本
[13]
cmd.fetch(code='1B38',type='pdb1')
cmd.select(name='Prot',selection='polymer.protein')
cmd.select(name='ATP',selection='resn ATP')
cmd.save(filename='1B38_clean.pdb',format='pdb',selection='Prot')
cmd.save(filename='1B38_ATP.sdf',format='sdf',selection='ATP')
cmd.delete('all')
代码
文本
可视化检查下载结果
代码
文本
[14]
view = py3Dmol.view()
view.removeAllModels()
view.setViewStyle({'style':'outline','color':'black','width':0.1})
view.addModel(open('1B38_clean.pdb','r').read(),format='pdb')
Prot=view.getModel()
Prot.setStyle({'cartoon':{'arrows':True, 'tubes':True, 'style':'oval', 'color':'white'}})
view.addSurface(py3Dmol.VDW,{'opacity':0.6,'color':'white'})
view.addModel(open('1B38_ATP.sdf','r').read(),format='sdf')
ref_m = view.getModel()
ref_m.setStyle({},{'stick':{'colorscheme':'greenCarbon','radius':0.2}})
view.zoomTo()
view.show()
代码
文本
配体预处理
代码
文本
[15]
mol= [m for m in pybel.readfile(filename='1B38_ATP.sdf',format='sdf')][0]
mol.addh()
out=pybel.Outputfile(filename='1B38_ATP_H.sdf',format='sdf',overwrite=True)
out.write(mol)
out.close()
代码
文本
[21]
ATP=Chem.SDMolSupplier('1B38_ATP_H.sdf',False)[0]
ade_map=ATP.GetSubstructMatch(Chem.MolFromSmarts('[#7]-[#6]-1=[#6]-2-[#7]=[#6]-[#7]-[#6]-2=[#7]-[#6]=[#7]-1'))
scaffold=Chem.EditableMol(ATP)
scaffold_out=Chem.SDWriter('Adenine.sdf')
for atom in reversed(ATP.GetAtoms()):
if atom.GetIdx() not in ade_map:
scaffold.RemoveAtom(atom.GetIdx())
s=scaffold.GetMol()
scaffold_out.write(s)
scaffold_out.close()
s

代码
文本
[22]
Apropovir=Chem.MolFromSmiles('CC(CN1C=NC2=C(N=CN=C21)N)OCP(=O)(O)O')
Apropovir

代码
文本
[23]
get_scaffold_based_conformers(smiles='CC(CN1C=NC2=C(N=CN=C21)N)OCP(=O)(O)O',anchor='Adenine.sdf',num_confs=200,rmsd_threshold=0.75,output='Confs.sdf')
代码
文本
骨架对齐结果的 3D 展示
代码
文本
[24]
view = py3Dmol.view()
view.removeAllModels()
view.setViewStyle({'style':'outline','color':'black','width':0.1})
confs=Chem.SDMolSupplier('Confs.sdf')
for c in list(confs):
c_1=Chem.MolToMolBlock(c)
view.addModel(c_1,'mol')
z= view.getModel()
z.setStyle({},{'stick':{'colorCarbon':'gray','radius':0.1,'opacity':1}})
view.zoomTo()
view.show()
代码
文本
使用 Lepro 进行受体处理
代码
文本
[26]
!../../bin/lepro_linux_x86 1B38_clean.pdb
os.rename('pro.pdb','1B38_clean_H.pdb')
代码
文本
使用 smina 对配体进行打分
代码
文本
[27]
!../../bin/smina -r {'1B38_clean_H.pdb'} -l {'Confs.sdf'} -o {'Smina.sdf'} --minimize >> {'smina.log'}
candidates=Chem.SDWriter('Cans.sdf')
results=Chem.SDMolSupplier('Smina.sdf')
scaffold=Chem.SDMolSupplier('Adenine.sdf')[0]
for res in results:
rmsd= get_inplace_rmsd (scaffold,res)
if rmsd <= 1 and float(res.GetProp('minimizedAffinity')) < 0:
res.SetProp('RMSDvsScaffold',str(rmsd))
candidates.write(res)
candidates.close()
代码
文本
打分结果的 3D 展示
代码
文本
[28]
view = py3Dmol.view()
view.removeAllModels()
view.setViewStyle({'style':'outline','color':'black','width':0.1})
view.addModel(open('1B38_clean.pdb','r').read(),format='pdb')
Prot=view.getModel()
Prot.setStyle({'cartoon':{'arrows':True, 'tubes':True, 'style':'oval', 'color':'white'}})
view.addSurface(py3Dmol.VDW,{'opacity':0.6,'color':'white'})
view.addModel(open('1B38_ATP.sdf','r').read(),format='sdf')
ref_m = view.getModel()
ref_m.setStyle({},{'stick':{'colorscheme':'greenCarbon','radius':0.2}})
confs=Chem.SDMolSupplier('Cans.sdf')
for c in list(confs)[:10]:
c_1=Chem.MolToMolBlock(c)
print(c.GetProp('_Name'),'Score: {} | RMSD vs Scaffold: {}'.format(c.GetProp('minimizedAffinity'),c.GetProp('RMSDvsScaffold')))
view.addModel(c_1,'mol')
z= view.getModel()
z.setStyle({},{'stick':{'colorCarbon':'gray','radius':0.1,'opacity':1}})
view.zoomTo()
view.show()
Score: -0.07111 | RMSD vs Scaffold: 0.7638085165799083 Score: -5.71039 | RMSD vs Scaffold: 0.5227661054429604 Score: -5.83819 | RMSD vs Scaffold: 0.38256257527364096 Score: -5.09564 | RMSD vs Scaffold: 0.6511503413191146 Score: -5.74657 | RMSD vs Scaffold: 0.8141302186996873 Score: -5.22347 | RMSD vs Scaffold: 0.6442026730773478 Score: -6.29610 | RMSD vs Scaffold: 0.3712376570338742 Score: -6.22478 | RMSD vs Scaffold: 0.4242543494178937 Score: -6.32058 | RMSD vs Scaffold: 0.4232643866426752 Score: -6.24476 | RMSD vs Scaffold: 0.37265014155371
代码
文本
参考
如果你使用这个notebook中的工具,记得引用相关文献
1. Jupyter Dock
Ruiz-Moreno A.J. Jupyter Dock: Molecular Docking integrated in Jupyter Notebooks. https://doi.org/10.5281/zenodo.5514956
2. Autodock Vina
Eberhardt, J., Santos-Martins, D., Tillack, A.F., Forli, S. (2021). AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings. Journal of Chemical Information and Modeling.
Trott, O., & Olson, A. J. (2010). AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading. Journal of computational chemistry, 31(2), 455-461.
3. LeDock
Wang Z, Sun H, Yao X, Li D, Xu L, Li Y, et al. Comprehensive evaluation of ten docking programs on a diverse set of protein–ligand complexes: the prediction accuracy of sampling power and scoring power. Phys Chem Chem Phys. 2016;18: 12964–12975. https://doi.org/10.1039/C6CP01555G.
4. AutoDock Tools
Morris, G. M., Huey, R., Lindstrom, W., Sanner, M. F., Belew, R. K., Goodsell, D. S., & Olson, A. J. (2009). AutoDock4 and AutoDockTools4: Automated docking with selective receptor flexibility. Journal of computational chemistry, 30(16), 2785–2791. https://doi.org/10.1002/jcc.21256.
5. Pymol API
The PyMOL Molecular Graphics System, Version 1.2r3pre, Schrödinger, LLC.
6. OpenBabel
O'Boyle, N.M., Banck, M., James, C.A. et al. Open Babel: An open chemical toolbox. J Cheminform 3, 33 (2011). https://doi.org/10.1186/1758-2946-3-33.
7. RDKit
RDKit: Open-source cheminformatics; http://www.rdkit.org
8. py3Dmol
Keshavan Seshadri, Peng Liu, and David Ryan Koes. Journal of Chemical Education 2020 97 (10), 3872-3876. https://doi.org/10.1021/acs.jchemed.0c00579.
9. PDBFixer
P. Eastman, M. S. Friedrichs, J. D. Chodera, R. J. Radmer, C. M. Bruns, J. P. Ku, K. A. Beauchamp, T. J. Lane, L.-P. Wang, D. Shukla, T. Tye, M. Houston, T. Stich, C. Klein, M. R. Shirts, and V. S. Pande. 2013. OpenMM 4: A Reusable, Extensible, Hardware Independent Library for High Performance Molecular Simulation. Journal of Chemical Theory and Computation. ACS Publications. 9(1): 461-469.
10. MDAnalysis
R. J. Gowers, M. Linke, J. Barnoud, T. J. E. Reddy, M. N. Melo, S. L. Seyler, D. L. Dotson, J. Domanski, S. Buchoux, I. M. Kenney, and O. Beckstein. MDAnalysis: A Python package for the rapid analysis of molecular dynamics simulations. In S. Benthall and S. Rostrup, editors, Proceedings of the 15th Python in Science Conference, pages 98-105, Austin, TX, 2016. SciPy, doi:10.25080/majora-629e541a-00e.
N. Michaud-Agrawal, E. J. Denning, T. B. Woolf, and O. Beckstein. MDAnalysis: A Toolkit for the Analysis of Molecular Dynamics Simulations. J. Comput. Chem. 32 (2011), 2319-2327, doi:10.1002/jcc.21787. PMCID:PMC3144279.
11. ProLif
chemosim-lab/ProLIF: v0.3.3 - 2021-06-11.https://doi.org/10.5281/zenodo.4386984.
12. Fpocket
Le Guilloux, V., Schmidtke, P. & Tuffery, P. Fpocket: An open source platform for ligand pocket detection. BMC Bioinformatics 10, 168 (2009). https://doi.org/10.1186/1471-2105-10-168.
13. Smina
Koes, D. R., Baumgartner, M. P., & Camacho, C. J. (2013). Lessons learned in empirical scoring with smina from the CSAR 2011 benchmarking exercise. Journal of chemical information and modeling, 53(8), 1893–1904. https://doi.org/10.1021/ci300604z
代码
文本
点个赞吧
推荐阅读
公开
Jupyter_Dock | 反向对接
liyq@dp.tech

发布于 2023-06-15
3 转存文件
公开
Jupyter_Dock | 对接结果分析
liyq@dp.tech

发布于 2023-06-15
3 转存文件