參考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採樣。

推薦閱讀:

相關文章