RosettaDock4.0:蛋白-蛋白复合物对接预测

一、前言
蛋白-蛋白对接是一个既复杂又重要的话题。从一开始的基于FFTs算法的刚性对接ZDOCK发展到现在整合实验信息与多步骤优化的HADDOCK、ClusPro、SwamDock等等的出现,该领域的算法一直不断地升级迭代。
RosettaDock是蛋白-蛋白对接领域的一名老将,久经CAPRI的考验。特别擅长于蛋白-蛋白复合物局部构象的探索。许多已发表的文章都是使用RosettaDock进行最后的优化,其地位可见一斑。
近年来,RosettaDock也发展出了针对特殊蛋白家族提供的算法如针对抗体-抗原对接的SnugDock、同源多聚体组装对接的SymmetricDock、多肽-蛋白对接的FlexPepDock、以及最新的Motif Score打分函数等等。
本文将简要的介绍常规的RosettaDock4.0 蛋白-蛋白复合物对接预测的基本框架和用法。
二、基本原理和算法
RosettaDock4.0的基本算法如下: (发展过程中还有一些变种Protocol)

整个对接流程分为两个阶段,在第一个低分辨率阶段,蛋白质之间的侧链被一个粗粒化球所替代。直接搜索蛋白质之间的骨架形状相适配的程度。在第二个阶段才会考虑全部的侧链,计算更加精确的相互作用能量。
起始的局部干扰,将初猜构象的其中一个组分随机平移和转动8埃和8°(或8埃,3°)。
在低精度阶段,进行500次刚性体的移动,其中可以选择是否进行Ensemble的构象交换选择,模拟构象选择的过程,此阶段使用的是motif_dock_score进行打分。
在高精度阶段:
(1)优化复合物侧链构象并能量最小化,避免侧链packing不同对打分造成严重影响。
(2)运行内部循环: 运行50次MCMCycle, 每次MCMCycle包括: 刚性体移动、RotamerTrials优化每一个氨基酸为最低能量状态、并判断能量是否大于15REU,如果能量下降太小,运行一次刚性体之间的能量最小化。
(3) (每8步MCMCycle运行一次full-atoms Repack(repack模式可以分为rt_min或sc_min)
(4) 外部循环: 重置初始状态,并运行4次重复的内部循环
(5) 最后从整个mc轨迹中恢复能量最低的构象(最后会再进行一次能量最小化)。
如果用一张图来生动地说明RosettaDock是如何进行对接的:

RosettaDock对接可以理解为就是在模拟两个分子在水溶液下随机运动的真实过程! 经过足够大的采样,我们就可以找到两个蛋白相互作用可能能模式。当然这个过程中还涉及两个基本问题: 构象选择(Conformation)和诱导契合(Induce-fit)。
2.1 构象选择与EnsembleDock
在RosettaDock4.0 中,启用Ensemble模式可以有效地模拟对接时的构象选择。

简而言之就是通过预先生成了许多柔性的构象,并将他们对齐到一个对接构象上,然后进行能量的计算,看看哪个构象与目前的对接模式最为符合,来模拟构象选择的过程。
在RosettaDock4.0中,低分辨率阶段使用了motif_dock_score取代了原先的interface_cen,使得near-native的构象在低分辨率阶段更加富集!
2.2 诱导契合
由于蛋白质本身的柔性,两个大分子相互作用的过程中,会发生一定的局部柔性变化,来让二者之间结合更加稳定。
在2007年,wang chu通过骨架原子的能量最小化可以模拟诱导契合的过程。但耗时增加6-7倍,并且仅限于小幅度的构象变化。这部分方法没有加入到标准流程中。
在2008年, Sidhartha Chaudhury在ensemble在尝试加入诱导契合相关的步骤,结果增加了复合物native-contacts的比例。这部分方法也没有加入到标准流程中。
在2011年时,SnugDock的提出更好地模拟诱导契合的过程,通过在对接过程中,可以对特定Loop区进行优化来探索稍大一些的构象变化。

模拟这个过程可以矫正一定的模型误差。但是RosettaDock本身并没有直接兼容这个过程,因为太过耗时,使用loop-refine模式比标准模式耗时增加了17-60倍。当然对接的结果也比单独使用EnsembleDock要好一些(针对同源模型)。
三、RosettaDock 4.0的基本使用
3.1 前期结构准备
RosettaDock是基于MCM的对接算法,并不同于其他的刚性对接软件,其并不擅长于全局对接,因为整体过程的计算效率太低,因此在进行RosettaDock之前,一般会使用ZDOCK等进行初步地构象摸索。选取一个或多个看起来比较合理的构象作为出发。
可选择的FFTs服务器:
(1)ZDOCK server: http://zdock.bu.edu
(2)SmoothDock server: http://structure.pitt.edu/servers/smoothdock
(3)ClusPro: http://cluspro.bu.edu
(4)Haddock: http://haddock.chem.uu.nl
有了初猜结构complex.pdb后需要对两个对接分子进行预先的优化,保证在非结合界面处的氨基酸都处于能量最低的状态,避免他们对后续的打分排名造成干扰影响。
在Rosetta中可以使用PrePack app来进行。
Partners:设定对接刚性体的组成。比如我们只有两条链H和A,那么就直接设定为H_A即可。如果我们有三条链H、L、A,其中HL链为二聚体,A为单体,那么此时就需要设置为LH_A。如此类推…
Example1: 标准流程
docking_prepack_protocol.macosclangrelease -s complex.pdb -docking:partners H_A -docking::dock_rtmin true -ex1 -ex2aro
Example2: EnsembleDock模式
需要提前准备好ensemble1.list和ensemble2.list, 这个文件中记载了两个对接组分的PDB文件的绝对路径。
input_files/COL_D_ensemble/COL_D_0001.pdb
input_files/COL_D_ensemble/COL_D_0002.pdb
input_files/COL_D_ensemble/COL_D_0003.pdb
运行:
docking_prepack_protocol.macosclangrelease -s complex.pdb -docking:partners H_A -docking::dock_rtmin true -ex1 -ex2aro -ensemble1 ensemble1.list -ensemble2 ensemble2.list
一般多构象选择在5-10个时,运行效率比较高。
运行完毕后ensemble.list的格式会发生改变:
input_files/COL_D_ensemble/COL_D_0001.pdb.ppk
input_files/COL_D_ensemble/COL_D_0002.pdb.ppk
input_files/COL_D_ensemble/COL_D_0003.pdb.ppk
0.77058
0
1.00377
-93.3588
-94.2715
-93.9065
3.2 运行RosettaDock 4.0
运行RosettaDock非常方便,一条命令就完全足够了。
注: motif_dock_score bin文件需要输入绝对路径, 需要根据实际情况调整。并且motif_dock_score十分吃内存,一个进程大概3GB左右。注意控制并行进程数量,不要超出上限导致崩溃。如果不想使用motif_dock_score, 只要将与mh相关以及-docking_low_res_score motif_dock_score的flag删除即可。
motifdock_score bin的绝对路径例子: `/usr/local/rosetta_src_2019.21.60746_bundle/main/database/additional_protocol_data/motif_dock/xh_16`
Example1: 运行local_dock标准计算流程
docking_protocol.linuxgccrelease -s prepacked.pdb -partners H_A -dock_pert 3 8 -ex1 -ex2aro -spin -use_input_sc -dock_mcm_trans_magnitude 0.7 -dock_mcm_rot_magnitude 5.0 -nstruct 1000 -mh:path:scores_BB_BB [path to score tables + score table prefix] -mh:score:use_ss1 false -mh:score:use_ss2 false -mh:score:use_aa1 true -mh:score:use_aa2 true -docking_low_res_score motif_dock_score
Example2: 运行EnsembleDock:
docking_protocol.linuxgccrelease -s prepacked.pdb -partners H_A -dock_pert 3 8 -ex1 -ex2aro -spin -use_input_sc -dock_mcm_trans_magnitude 0.7 -dock_mcm_rot_magnitude 5.0 -nstruct 1000 -ensemble1 ensemble1.list -ensemble2 ensemble2.list -mh:path:scores_BB_BB [path to score tables + score table prefix] -mh:score:use_ss1 false -mh:score:use_ss2 false -mh:score:use_aa1 true -mh:score:use_aa2 true -docking_low_res_score motif_dock_score
注1: 采样1000~5000个构象就比较充分了。
注2: 如果不想局部探索构象变化过大偏离(比如不想让一个分子的状态掉了个头或完全翻转时),可以取消-spin选项,那么分子的朝向变化就会比较小。
3.3 局部构象优化
有时候,我们得到的最终构象变化过大可能由于一些小的骨架冲突导致复合物整体能量较高,那么此时我么就可以采取没那么激进的采样策略。
Example: local_refinement
docking_protocol.linuxgccrelease -s prepacked.pdb -partners H_A -dock_pert 3 8 -ex1 -ex2aro -use_input_sc -dock_mcm_trans_magnitude 0.1 -dock_mcm_rot_magnitude 3.0 -nstruct 100 -docking_local_refine
如果想让蛋白复合物构象更合理一些,可以使用FastRelax对复合物进行放松。
四、结果分析
4.1 能量和界面参数分析
蛋白-蛋白对接的分析官方教程是推荐使用total_score和I_sc两项。对于初步分析来说已经完全足够了。如果还想做更加深入的分析,可以使用Rosetta InterfaceAnalyzer app来进行复合物界面分析。
我们可以得到更多的数据,比如包埋表面积(dSASA_int)、形状互补度(shape_complementarity)、氨基酸堆积紧密度(packstat)、未饱和成键的极性原子数量(delta_unsatHbonds)、氢键数量和氢键能量等等…
可以经过一些经验参数对构象进一步地过滤,比如:
(1)蛋白-蛋白复合物包埋表面积在1100~1600Å^2。
(2)蛋白-蛋白复合物形状互补度大致在0.6-0.8之间,说明模型结果更佳
(3)氨基酸堆积紧密度(packstat)在0.65以上,那么模型较优
(4)未饱和成键的极性原子数量(delta_unsatHbonds)数量越少,说明界面极性和非极性局部区域匹配地更好
4.2 初猜构象的影响
除此以外,蛋白-蛋白对接精度和可信度还和初始构象等有比较大的关系。如果一开始的初猜构象和真实相差较远,那么优化出来的构象也会偏离较远。
比如不同的刚性对接软件,给出的模型质量是不一样的。

根据2015年的一篇跑分文章,可见使用ZDOCK3.0.2提供的初始构象质量可能越好。当然也可以使用多种软件一起预测,选取更多的初始构象。
4.3 复合物的类型
不同复合物类型的对接精度也有所不同。
根据Docking Benchmark Version 5的组成分类:
(1)酶相关
(2)抗体-抗原复合物
(3)其他(others)
根据对接难度等级分为:
(1)Rigid body
(2)Medium
(3)Difficult
RosettaDock3.2的跑分结果:

如果你的复合物类型是酶-抑制物或抗体-抗原复合物类型时,成功率会稍高一些,如果复合物类型属于其他分类,那么精度就有所下降了。但并非绝对,还要看是否属于Rigid body下的分类。
5 如何更好地提升模型的精度?
目前整体的发展趋势趋向于基于实验低精度信息整合的蛋白-蛋白对接。如ZDOCK最近发展出ZDOCK_XL基于交联质谱信息的刚性对接、ClusPro基于SAXS小角衍射数据的对接、还有HADDOCK基于NMR数据的限制来进行对接,可谓百花齐放,其中以HADDOCK为首。

在RosettaDock中,我们可以利用限制参数来影响对接的过程,以下是一些可用实验信息整合对接的策略:
(1)利用实验点突变信息,发现基本的结合区域,并限制热点残基之间的距离
(2)如果有同源蛋白的复合物,我们也可以直接将对接组分直接对齐到同源蛋白上作为初猜构象(很大帮助)
(3)随着质谱交联技术成本的降低,可以获取到复合物界面氨基酸的相互作用对的信息,帮助生成初猜构象和生成距离限制。
(4)根据文献,封锁掉非活性相关的区域。
最后可以采取计算量更大一些的分子动力学对复合物构象的稳定性进行模拟,如果是一些不合理的构象,我们可以从动力学的轨迹中观察到两个对接组分的快速解离。