需要的软件:
1、处理配体和受体的软件,这里推荐Maestro,MOE,或者开源软件ADFR Suite,Autodock tool,也可以使用python包meeko
2、vina.exe软件,用来做对接的程序,1.2以上版本已经可以与python连用,我使用的是最新版1.2.5版本
3、准备好pdb文件和小分子文件(PDB已去掉配体,小分子是sdf或者mol2格式)
多配体对接准备:采用auto dock vina 官方的例子
注:参考AutoDock Vina 1.2.3使用教程(6)——多配体Docking篇 - 化学系胖子不吃饭的文章 - 知乎 https://zhuanlan.zhihu.com/p/435331250
受体:PDB:5x72
配体:PDB:5x72中的两个立体异构体分子
受体和配体的获取与准备:
受体获取方法可以直接从PDB数据库中搜索PDB的id:5x72下载pdb格式,然后去除结构中的配体和水;然后进行加氢处理,输出格式的后缀是.pdbqt,可以用软件ADFR Suite 中的prepare_receptor文件,需要进入ADFR安装的bin目录用cmd运行,文件也要放在该目录dbqt得到5x72_receptor.pdbqt
prepare_receptor -r 5x72_noligand.pdb -o 5x72_receptor.pdbqt -A 'hydrogens'
配体获取方法有很多,可以直接从maestro中导出配体,建议用mol2格式,也可以去一些化合物数据库直接下载,然后进行配体准备,方法1:配体中可能会缺少氢原子,可以用python的meeko三方库,mk_prepare_ligand.py文件在github中搜就有
mk_prepare_ligand.py -i 5x72_ligand1.mol2 -m -o 5x72_ligand1.pdbqt --add_hydrogen --pH 7.4
mk_prepare_ligand.py -i 5x72_ligand2.mol2 -m -o 5x72_ligand2.pdbqt --add_hydrogen --pH 7.4
方法2:配体结构文件AutoDockTools读取,AutoDockTools不能读取sdf文件,因此选择mol2文件依次点击先读取文件5x72_ligand1.mol2,然后点击”Ligand“→→”Choose“→”5x72_ligand1.mol2“→”Select Molecule for AutoDock4“→”确定“,然后再次点击”Ligand“→”Output“→”Save as PDBQT“→”保存为5x72_ligand1.pdbqt,5x72_ligand2.pdbqt类似。
生成对接盒子
设置对接盒子(Grid box),即定义配体在蛋白口袋中的搜索空间,对于Vina力场和AD4力场均可以通过AutoDockTools对对接盒子参数进行设置:
将5x72_receptor.pdbqt文件用AutoDockTools读取,依次点击“Grid”→“Macromolecule”→“Choose”→"5x72_receptor"→“Select Molecule”;后依次点击“Grid”→“Grid Box”,在对话框中通过调节滚轮来调整Grid Box的大小和位置,一般选择晶体原配体的位置,如果不能肯定原配体的位置,可以将未处理的pdb文件重新导入到AutoDockTools中,由于蛋白质晶体结构中有配体分子,因此可以通过原配体的位置作为参考来设置盒子的位置。调整好Grid Box的大小和位置后,将Center Grid Box和x、y、z-dimension的数据记录在命名为5x72_receptor_vina_box.txt
的文本中,e.g.
center_x = -15
center_y = 15
center_z = 129
size_x = 30
size_y = 24
size_z = 24
5x72_receptor_vina_box.txt
文件是vina力场和vinardo力场专用的输入文件之一,需要保存在工作路径上。如果是采用AD4力场,则需要通过prepare_gpf.py脚本生成affinity maps文件
pythonsh /your/path/AutoDock-Vina-1.2.3/example/autodock_scripts/prepare_gpf.py -l R-5x72_ligand1.pdbqt -r 5x72_receptor.pdbqt -p npts='80,64,64' -p gridcenter='-15,15,129' -o 5x72_receptor1.gpf
pythonsh /your/path/AutoDock-Vina-1.2.3/example/autodock_scripts/prepare_gpf.py -l R-5x72_ligand2.pdbqt -r 5x72_receptor.pdbqt -p npts='80,64,64' -p gridcenter='-15,15,129' -o 5x72_receptor2.gpf
此处需要注意的是,命令行中`-l` 的参数只需要输入` 5x72_ligand1.pdbqt`或者` 5x72_ligand2.pdbqt`,不能两者都输入,否则此命令将无法运行。另外,通过`-p npts`和 `-p gridcenter`可以对接盒子参数进行手动设置,准确度可能比自动生成的高。命令运行成功后会生成` 5x72_receptor1.gpf / 5x72_receptor1.gpf`文件,内容如下:
npts 80 64 64 # num.grid points in xyz
gridfld 5x72_fix.maps.fld # grid_data_file
spacing 0.375 # spacing(A)
receptor_types A C OA N SA HD # receptor atom types
ligand_types A C F OA N HD # ligand atom types
receptor 5x72_fix.pdbqt # macromolecule
gridcenter -15 15 129 # xyz-coordinates or auto
smooth 0.5 # store minimum energy w/in rad(A)
map 5x72_fix.A.map # atom-specific affinity map
map 5x72_fix.C.map # atom-specific affinity map
map 5x72_fix.F.map # atom-specific affinity map
map 5x72_fix.OA.map # atom-specific affinity map
map 5x72_fix.N.map # atom-specific affinity map
map 5x72_fix.HD.map # atom-specific affinity map
elecmap 5x72_fix.e.map # electrostatic potential map
dsolvmap 5x72_fix.d.map # desolvation potential map
dielectric -0.1465 # <0, AD4 distance-dep.diel;>0, constant
注意:
gpf文件中的ligand_types只包含多个配体中的其中的一个分子的原子类型,如果对接的两个分子具有不同类型的原子,需要在gpf中手动增补不同的原子类型。最简单获得原子类型的方法肯定是将上一条命令里面的-l 参数改为另外一个分子,然后对比两个gpf文件中的ligand_types,将不同的原子类型补充在其中一个5x72_fix.gpf文件中;同时map文件也需要补充。本例的两个配体分子互为立体异构体,所有的原子类型均一致,因此不需要修改gpf文件。
使用vina对接:win版本
(1)如果采用AUTO DOCK4力场对接需要提供原子类型的映射表,也就是上面是gpf文件。
D:\Vina>vina_1.2.5_win.exe --ligand 5x72_ligand1.pdbqt 5x72_ligand2.pdbqt --maps 5x72_fix --scoring ad4 --exhaustiveness 32 --out 5x72_ligand_ad4_out.pdbqt > 5x72_ligand_ad4_out.log
(2)如果采用Vina力场,就直接得多,不需要提供gpf或者map文件。只需要确保当前目录下有受体蛋白、配体的pdbqt文件和包含Grid Box信息的txt文件即可5x72_receptor_vina_box.txt
。一般情况下,采用Vina力场的计算速度会于AutoDock4力场。
D:\Vina>vina_1.2.5_win.exe --receptor 5x72_receptor.pdbqt --ligand 5x72_ligand1.pdbqt 5x72_ligand2.pdbqt --config 5x72_receptor_vina_box.txt --exhaustiveness 32 --out 5x72_ligand_vina_out.pdbqt > 5x72_ligand_vina_out.log
(3)使用Vinardo力场,只需要在vina命令中添加关键词 --scoring vinardo
D:\Vina>vina_1.2.5_win.exe --receptor 5x72_receptor.pdbqt --ligand 5x72_ligand1.pdbqt 5x72_ligand2.pdbqt --config 5x72_receptor_vina_box.txt --scoring vinardo --exhaustiveness 32 --out 5x72_ligand_vina_out.pdbqt > 5x72_ligand_vina_out.log
结果分析
查看生成的out文件,选择用pymol,打开pdbqt文件,如果只看到一个配体那么需要用文本打pdbqt文件删除model中的空格,但是不删除model间的空格,如下图红色标记空格删除,蓝色标记空格不删,直到文件model中空格全部处理