转载请联系,且保留链接

使用这个代码需要蛋白具有长的柔性尾,在晶体结构中是缺失的,生物化学证据表明已知结合伴侣上尾部的特定结合位点.该代码旨在模拟长柔性尾巴的范围并确定假设的结合位点是否合理。

该工具更有用于测试关于可能的构象的假设,并探索可用的构象空间,而不是找到“唯一真正的结合模式”。 如果你的尾巴真的很灵活,它可能没有一个“真正的结合模式”。

代码和演示

代码位于rosetta/main/source/src/apps/public/scenarios/FloppyTail/

演示位于rosetta/main/tests/integration/tests/FloppyTail/

FloppyTail哲学-怎么解决问题

FloppyTail旨在“约束对接”。 当你有一个或多个相对刚性的结构时,可以使用它,并用linker链接。 对于一些情况,如最初的柔性尾巴,问题是“这条尾巴可以对接进入刚性尾巴?”对于某些情况,例如两个结构域之间的linker区域,可能是“这两个区域对接,鉴于一些构象是不可能的,因为linker不能伸展那么远?“

一般来说,FloppyTail为 FLEXIBLE linkers发挥作用。 这有两个问题。 首先,Rosetta能量函数被参数化为折叠良好的晶体蛋白质。 它只适用于灵活的linkers,因为它的物理观点不允许非结构化的可溶性蛋白质。 其次,灵活的linkers在时间上是灵活的,但是静态结构没有时间域,因此通过查看得分高的模型并不能非常有用的表达linker区域的状态。 因此,使用FloppyTail并解释其结果需要仔细考虑结果的价值。

如果你的目标是“我有两种相互连接的蛋白质,我想知道它会是什么样子” - 这是一个昂贵的问题,成功率很低。

如果你没有实验数据,你可以使用FloppyTail生成假说。看看你的结果集合,看看更好的模型中经常发生什么样的相互作用,然后考虑如何通过实验测试这些相互作用是否真实(如通过交叉链接或者突变)

也许你有一个可能存在的构象的概念,你想在试验之前进行计算检查。 在这种情况下,尝试使用约束您感兴趣的构象,以查看系统是否可以适应它。 如果你淘汰那些仍然没有你想要的互动模式,或者只能通过非常别扭的几何来实现它,那么FloppyTail就会产生一个负面结果。

如果你拥有实验结果-非常棒!约束想要走的路子。运行约束,你将获得更高质量的模型假设。或者,可以使用约束来过滤不受限制的结果,或者只是使用它们来判断模型总体是否现实。这使您可以生成系统可能执行的与您的约束条件一致的“信封”,可根据需要将其用于进一步的实验循环。

算法

该算法非常简单:在质心模式下,小/剪切/碎片移动将尾部折叠成某种形式的折叠构型,而小/剪切随重新包装而移动以改善其位置。 这在概念上类似于abinitio折叠的工作方式,虽然它不是为此目的而精炼的

该代码与质心阶段中的约束兼容(通过命令行传入)。 早期的建模使用约束和一些小小的黑科技来帮助指导模型到假设的尾结合位置。 最终,这对于原始系统来说不是必需的,但代码保留了使用约束等的能力。 更新:代码与两个阶段的约束兼容。

限制

该代码无法进行“半-从头建模”的工作,即知道一半的结构,求另一半。改代码仅测试用于构建真实情况下是松软,无序的尾巴。该代码的目的并不是折叠进精炼结构。

如果想要实现上述不能实现的目的,可以考虑使用Topology Broker‘s 的RigidChunk环境。

输入文件

可以在tests/integration/tests/FloppyTail/查看例子

  • 首先需要处理PDB文件,删除杂原子,多重定义原子和水等等
  • 该代码不会为您扩展添加。 您需要为灵活的尾部添加起始坐标(虽然无意义).把它直接指向空间(就像它在演示中一样)。 或者,使用PyRosetta脚本 / pyrosetta / public/floppy_tail_utility/,可以更新输入结构(存在无序残基)这样可以扩展或者增加尾部(那样你就无需添加尾部起始坐标)。
  • fragment file constraint file 查看怎么输入和约束

