07.01.2013 Views

AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...

AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...

AutoDock 2.0 Simulated Annealing 在以前使用的是模拟退火算法 ...

SHOW MORE
SHOW LESS

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-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!