参考1: rosettacommons.org/manu

参考2: rosettacommons.org/docs 参考3: A smoothed backbone-dependent rotamer library for proteins derived from adaptive kernel density estimates and regressions 参考4: Backbone-dependent rotamer library for proteins. Application to side-chain prediction.

许多新人朋友在对蛋白质进行突变设计时,常常搞不清楚到底应该用Mutfile还是Resfile,甚至有混用、乱用的现象。本文旨在于解决以下问题:

  • Mutfile和Resfile有什么用?
  • 什么时候用Mutfile或Resfile?
  • Mutfile、Resfile怎么写?

1 Pack Rotamers

首先我们要了解Mutfile和Resfile控制机理背后———"氨基酸侧链构象预测"。氨基酸侧链构象(Rotamers)指氨基酸侧链的围绕每一个键旋转形成的旋光异构体构象,这类的构象由氨基酸侧链的二面角来描述。

早在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栏位即可,目前针对不同的氨基酸有三种编写方式:

  1. EX LEVEL

含义为,额外采集二面角的Rotamer(1-4)。如果level预设,默认为+/-1标准误范围。level等级可分为7个级别, 级别越大考虑的构象越多,计算耗时越大。一般来说level = 1、2 已经足够。即EX 1EX 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

  1. EX ARO LEVEL

ARO栏位代表,增加Rotamer采集时,仅对非芳香环氨基酸(FHYW)生效。ARO栏位仅对chi-id=1、2生效。设置为3、4时直接报错。

  1. 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采样。

推荐阅读:

相关文章