小贴士

也可以进行两个区域之间的内部柔性区域的建模

  • 如果需要构建大的尾部,需要进行长时间的轨迹模拟,2.3Hz的电脑大约完成30000/天 轨迹
  • 约束条件是一种极好的方式,可以使建模偏向于测试假设的构想是否可行。
  • 如果不是重复文献不要运行-publication标签
  • 在建模终端柔性区域(尾部)时,在细化阶段,可以使用short_tail_xxx选项将协议引导为针对部分精化模式对尾部的较短部分建模。 原因在于,即使重新包装(质心往往对于这种对接来说有点太小),在质心模式下的结构中尾部可能与结合伴侣过于接近。 通过在改进的第一部分重塑尾巴的尖端,您可以放松碰撞而不将尾巴摆回太空。
  • 如果您有单链(一种蛋白质),如果灵活区域比C端更接近N端,可以使用C_root选项来加快计算速度。
  • 如果构建N端尾,必须使用C_root设置
  • 使用force_linear_fold_tree,当你需要进行折叠C到N之间的链

设置

FloppyTail设置

参数 类型 简介
-flexible_start_resnum -integer PDB中的柔性尾起始编号,如果使用,那么同时要求-flexible_chain的设置
flexible_stop_resnum -integer 不使用此选项意味着flexible_start_resnum之后的整个链。如果使用,那么同时要求-flexible_chain的设置
-flexible_chain - string 该字符串的第一个字符被解释为灵活区域的PDB链; 任何其他字符都将被忽略。
-shear_on - real 在质心模式下,当尾部仍大部分延伸时,剪切移动在初期完全无效。 该值给出剪切移动允许时的质心周期分数。例如,传递0.333意味着对于质心模式的前三分之一,剪切移动将被禁止。
-short_tail::short_tail_fraction -real Fraction of the tail used in the short tail fraction of refinement mode. 0.1 would mean the last tenth of the tail is flexible. Not compatible with non-terminal flexible regions.
-short_tail::short_tail_off -real Fraction of refinement cycles dedicated to refining only the short part of the tail. 0.33 means the first third of refinement cycles will be with the shorter flexible region.
-pair_off - boolean 如果为真,关闭静电Epair,一般不用
-publication - boolean 一般不用
-FloppyTail::cen_weights - string 使用自定义质心得分函数,对于质心建模时期,一般不用

Kinematics设置

参数 类型 简介
-C_root - boolean 如果为真,重构C端折叠树,如果构建N端尾时使用
-force_linear_fold_tree - boolean 强制线性折叠树。 如上所述使用C_root并重新排序输入PDB中的链,以确保正确的运动。

蒙特卡罗采样设置

参数 类型 简介
-FloppyTail::perturb_temp -real Monte Carlo temperature for perturb phase (0.8 used for production)
-FloppyTail::perturb_cycles -unsigned integer number of perturb phase cycles (5000 used for production)
-FloppyTail::perturb_show -boolean - if true, outputs centroid poses after perturbation
-FloppyTail::debug -debug - if true, outputs poses for each monte carlo cycle
-FloppyTail::refine_temp -real Monte Carlo temperature for refine phase (0.8 used for production)
-FloppyTail::refine_cycles -unsigned integer number of refine phase cycles (3000 used for production)
-FloppyTail::refine_repack_cycles -unsigned interger Perform a repack/minimize every N cycles of refine mode (30 used for production)

一般设置

参数 类型 简介
-packing::resfile -string Resfile文件
-packing::repack_only -boolean 告诉代码不要执行设计。 设计是默认执行的,因为PackerTasks的行为就是这样。
-in::file::frag3 -string 片段文件
-run::min_type -string Minimizer type. dfpmin_armijo_nonmonotone used for production.
-nstruct -integer 生成的结构数量
-constraints::cst_file -string 约束文件(质心)
-constraints::cst_weight -real 约束权重(质心)
-constraints::cst_fa_file -string 约束文件(全原子)
-constraints::cst_cst_fa_weight -real 顾名思义

