早在1993年,Dunbrack和Karplus就已经发现氨基酸的侧链的Rotamers与骨架状态存在一定的关系,并提出了离散型的Rotamer libraries的概念: 以10°x10°(phi,psi)的格点作为单位,统计每种氨基酸的Rotamers在这个区间的骨架二面角分布状态下,Rotamer出现的频率,chi二面角的平均值等数据,而形成的资料库。
在Rosetta中,Packer通过搜索Rotamer libraries以及模拟退火的方法来预测给定骨架状态下,氨基酸的侧链状态。这个过程就是"Pack Rotamers"。这个过程分为Repack、Design、NoRepack三种情况。
NoRepack,顾名思义,不允许发生Repack,该位点的氨基酸类型将保持为输入的构象。
Repack和Design的区别在于: Repack时,该位点氨基酸的类型不能发生变化,但是会构象可以改变。而Design时,该位点氨基酸的类型和侧链构象均可以发生变化。如果不加以指定,Rosetta将默认对该位点氨基酸进行Design处理。
2 Mutfile与Resfile的区别
今天的主角: Mutfile和Resfile都是Packer的控制文件,用于告诉Rosetta Packer如何对结构中的每一个氨基酸侧链进行计算。
Resfile的用途比Mutfile更广泛,只要与PackTask相关的都可以通过TaskOperation读取Resfile控制Pack行为。而Mutfile目前兼容:ddg_monomer以及Cartesian_ddG。
Mutfile与Resfile的作用效果是不同的:
在控制逻辑方面方面,Mutfile是写死的格式,比如我想让51号Leu突变Ala,我就必须明确写明该位点的氨基酸如何进行突变(详见section3)。而Resfile可以指定氨基酸的突变方向,比如我可以让51号Leu突变成非极性氨基酸(POLAR),Resfile也可以通过PIKAA语法指定突变的氨基酸类型。
在返回结果方面,Mutfile明确返回设置的突变结果,而Resfile会计算所有指定的氨基酸类型,并返回一个对能量贡献最佳的设计。
3 Pose number与PDB number的区别
在Rosetta中,结构的氨基酸编号都是从1开始,无视多肽链的间隔连续编号。比如我现在有一个蛋白结构,它由AB链组成,A链有50个氨基酸,B链也有50个氨基酸。那么这个Pose中编号的顺序即为1-100。而PDB number有所不同,A链的50个氨基酸的编号为1-50,而B链的编号也是1-50。在实际情况中,我们要根据需要选择使用不同的编号策略,并正确指定编辑的氨基酸序号。
4 Mutfile的格式与编写
在Mutfile中,我们时候用的编号策略是: Pose number
Mutfile格式的编写比较简单,主要由三部分组成:
Total: 记录Mutfile文件中突变轮数值;
sub-total: 记录每轮突变中,点突变的总数;
Muation: 记录每个点突变的方式。
total $num
sub-total
Muation
sub-total
Muation
.....
举个例子:
我想进行一轮单点突变(L52A), 那么我的Mutfile应该这么写:
total 1
1
L 52 A
结果只会输出一个结构: L52A。
如果我想进行两轮单点突变(L52A、L52D),那么我的Mutfile应该这么写:
total 2
1
L 52 A
1
L 52 D
结果就会输出2个结构, 分别是L52A和L52D。
如果我想进行一轮双点突变(L52A、L53P),那么我的Mutfile应该这么写:
total 1
2
L 52 A
L 53 P
结果就会输出L52A/L53P的双点突变结构。
如此类推。。。。
小结: Mutfile可以指定多轮突变,颇有突变扫描的意味。
5 Resfile的格式与编写
在Resfile中,我们时候用的编号策略是: PDB number , 并且大小写敏感。
Resfile格式的编写主要由两部分组成:
HEADER: 控制未在BODY中明确指定的哪些氨基酸如何进行Repack;
BODY: 记录明确指定的氨基酸如何进行Repack;
5.1 HEADER写法:
COMMAND # 详见COMMAND语法;用于控制未在BODY列出的氨基酸侧链Pack的行为
EX (ARO) <chi-id> ( LEVEL <sample level> ) # 增加rotamer采样的指令;
EX_CUTOFF <num-neighbors> # 界定包埋氨基酸的标准;
USE_INPUT_SC # 第一次Repack时使用input的构象侧链。
start # 强制使用,该栏位表面开始撰写BODY的内容。
5.2 BODY的写法:
基本格式: 第一列为氨基酸的PDB编号(允许有insert code)。第二列为PDB链编号,第三列为COMMAND项。
<PDBNUM>[<ICODE>] <CHAIN> <COMMANDS>
氨基酸范围选择格式: 不同在于可以直接指定一个范围的PDB编号,并控制其Pack行为。(从小至大的顺序编写)
```shell; [] - []
链选择范围格式: 直接指定一个链所有的氨基酸Pack行为。
```shell
* <CHAIN> <COMMANDS>
多重指定: 当存在重复指定氨基酸时,其逻辑为"交集"。
<PDBNUM>[<ICODE>] - <PDBNUM>[<ICODE>] <CHAIN> <COMMANDS>
<PDBNUM>[<ICODE>] <CHAIN> <COMMANDS>
5.3 自由度控制相关语法(COMMAND):
ALLAA # 允许设计为20种氨基酸
ALLAAxc # 允许设计为非半胱氨酸以外的所有氨基酸
POLAR # 允许设计极性氨基酸(DEHKNQRST)
APOLAR # 允许设计非极性氨基酸(ACFGILMPVWY)
NOTAA <list of AAs> .. # 不允许设计为特定的氨基酸列表。(列表连续编写无空格)
PIKAA <list of AAs> .. # 只允许设计为特定的氨基酸列表。(列表连续编写无空格)
NATAA # NoRepack,不允许构象变化。
NATRO # Repack当前氨基酸类型,只允许构象变化。
PROPERTY <property> # 只允许设计为有以下性质的氨基酸
5.4 额外Rotamer采样控制(Extra Rotamer Commands):
Rosetta Pack采样Rotamer时是离散的,默认只会采纳每个格点的中心构象。我们可以通过Extra Rotamer Commands来增加Pack采样。会使得我们预测的侧链(包埋的)更加准确。
一般只要在Resfile中HEADER中使用Extra Rotamer Commands栏位即可,目前针对不同的氨基酸有三种编写方式:
EX LEVEL
含义为,额外采集二面角的Rotamer(1-4)。如果level预设,默认为+/-1标准误范围。level等级可分为7个级别, 级别越大考虑的构象越多,计算耗时越大。一般来说level = 1、2 已经足够。即EX 1
、EX 2
级别具体的含义:
0 ...... no extra chi angles
1 ...... sample at 1 standard deviation
2 ...... sample at 1/2 standard deviation
3 ...... sample at two full standard deviations
4 ...... sample at two 1/2 standard deviations
5 ...... sample at four 1/2 standard deviations
6 ...... sample at three 1/3 standard deviations
7 ...... sample at six 1/4 standard deviations
EX ARO LEVEL
ARO栏位代表,增加Rotamer采集时,仅对非芳香环氨基酸(FHYW)生效。ARO栏位仅对chi-id=1、2生效。设置为3、4时直接报错。
EX_CUTOFF (default=18)
Rosetta默认不会对处于表面的氨基酸进行额外Rotamer采集,除非用户显式地设置(EX_CUTOFF >=1-3等)。默认每个氨基酸计算10埃范围内残基数量,当数量大于设定的时,认为是"包埋"的氨基酸,进行额外的Rotamer采样。
一些额外Rotamer采样控制例子:
10 B EX 1 EX 2 # 对chi1,chi2二面角进行level1增加采样。
8 B EX ARO 2 # 对chi2二面角进行level1增加采样。
7 B EX ARO 3 # 报错,ARO栏位仅对chi-id=1,2起效。
6 B EX 1 LEVEL 7 # chi1,level7采样。
13 B EX 1 EX ARO 1 LEVEL 4 # 非芳香氨基酸chi1,level4采样,其余类型氨基酸chi1,level1采样。
推荐阅读: