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