多柔性linkers模式

略,主要使用movemap

后处理

你可能是使用这个模型进行未知结构区域的建模。你不应该花大量的时间在单独的结构中。

一般而言,您应该选择模型预测的一些指标(如果您阅读论文,您会发现它是后来发现可化学交联的两个残基之间的距离)。 然后,您可以挖掘模型群体,以查看这个指标在模型的最高分数中的样子。 extra_analysis功能将有助于此。 我建议直方图。

可能遇到的问题

1
2
3
/Rosetta/main/source/bin/FloppyTail..mpi.linuxgccrelease:
error while loading shared libraries: libsqlite3.so:
cannot open shared object file: No such file or directory

如报这样的错误,ubuntu用户可以使用如下解决:

1
sudo apt-get install libsqlite3-dev

例子

原例子

位于
rosetta/main/tests/integration/tests/FloppyTail/
可以打开查看pdb文件


直接运行即可结果如下:

数据库修正以后

其设置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-restore_talaris_behavior
#输入 PDB
-s complex_readytail_final_nozn.pdb.gz
-use_input_sc
-packing:repack_only
#最小化类型
-run:min_type dfpmin_armijo_nonmonotone
#尾部起始点
-FloppyTail:flexible_start_resnum 180
#尾部终止点,因为终止到最后,所以不需要
#-FloppyTail:flexible_stop_resnum
#加尾链
-FloppyTail:flexible_chain C
#used for preventing loss of compactness at centroid/fa switch; see documentation
-FloppyTail:short_tail:short_tail_off 0
-FloppyTail:short_tail:short_tail_fraction 1.0
#见文档
-FloppyTail:shear_on .33333333333333333333
#将其关闭以用于其他用途; 激活为设置出版物相关指标
-FloppyTail:publication true
#repacking频率; 10 一般用于测试
#-FloppyTail:refine_repack_cycles 100
-FloppyTail:refine_repack_cycles 10
#最终产出数量
#-FloppyTail:perturb_cycles 5000
#-FloppyTail:refine_cycles 3000
#-nstruct 5000
#runs in 26 seconds on my machine
-FloppyTail:perturb_cycles 100
-FloppyTail:refine_cycles 20
-nstruct 1

具体内容可以参考文献3.的支撑材料

E.Coli Hfq 例子

  1. 首先获得E.Coli的晶体结构
1
wget http://www.rcsb.org/pdb/files/1HK9.pdb
  1. 删除非ATOM的行
1
grep ATOM 1hk9.pdb > 1hk9.clean.pdb

在这里需要安装PyRosetta,安装步骤和简单介绍可以查看这里

  1. PyRosetta里的apps/floppy_tail_utility路径里的所有脚本拷贝到实验路径下,extend_terminus.py脚本附加(append)/前置增加(prepend)端口序列。残基设置的φ/ψ值为-135°/135°。例如前置增加”MAKGQ”到链A的N端,命令如下:
1
python extend_terminus.py –c A –o 1hk9.Ap.pdb –p 1hk9.clean.pdb MAKGQ

脚本参数包含如下:
a. -c 标签选择链
b. -p为N端,-a为C端输入文件
c. -o为输出文件
d. MAKGQ为我输入的序列

  1. convert_to_beta.py主要是用来转换骨架二面角到理想状态

    1
    2
    python convert_to_beta.py –i 1hk9.pdb –s 65 –c –o 1hk9.extend.pdb --
    publication-specific

    --publication-specific标志可以用来应用来自大肠杆菌Hfq结构(残基65-70)的二面角而不是理想的角度。-c-n分别表示c端和n端。-s表示起始残基序列,-o为输出。

  2. 通过Rosetta进行“relaxed”

