DOCK6.9(III) DOCK6.9 使用概论及刚柔性对接理论DOCK6.9命令行DOCK6命令参数使用及模式选择 参数处理输入文件格式刚性与柔性对接Anchor-and-Grow算法细节删减构象搜索树生长树及统计刚性和柔性对接参数表
DOCK6.9 使用概论及刚柔性对接理论
注:在这里我准备使用Docking(半柔性对接)结合Amber Score以及DOCK6.9自带的Fragment based De novo药物设计。但实际上DOCK6.9的功能还是很强大的。虽然只有UCSF的人在用,但其实一直在更新。据有经验的人说Docking用Amber Score来打分的话如果跑完整个流程会很好,以及原本的格点打分再用GA/SA打分进行而二次打分效果也不错,所以就试试咯,反正收费的软件也用不起,还个个都包装的生怕有人偷走了,能用啥用啥咯。
DOCK6.9命令行感觉干写下来可能也就是有个印象,但该写还是写下比较好。只写了用得上的。其他的就先不写了。
DOCK6命令参数使用及模式选择基本的命令方式如下:
// DOCKUSAGE:dock6 -i dock.in [-o dock.out][-V]OPTIONS:-i dock.in #包含用户用作输入的参数文件-help #这就不用说了吧-v #贴心的为用户选择的打分函数提供介绍和一些善意的警告-o dock.out #输出的参数、对接后分子的信息和所有被警告的信息但实际上呢,DOCK6可以用多种方式来进行运行的。包括以下方式:
1.Interactive mode // Interactive modeUSAGE:dock6 -i dock.in这种方式呢实际上是为了与特定的docking和默认值来进行的,也就是说可能只能用一个文件。这个模式最好用来调试最初的输入文件和小型计算的时候使用。
2.Batch mode // Batch modeUSAGE:dock6 -i dock.in -o dock.out这种方式呢实际可用于长期计算,并且输入文件可以交互生成(不知道什么意思。。。)
2.Parallel DOCK // *Parallel DOCKUSAGE:mpirun [-machine machfile][-np #_of_proc] dock.mpi -i dock.in -o dock.out [-V] OPTIONS:-machinefile #包含可用的电脑节点名称 -np#处理器数量,与machinefile行数相同这个命令是用来并行DOCK6指令的时候使用。十分有用!
安装好的DOCK6可以多个处理器上进行。而效果更上升是在多于2个节点的情况下出现的。
特别注意!!!MPICH2的用法:需要命令行初始化。步骤如下:
创建mpd.conf 文件包含secretwird=mysecretword在用户路径下创建包含机器名称的mpd.hosts文件通过mpdboot使用MPICH2通过执行mpdtrace -l 来验证MPICH2的使用用mpiexec和mpirun来执行DOCK我需要的命令大概是这么多。还有其他的就不写了。
参数处理Interactive mode
DOCK会要求用户输入适当的参数,而参数的基本格式如下:
对应该变量一定有一个确定的值,而legal values可以限定输入值。格式如下:
// Parameter format exampleExample A: Program_location [Hello World!]():Example B: #_red_balloons[99] ():Example C: glass_status [half_full](half_full half_empty):Batch mode
在这种模式下,参数的输入可以写成:
DOCK使用的文件需要用mol2的形式输入。而在使用前可以用Chimera对配体进行准备,利用mdsy力场(mdsy不是对大分子比较好嘛。。。)进行准备。PS:我这里为了达成自动化,所以使用了openbabel-2.4.1的转化(不知道为什么openbabel-3.0.0始终安不上),命令是:
// Openbabel命令smi转mol2:obabel in.smi -O outfile.mol2 - - gen3D 或 obabel -:”CCCC" -O outfile.mol2 - - gen3Dpdb转mol2并补氢:obabel in.pdb -O outfile.mol2 -hconfab构象搜索例子:obabel bostrom.sdf -O confs.sdf --confab --conf 100000obabel confs.sdf -oconfabreport -xf bostrom.sdf -xr 1.0重要参数:--gen2D 自动生成2D平面图片--gen3D 自动生成3D坐标--confab 构象搜索,文献http://jcheminf.springeropen.com/articles/10.1186/1758-2946-3-8-h / -d 自动加/减氢原子-p 根据pH值加氢--partialcharge <method> 加电荷 eem, qeq, gasteiger, mmff94等 刚性与柔性对接利用Archor-and-Grow算法完成,这种算法已经过了1043 protein-ligand对的验证
Anchor-and-Grow Archor-and-Grow Ligand中最大的子结构被识别(见刚性片段的识别)并通过与将中心的重原子与受体表面向配对的方式(见确定ligand方向)刚性地放入活性位点中(取向)。通过打分函数和能量最小化的方式(见打分和最小化)。而后总体上这些取向会根据打分排序,根据RMSD进行聚类,而后进行剪枝(见修剪构象搜索树)而后剩下的配体的柔性部分会根据刚性主体在受体内部生长(见柔性层识别) 算法细节 刚性结构的识别 环分割。环内的原子都被视为刚性,这是一种对于分子灵活性的第一阶估计,而因为一些非芳香环中同样可具有一些可旋转性。当处理糖的两种构象的时候,需要将各个环的构象作为分开导入的分子。而其他键也可以被用户作为刚性键(双键、三键)。可旋转键的识别。有一个可编辑的文件中每一个标签与各种可旋转键相关。而参数文件可根据flex_definition_file参数来判断。文件中的每一个标签包含着基于原子种类和化学环境的一个对于已经成键的原子的定义。每个标签被标记为可最小化的(不太明白)。有代表性的只是有一些双键属性的键被包括在可缩小的范围内从而使得平面得以保持。每一个标签都与一个有偏向性的可旋转位点相关。每一个可旋转键的所在位置被用于将分子分为刚性的切片。切片是包含非旋转键的最大原子的集合。可旋转层的识别
有一个对于切割片断所含原子数的限制以及anchor数目的限制。有三个参数来限制: //刚性片断参数min_anchor_size:5limit_max_anchors:yesmax_anchor_num:5
意思很明显。而同样也可以根据用户所指定的特定的来指定。
//指定特定的anchoruser_specified_anchor yesatom_in_anchor C16,10当一个anchor被选择后分子会被分为不重叠的切片,将它们同心地围绕anchor片段排列。片段首先根据最内层被重新连接到锚,并且首先在最大片段的层内被重新连接。
锚分别处理(定向、刻痕和/或最小化)。在构象搜索过程中,剩余的片段随后被重新连接。受体和配体之间的相互作用能可以用一个单纯形极小化器来优化(见极小化)。
DOCK6从6.1版开始,有两种修剪方法。第一种方法是较早版本中存在的方法。它是默认值,对应于输入参数pruning_use_clustering = yes。在这种方法中,修剪尝试使用自上而下的修剪算法来保留最佳,最多样化的配置,其过程如下。根据得分对配置进行排名。排在最前的配置被用作第一轮修剪的参考配置。所有剩余的配置均被视为删除的候选配置。计算每个候选项与参考配置之间的均方根距离(RMSD)。然后使用不等式根据其排名和RMSD对每个候选人进行评估,以将其删除:
如果该因子大于number_confs_for_next_growth,则视情况除去该候选对象。基于此因素,具有2级和彩色的夏天的配置与具有20级和2.0埃RMSD的配置相当。然后将在第一遍清除后仍然存在的下一个最佳评分配置放在一旁,并用作第二轮修剪的参考配置,依此类推。这种修剪方法会将其搜索时间偏向对一组更多样化的结合模式进行采样的分子。随着num_anchors_orients_for_growth以及number_confs_for_next_growth的值增加,锚定优先方法将进行详尽的搜索。
在第二种方法中,目标是使采样偏向接近正确结合模式的构象(使用实验解析结构的测试集进行优化)。与上面的方法一样,该算法对生成的姿势和构象进行排序。然后,删除所有违反用户定义分数截止的姿势。为了提高计算速度,还可以将剩余的列表缩减为用户定义的长度。在这种方法中,采样是朝着更接近通过实验确定的结合位点采样的分子进行的,结果是最终姿势的多样性大大降低。
如果要探索骨架的的多样性,当然选择第一种是最好的。我忽然发现啊。如果根据dock6.9的方式去开发fragment-based的药物设计方法,似乎也可以呀。识别anchor可以写成一个基于目前参数的生成anchor(改变环的结构),而后链接anchor同样可以做成一个policy,图和SMILES似乎都能做(参考来老师的合成路线的发展的思路。)不过都是后话了,都是后话了。(反正也不重要,也没人看hhh)不过要考察下打分函数。
生长树及统计DOCK6.9是基于广度优先搜索(关于图的算法以后再去熟悉)来完成对于配体构象的搜索,每次生长的过程中都会对树进行剪枝来移除不适合的构象。而为了是的储存空间使用够充分,DOCK一次只保存一个等级的生长。如果想要想把配体的生长树建立,需要做以下事情:
保存所有等级的生长的;在生长过程中将每个构象与他的母构象连接;将生长树分支打印为multi-mol2文件。这个新实现的功能允许可视化生长的所有阶段,并优化当前DOCK例程的行为。请注意,可以使用UCSF Chimera程序中的Viewdock模块轻松查看生长树。也可以使用此方法直接访问有关构象者编号,锚定号,母构象者其他信息。
对于生长树文件的解读放在案例重复再说吧。