AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...
AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...
AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
<strong>AutoDock</strong>在 <strong>2.0</strong>以前使用的是模拟退火算法( <strong>Simulated</strong> <strong>Annealing</strong><br />
Algorithm ),在其后的版本中改为了拉马克遗传算法 (Lamarckian Genetic<br />
Algorithm,LGA) 。 Autodock和 Dock一样,都是基于格点( grid)的计算,首先用围绕受体活性位点的氨基酸残基形成 box<br />
,然后用不同类型的原子作为探针( probe)进行扫描,计算格点能量,然后对配体在 box范围内进行构象搜索( conformati<br />
onal<br />
search ),最后根据配体的不同构象 (conformation), 方向( orientation)和位置( position)进行评分( scoring)<br />
,排序( ranking)。<br />
<strong>AutoDock</strong>虽然提供了诸如 ADT(<strong>AutoDock</strong><br />
Tools) , BDT的图形界面工具,但是我们仍然认为其是一个字符界面运行的分子对接软。由于运算速度不快,所以在字符界面<br />
下对于运算的管理更为方便,可以将长时间的运算放在后台运行。对于输入文件的准备问题, Autodock有其自带的一些程序,<br />
比如 addsol等,同时 ADT(<strong>AutoDock</strong><br />
Tools) 也提供了一些 python脚本(路径: MGLTools/MGLToolsPckgs/<strong>AutoDock</strong>Tools/Utilities24),可以代替这些<br />
程序来进行输入文件的处理。<br />
本手册按照以下顺序编写:<br />
Autodock分子对接流程<br />
<strong>AutoDock</strong>结果分析<br />
<strong>AutoDock</strong>用于虚拟筛选<br />
<strong>AutoDock</strong> Tools简介<br />
※※※※※※ 手册以外的话 ※※※※※※<br />
1、 autodock 只能对单分子文件对接 ( 一个文件只含有一个分子),不能对多分子文件筛选,所以,对于含有多个分子的文件(<br />
比如 multi_mol2以及 sdf),需要将之分解为多个单分子文件。有以下方法实现:<br />
i) 使用 babel:<br />
$babel -imol2 specs_p0.0.mol2 -o specs.mol2 -split<br />
将生成 specs0001.mol2,specs0002.mol2 ...<br />
ii) 使用 splitmol( DOCK软件包中程序,只能对 mol2和 pdb文件进行分解):<br />
$mkdir specs_p0.0<br />
$cd specs_p0.0<br />
$splitmol -mol2 ../specs_p0.0.mol2<br />
将生成 split00001,split00002,...<br />
2、利用上面命令分解得到的单分子文件,外面的名称和分子内部的名称不符,可以通过编写教本批量重命名:<br />
适用于 ZINC数据库中的 mol2数据集:<br />
for i in split*<br />
do<br />
mv $i $(grep ZINC $i).mol2<br />
done<br />
提取包含 ZINC所在行的字段,在 ZINC数据库中,恰巧为分子的名称。最后,全部命名为 ZINC××××××.mol2。<br />
3、 <strong>AutoDock</strong>官方发布版本不能用于并行运算(有的课题组开发了并行版本,但并未发布)。为了提高效率,可以将几十万个<br />
分子文件分为几百个部分,每个 1000个分子。<br />
将 specs数据库的 20万个分子文件按照 1000个分子为一组(每组为一个目录),分为 20个目录<br />
$mkdir specs_0.0_01<br />
$mv specs0.0.mol2 ../specs_0.0_01 利用通配符将前 999个分子转移入新文件夹,实现分装目的。<br />
$ls ../specs_0.0_01 | wc [-w] 查看文件个数<br />
4、在 <strong>AutoDock</strong>输入文件的准备中,使用了很多外部程序,比如 Sybyl(Tripos<br />
Ltd.) 。小分子三维结构数据库都有在线免费的。如果想要构建自己的化合物库,可以用 ChemDraw(商业)或 ISIS/Draw(免<br />
费)画好后,存为二维格式(推荐用 mol格式),然后用 Corina等软件转化成三维结构。<br />
--------------------------------------<br />
※※※※※※ Autodock 分子对接流程 ※※※※※※<br />
-1-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
1、受体文件准备:<br />
Atudock运算的受体加极性氢( polar hydrogens, essential_only hydrogens), 加 Kollman<br />
United点电荷。首先把 PDB蛋白文件中除蛋白以外的所有物质全部删除(可以在 Sybyl中操作),保存未 macro.pdb。加氢加<br />
电荷通过自由软件 pmol2q可以很好实现:<br />
$pmol2q macro.pdb macro.mol2<br />
选择加氢,加电荷, pmol2q可以输出 mol2, pdbq以及 pdbqs文件。<br />
在 Autodock3中,受体的格式为 pdbqs,可以通过如下方法准备:<br />
i)通过 <strong>AutoDock</strong>软件包中程序:<br />
SGI Irix下运行:<br />
%mol2fftopdbq macro.mol2 > macro.pdbq<br />
%addsol macro.pdbq macro.pqdbs<br />
以上两个命令可以通过一个命令实现:<br />
%mol2topdbqs macro.mol2<br />
Linux下运行:<br />
$mol2topdbq macro.mol2 > macro.pdbq<br />
$addsol macro.pdbq macro.pqdbs<br />
ii)通过 ADT中 python脚本:<br />
$pythonsh $adtpy/prepare_receptor.py -r macro.mol2 [-o macro.pdbqs] -C<br />
注:<br />
-C:保留原有电荷<br />
在 Autodock4中,受体的格式为 pdbqt,与 PDB 格式类似,包含点电荷<br />
('Q') 和 <strong>AutoDock</strong>4 原子类型 ('T') 。可以通过如下方法准备:<br />
$pythonsh $adtpy/prepare_receptor4.py -r macro.mol2 [-o macro.pdbqs] -C<br />
注:<br />
也可以由 python脚本中的 pdbqs_to_pdbqt.py来将 autodock3的 gpf文件转化。<br />
-o: 不加则自动生成文件名相对应的 pdbqt文件。<br />
-C: 保留原有电荷,否则添加 Gaster电荷<br />
2、配体文件准备:<br />
在 Autodock3中,配体的格式为 pdbq,可以通过如下方法准备:<br />
i)通过 <strong>AutoDock</strong>软件包中程序:<br />
%deftors lig.mol2<br />
ii)通过 ADT中 python脚本:<br />
$pythonsh $adtpy/prepare_ligand.py -l lig.mol2 [-o lig.pdbq] -C<br />
注:<br />
-C:保留原有电荷<br />
-o:不加则自动生成文件名相对应的 pdbq文件。<br />
在 Autodock4中,配体的格式为 pdbqt. 可以通过如下方法准备:<br />
$pythonsh $adtpy/prepare_ligand4.py -l lig.mol2 [-o lig.pdbqt] -C<br />
注:<br />
也可以由 python脚本中的 pdbq_to_pdbqt.py来将 autodock3的 gpf 文件转化 :<br />
$pythonsh pdbq_to_pdbqt -s lig [-o lig.pdbqt]<br />
3、准备 GPF(grid parameter file) 文件:<br />
Autodock3:<br />
i)通过 <strong>AutoDock</strong>软件包中程序:<br />
$mkgpf4 lig.pdbq macro.pdbqs<br />
注:<br />
-2-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
程序包中有 mkgpf3,不过 mkgpf4是其修正后的版本,建议使用 mkgpf4,这个与 autodock4没有关系。<br />
ii)通过 ADT中 python脚本:<br />
$pythonsh $adtpy/prepare_gpf.py -r macro.pdbqs -l lig.pdbq<br />
Autodock4( 只能通过 ADT中 python 脚本 ) :<br />
$pythonsh $adtpy/prepare_gpf4.py -r macro.pdbqt -l lig.pdbqt [-p gridcenter='x y z'] [-o<br />
lig.macro.gpf]<br />
注:也可以由 python脚本中的 gpf3_to_gpf4.py来将 autodock3的 gpf文件转化。<br />
-o:输出文件名<br />
-p parameter=value:输入参数值<br />
注:<br />
1、准备 gpf文件时,最好通过 ADT图形界面进行,这是因为:<br />
i) gpf文件中活性位点( center<br />
grid)默认根据配体位置定义( auto),需要修改为晶体结构中配体的具体坐标值;<br />
ii)盒子( box)大小在图形界面中可以很方便的调整。<br />
iii)在虚拟筛选中需要添加更多的院子类型,在图形界面中操作非常方便。<br />
2、配体的原子类型说明:<br />
AD3和 AD4的原子类型写法差异很大,而且,在 gpf文件中,表达格式差异也很大。在 AD4中,各种原子类型写在一行中,每种类<br />
型以空格间隔,但是在 AD3中,须对每种原子类型的具体参数(作用半径)进行定义,比较繁琐。下面是两种版本中原子类型的<br />
写法:<br />
-----------------------<br />
AD3:<br />
C carbon (aliphatic)<br />
A carbon (aromatic)<br />
N nitrogen<br />
O oxygen<br />
P phosphorus<br />
S sulphur<br />
H hydrogen<br />
f iron<br />
F fluorine<br />
c chlorine<br />
b bromine<br />
I iodine<br />
-----------------------<br />
AD4(共 22种,下表中有 7中重复,在 autodocksuite-4.0.0/src/autodock-4.0.0/AD4_parameters.dat文件)<br />
H Non H-bonding Hydrogen<br />
HD* Donor 1 H-bond Hydrogen<br />
HS Donor S Spherical Hydrogen<br />
C* Non H-bonding Aliphatic Carbon<br />
A* Non H-bonding Aromatic Carbon<br />
N* Non H-bonding Nitrogen<br />
NA* Acceptor 1 H-bond Nitrogen<br />
NS Acceptor S Spherical Nitrogen<br />
OA* Acceptor 2 H-bonds Oxygen<br />
OS Acceptor S Spherical Oxygen<br />
F Non H-bonding Fluorine<br />
Mg Non H-bonding Magnesium<br />
MG Non H-bonding Magnesium<br />
P Non H-bonding Phosphorus<br />
SA* Acceptor 2 H-bonds Sulphur<br />
S Non H-bonding Sulphur<br />
Cl Non H-bonding Chlorine<br />
CL Non H-bonding Chlorine<br />
-3-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
Ca Non H-bonding Calcium<br />
CA Non H-bonding Calcium<br />
Mn Non H-bonding Manganese<br />
MN Non H-bonding Manganese<br />
Fe Non H-bonding Iron<br />
FE Non H-bonding Iron<br />
Zn Non H-bonding Zinc<br />
ZN Non H-bonding Zinc<br />
Br Non H-bonding Bromine<br />
BR Non H-bonding Bromine<br />
I Non H-bonding Iodine<br />
-----------------------<br />
注:<br />
* 默认在 gpf中存在的原子类型<br />
$bable -imol2 lig.mol2 -obox box<br />
0.375<br />
4、准备 DPF(docking parameter file) 文件:<br />
Autodock3:<br />
i)通过 <strong>AutoDock</strong>软件包中程序:<br />
$mkdpf3 lig.pdbq macro.pdbqs<br />
ii)通过 ADT中 python脚本:<br />
$pythonsh $adtpy/prepare_dpf.py -r macro.pdbqs -l lig.pdbq<br />
Autodock4( 只能通过 ADT中 python 脚本 ) :<br />
$pythonsh $adtpy/prepare_dpf4.py -r macro.pdbqs -l lig.pdbqt -p ga_num_evals=25000000 -p<br />
ga_run=2 -p ga_run=50<br />
注:<br />
也可以由 python脚本中的 dpf3_to_dpf4.py来将 autodock3的 gpf文件转化。<br />
-p parameter=value:输入参数值<br />
注:<br />
此处生成的 dpf需要编辑其中的参数,对遗传算法的精度进行设置。 dpf文件中参数设置:<br />
'ga_' 起始行参数: genetic algorithm<br />
'sw_' 起始行参数: Solis and Wets local search method<br />
ga_run:最好在 50以上(默认 10)<br />
5、通过 AutoGrid计算格点能量:<br />
$autogrid3/4 -p macro.gpf -l macro.glg<br />
注:<br />
AutoGrid默认计算 8种原子类型,可以通过修改源代码,使其计算更多院子类型的格点能量。<br />
6、通过 <strong>AutoDock</strong>进行分子对接:<br />
$autodock3/4 -p lig.macro.gpf -l lig.macro.glg<br />
注:<br />
和 AutoGrid一样, <strong>AutoDock</strong>默认计算 8种原子类型,可以通过修改源代码,使其计算更多院子类型的格点能量。<br />
7、提取结果:<br />
$get-docked lig.macro.dlg<br />
注:<br />
生成 lig.macro.dlg.pdb文件<br />
--------------------------------------<br />
-4-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
※※※※※※ <strong>AutoDock</strong> 结果分析 ※※※※※※<br />
<strong>AutoDock</strong>产生的构象和评分值(单位 kcal/mol, AD4提供了 RMSD值)保存为 PDB格式,这种格式没有 mol2格式操作方便。<br />
1、编写脚本提取 PDB文件中的评分值<br />
adgrep3(适用于 <strong>AutoDock</strong>3):<br />
egrep 'Run|Final Docked Energy' *.pdb<br />
adgrep4(适用于 <strong>AutoDock</strong>3):<br />
egrep 'DOCKED: USER Run|Cluster Rank|RMSD from reference structure|USER Estimated'<br />
*.dlg<br />
当然,也可以用 sort命令进行排序。不过,由于分值和编号不在一行中,排序后,分值和编号就不能对应起来。所以先通过查<br />
找替换把二者放在一行中,很简单,就是仅把编号后的回车符删除,这样,分值就自动退到编号的一行,然后对分值排序。在 Li<br />
nux 中,回车符为 "\n" , Windows 下为 "\r\n" 。<br />
$sort -r +n score.txt<br />
2、用于分析 <strong>AutoDock</strong>运算结果中受体-配体相互作用的图形化软件中,理论上最好用的应该是 ADT(我没有用过,在 Linux下<br />
非常慢,可能是由于从工作站上调用,显示延迟的缘故,而在 Windows机器上总是无故退出)。我用过的最好用的是 Vida( Op<br />
eneye<br />
Ltd. ),以前提供 2个月的试用版,我还申请过 1年的学术用户版,但一年后 License过期,就没的用了。当然,把系统时间调<br />
整回到 License有效期内,还是可以使用( Openeye公司的软件都是精品呵)。 Vida可以同时读入受体、参考分子(这里是晶<br />
体结构中的配体)和对接得到的构象,显示非常好看的 ribbon形态和氢键,作图效果一流,不过操作起来不是很人性化。<br />
<strong>AutoDock</strong>的手册示例中使用 Sybyl软件对结果进行分析,不过 Sybyl每次只能从 PDB文件中读入 1个分子,还是不很方便。<br />
没有尝试 UCSF chimera是不是可以,不过,看其对 DOCK处理的得心应手,应该差不多。<br />
--------------------------------------<br />
※※※※※※ <strong>AutoDock</strong> 用于虚拟筛选 ※※※※※※<br />
利用 <strong>AutoDock</strong>进行虚拟筛选: I. 目录结构:<br />
$VSTROOT<br />
$VSTROOT/Results/<br />
$VSTROOT/scripts/<br />
$VSTROOT/VirtualScreening/<br />
$VSTROOT/VirtualScreening/etc:预先对晶体复合物进行分子对接,用于重现晶体结构结合模式,以此考察分子对接软件<br />
是否适用于改体系。<br />
$VSTROOT/VirtualScreening/Ligands:包含所有小分子( pdbqt格式)<br />
$VSTROOT/VirtualScreening/Receptor: 包含所有受体和参照分子文件( pdbqt格式),以及通过 gpf生成的 map 文件 ,xy<br />
z 文件( (grid size file) , fld文件( grid field file)。<br />
$VSTROOT/VirtualScreening/Dockings :虚拟筛选时,对于每个小分子产生目录。在各目录中:将 ../Ligands/ 中对应<br />
的小分子文件复制到此处;为 ../Receptor/ 中 macro.pdbqt 以及 *map* 在此处建立快捷方式;通过 python脚本 prepare_dp<br />
f4.py生成 dpf文件;运行 autodock进行分子对接。<br />
--------------------------------------<br />
利用 <strong>AutoDock</strong>进行虚拟筛选: II. 脚本解析( csh)<br />
i) 将配体的 mol2文件转化为 pdbqt 文件 (Ligands目录):<br />
##########################<br />
#!/bin/csh<br />
foreach f(*.mol2)<br />
pythonsh $adtpy/prepare_ligand4.py -l $f [-o "$f"qt] [-d ligand_dict.py]<br />
end<br />
##########################<br />
OR:<br />
-5-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
##########################<br />
#!/bin/bash<br />
for f in *.mol2<br />
do<br />
pythonsh $adtpy/prepare_ligand4.py -l $f [-o "$f"qt] [-d ligand_dict.py]<br />
done<br />
##########################<br />
注:<br />
-d: 生成文件记录每个分子中的原子类型信息,用于下面的 autogrid计算。<br />
ii) 准备受体对接文件( Receptor 目录 :*.gpf,*.map,*.fld)<br />
##########################<br />
$pythonsh $adtpy/prepare_receptor4.py -r macro.mol2 [-o macro.pdbqt] -C<br />
$pythonsh $adtpy/prepare_gpf4.py -r macro.pdbqt -l lig.pdbqt<br />
$autogrid4 -p macro.gpf -l macro.glg<br />
##########################<br />
注:<br />
编辑 gpf文件,添加足够多的配体原子类型,然后一劳永逸地对每个原子类型进行格点能量计算。原子类型详见上一部分。<br />
iii) 准备晶体结构中配体对接文件 (etc/ 目录 )<br />
##########################<br />
#!/bin/csh<br />
mkdir 2cdz<br />
cd 2cdz<br />
cp ../../Ligands/2cdz_lig.pdbqt .<br />
ln -s ../../Receptor/2cdz.pdbqt .<br />
ln -s ../../Receptor/2cdz*map* .<br />
pythonsh $adtpy/prepare_dpf4.py -l 2cdz_lig.pdbqt -r 2cdz.pdbqt [-o 2cdz_lig_2cdz.dpf] -p<br />
ga_num_evals=25000000 -p ga_run=2<br />
unlimit stacksize<br />
autodock4 -p 2cdz_lig_2cdz.dpf -l lig_2cdz.dlg<br />
tail ind_x1hpv.dlg<br />
##########################<br />
iv) 准备配体对接文件并开始对接 (Docking 目录 ) :<br />
##########################<br />
#!/bin/bash<br />
cd Ligands<br />
ls *.pdbqt > ../Docking/ligand.list<br />
cd ../Docking<br />
for i in $(cat ligand.list)<br />
do<br />
f=${i%.pdbqt}<br />
mkdir $f<br />
cd $f<br />
cp ../../Ligands/$i .<br />
ln -s ../../Receptor/*map* .<br />
ln -s ../../Receptor/macro.pdbqt .<br />
pythonsh $adtpy/prepare_dpf4.py -l $i -r macro.pdbqt [-o $f_macro.dpf] -p<br />
ga_num_evals=25000000 -p ga_run=2<br />
autodock4 -p $f_macro.dpf -l $f_macro.dlg<br />
cd ..<br />
done<br />
-6-
E:\Ph_D\notes\<strong>AutoDock</strong>.txt 2007年 12月 1 日 10:49<br />
##########################<br />
---------------------------------------<br />
※※※※※※ <strong>AutoDock</strong> Tools简介※※※※※※<br />
<strong>AutoDock</strong> Tools属于 MGLTools软件,这是 MGL小组开发的图形软件,包含 3个模块: ADT,PMV和 Vision。<br />
MGLTools is a software developed at the Molecular Graphics Lab (MGL) of the Scripps Research<br />
Institute for visualization and analysis of molecular structures. Short description and demo<br />
of its three main applications is given below. Navigation portlet on the left has links to<br />
downloads, screenshots, documentation section of this website where you can find more<br />
information about MGLTools.<br />
---------------------------------------<br />
安装 MGLTools:两种方法:<br />
方法一:<br />
1、下载 MGLTools-1.4.5-Linux-x86-Install(32-bit)<br />
http://mgltools.scripps.edu/downloads/instructions/linux<br />
2 、 $chmod +x MGLTools-1.4.5-Linux-x86-Install<br />
3、 su 切换为 root<br />
4 、 #./MGLTools-1.4.5-Linux-x86-Install<br />
启动安装界面,默认路径为 /usr/local/MGLTools-1.4.5<br />
5、设定环境变量和系统路径:<br />
#vi /etc/bashrc<br />
export MGL_ROOT=/usr/local/MGLTools-1.4.5<br />
PATH=$MGL_ROOT/share/bin:$MGL_ROOT/i86Linux2/bin:$PATH<br />
:wq<br />
6、退出 root用户,并 source /etc/bashrc<br />
方法二:<br />
如果安装文件 MGLTools-1.4.5-Linux-x86-Install 不能运行,可以下载压缩文件<br />
mgltools_i86Linux2_1.4.5.tar.gz(32-bit),解压后进行安装<br />
$source install.sh<br />
出现图形界面,选择 non- commercial,自动选中 agree,点击 continue继续安装成功,设定变量和路径。<br />
注:两种安装方法都会出现图形界面,所以如果远程字符界面安装,建议使用第一种方法先在本地安装,再将安装好的目录压缩<br />
上传至远程目录,解压后设定变量即可。而第二种方法中会有数个压缩文件与已解压文件重复,增大容量,不建议用于以上操作<br />
。<br />
----------------------------------------<br />
-7-