1
$ROSETTA3/bin/relax.mpi.linuxgccrelease @option

option设置如下

1
2
3
4
5
6
7
8
9
10
-s 1hk9.extend.pdb
-relax:constrain_relax_to_start_coords
-relax:ramp_constraints false
-ex1
-ex2
-use_input_sc
-flip_HNQ
-no_optH false
-relax:min_type lbfgs_armijo_nonmonotone
-nstruct 1

在这里简单介绍一下设置:
-s为输入文件
-relax:constrain_relax_to_start_coords-relax:ramp_constraints false为特定输入结构所需要的,为设置主干原子约束,并且关闭约束ramp
-ex1-ex2使第一和第二侧链二面角的采样增加一个标准偏差
-use_input_sc包括放松过程中取样的旋转异构体中的晶体学侧链构象。
-flip_HNQ测试侧链组氨酸,天冬酰胺和谷氨酰胺中特定原子的替代配置(其不能在电子密度中区分)。
-no_optH false关闭氢原子优化
-relax:min_type最小化算法
-nstruct 1输出结构数量

正式的执行FloppyTail,其使用的为movemap.txt,设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# input
-s 1hk9.relax.pdb
# define flexible region via movemap file
-movemap movemap.txt
# shear moves are not productive initially so no shear
# for the first 1/3 of the simulation
-FloppyTail::shear_on 0.333
# root the fold tree at the center of mass, so
# we can “flop” both termini simultaneously
-FloppyTail::COM_root
# do not change AA identities during packing
-packing::repack_only
# monte carlo and sampling options
-FloppyTail::perturb_temp 0.8
-FloppyTail::perturb_cycles 100000 # ~500 moves per residue
-FloppyTail::refine_temp 0.8
-FloppyTail::refine_cycles 1000
-FloppyTail::refine_repack_cycles 10
# current best practices for minimization/scoring
-run::min_type lbfgs_armijo_nonmonotone
-score::weights talaris2014
# recommended number of structures to model
-nstruct 30000
# output
-out:path:pdb decoys/
-out:pdb_gz

其movemap定义如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
RESIDUE * CHI # repack only, default for all
JUMP * NO # do not move subunits relative to one another
# chain A
RESIDUE 1 5 BBCHI
RESIDUE 65 102 BBCHI
# chain B
RESIDUE 103 107 BBCHI
RESIDUE 167 204 BBCHI
# chain C
RESIDUE 205 209 BBCHI
RESIDUE 269 306 BBCHI
# chain D
RESIDUE 307 311 BBCHI
RESIDUE 371 408 BBCHI
# chain E
RESIDUE 409 413 BBCHI
RESIDUE 473 510 BBCHI
# chain F
RESIDUE 511 515 BBCHI
RESIDUE 575 612 BBCHI

其中CHI表示侧链可以动,BB表示骨架可以动,下面的默认会覆盖上面的.注意测试不要按照上面的设置跑,720核需要跑48小时。

一篇PNAS的方法

1
2
3
4
5
6
7
8
9
./FloppyTail.mpi.linuxgccrelease
-database /path/to/main/database
-s 7AHL_SpyTAG_phi29_SpyCatch_assemble_repacked.pdb
-nstruct 5000
-in:file:movemap movemap_file
-packing:repack_only
-AnchoredDesign:refine_repack_cycles 30
-AnchoredDesign:perturb_cycles 15000
-AnchoredDesign:refine_cycles 3000

move_map文件参考:

1
2
RESIDUE 2052 2060 BBCHI
RESIDUE 2638 2650 BBCHI

参考资料:

  1. FloppyTail application
  2. fragment_picker.mpi.linuxgccrelease can’t find : libsqlite3.so
  3. Kleiger G, Saha A, Lewis S, Kuhlman B, Deshaies RJ. Rapid E2-E3 assembly and disassembly enable processive ubiquitylation of cullin-RING ubiquitin ligase substrates. Cell. 2009 Nov 25;139(5):957-68. PubMed PMID: 19945379.