久しぶりの投稿です。。
今回は、YASARA Structureのループモデリングについて書いてみます。
まず、YASARAコンソールから次のコマンドを実行してみてください。
Clear
LoadPDB 1ke7
DelWaterAll
BuildLoop C Res 35 or N CA Res 36,IRLDTETEGVP,CA C Res 44 or N Res 45,Structures=1,Mutate=All
BuildLoop C Res 151 or N CA Res 152,AFGVPVRTYTHEVV,CA C Res 163 or N Res 164,Structures=1,Mutate=All
CleanAll
ForceField YASARA2
OptimizeLoop C Res 35 or N CA Res 36,CA C Res 44 or N Res 45,Samples=100
OptimizeLoop C Res 151 or N CA Res 152,CA C Res 163 or N Res 164,Samples=100
これだけで、CDK2(PDB:1KE7)の欠損残基を対象としたループモデリングを行うことができます。数行のコマンドで面倒な処理を一括して行えるので便利ですね。
以下、最初から詳しく見ていきます。
先ず、ClearコマンドでYASARAを初期化した後、LoadPDBコマンドで1ke7の構造をRCSBからダウンロード&画面表示しています。続けて、DelWaterAllコマンドでPDBに含まれている水分子を削除しています。
GUIから操作する場合、File>LoadやEdit>Delete>Watersから同じ操作を実行できます。
次のBuildLoopが、ループをモデリングするコマンドになり、使用方法は以下になります。
BuildLoop <ループ開始を示すアンカー原子(C-N-CA)> <ループのアミノ酸配列(1-letter形式)> <ループ終了を示すアンカー原子(CA-C-N)> [オプション(任意)]
水分子削除まで進めて、YASARAで構造を確認してみます。
LoadPDB 1ke7
DelWaterAll
その後、F4(またはAlt+4キー)やF5キー(またはAlt+5キー)を押してバックボーン・リボン表示します。リボン表示だと欠損残基はマジェンタの球で表示されますが、ここではバックボーン表示で進めます。
Window > Show sequence にチェック(✓)マークが付いている事を確認して、マウスポインタを画面下の方に合わせて、シークエンスビューを表示します。
シークエンスビュー左上の画びょうのアイコンをクリックすると常時表示に設定できます。
同ビュー上側のスライドバーをつかって、欠損残基の箇所を見ると、36番目のARGの次が44番目のVALになっていて、37-43が欠損していることがわかります。
BuildLoopコマンドでは、2つの連続する残基のバックボーン原子3つでアンカーを指定します。今回のケースでは、最初のループ開始を示すアンカー原子(C-N-CA)は、N末端アンカー”C Res 35 or N CA Res 36”、ループ終了を示すアンカー原子(CA-C-N)は、C末端アンカー”CA C Res 44 or N Res 45”です。
これらのアンカーはPDB検索のインデックスとして利用され、ListAtomコマンドで確認することができます。
>ListAtom C Res 35 or N CA Res 36
Atom 271 C ILE 35 A: C , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 47.16, Prop 0.000, X 12.730, Y -4.290, Z 15.952
Atom 277 N ARG 36 A: N , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 48.65, Prop 0.000, X 11.959, Y -5.316, Z 15.605
Atom 278 CA ARG 36 A: C , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 49.67, Prop 0.000, X 11.909, Y -6.540, Z 16.398
Number of atoms listed: 3.
>ListAtom CA C Res 44 or N Res 45
Atom 283 CA VAL 44 A: C , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 62.07, Prop 0.000, X 10.426, Y 0.095, Z 23.787
Atom 284 C VAL 44 A: C , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 62.05, Prop 0.000, X 9.474, Y 1.080, Z 24.456
Atom 289 N PRO 45 A: N , Obj 1 (1ke7), AltLoc , Occ 1.00, BFac 62.08, Prop 0.000, X 8.164, Y 0.937, Z 24.197
Number of atoms listed: 3.
欠損領域前後の連続した2残基C-N-CA原子とCA-C-Nの色を緑色に変えてみます。この操作は省略してもOKです。
Style BallStick
HideAll
ShowAtom C Res 35 or N CA Res 36
ShowAtom CA C Res 44 or N Res 45
ColorAtom C Res 35 or N CA Res 36 or CA C Res 44 or N Res 45,Green
CDK2(PDB:1KE7)には、153-162にも欠損残基がありますので、その前後のC-N-CA原子、CA-C-N原子も緑色にしてみます。
ShowAtom C Res 151 or N CA Res 152
ShowAtom CA C Res 163 or N Res 164
ColorAtom C Res 151 or N CA Res 152 or CA C Res 163 or N Res 164,Green
この後、F4(またはAlt+4)でバックボーン表示にしておきます。
以上の操作を施した構造をループモデリング前の構造として残すことにします。
コンソールから、
DuplicateObj 1
RemoveObj 1
として複製後、SoupからRemoveしておきます。
これまでの操作で次のような状況になっているはずです(1ke7オブジェクトが2つ、1番目のVis, ActがNo)。
次に、RCSBからダウンロードしたFASTAファイルで、アミノ酸配列を確認します。
黄色でハイライトしたところが欠損領域、緑色がアンカー(2残基分)です。BuildLoopコマンドで指定するシークエンスにはアンカーの残基も含めます。
欠損残基は、PDBファイルのREMARK 465 MISSING RESIDUESセクションでも確認することができます。こちらは3-letter表記ですが、BuildLoopでは、1-letter表記でシークエンスを指定する必要があります。
2箇所の欠損領域に対して、BuildLoopコマンドを実行します。
BuildLoop C Res 35 or N CA Res 36,IRLDTETEGVP,CA C Res 44 or N Res 45,Structures=1,Mutate=All
BuildLoop C Res 151 or N CA Res 152,AFGVPVRTYTHEVV,CA C Res 163 or N Res 164,Structures=1,Mutate=All
オプションのStructures=1,Mutate=Allはどちらもデフォルト値なので省略できますが、参考までに残しておきました。これらの値を変更することで、発生モデル数やミスマッチがあった場合などの動作を変更することができます。
BuildLoopコマンドを実行すると、自動的にPDB検索がなされ、適当なループ構造がアンカー原子の間に重ね合わせられます。
続けて、発生させたループの最適化処理を行います。
ここまでの構造を残しておくため、
DuplicateObj 2
RemoveObj 2
として新たにオブジェクトを作成します。以降の操作は、3つ目のオブジェクトに対して行われます。
先ず、コンソールからCleanAllコマンド(GUIからの場合、Edit>Clean>All)を実行し、水素付加等のクリーン処理を行います。
CheckAllコマンドで構造全体のスコアを確認後、続けて、CheckResコマンドでループ最適化前のアミノ酸残基のモデル品質スコアを残しておきます。
なお、Checkコマンドを実行するには力場をYASARA2に設定する必要があり、またループ最適化で良い結果を与えるとのことですので、この力場に変更しておきます。
CleanAll
ForceField YASARA2
CheckAll ModelQuality
CheckRes all,Modelquality,non-opt
CheckAllコマンドを実行すると、コンソールに現在の構造のスコアが出力されます。
Object 3 (1ke7) has an overall model quality Z-score of -1.245
Interpretation: < -2 is poor, < -4 is bad
CheckResコマンドを実行すると、現在の作業ディレクトリにnon-opt.pngファイルが出力されます。出力先を変更する場合、CDコマンドかOption>Working directoryで予め変更しておいてください。現在の作業ディレクトリは、PWDコマンドで確認することができます。
では、ループ最適化のため、コンソールから
OptimizeLoop C Res 35 or N CA Res 36,CA C Res 44 or N Res 45,Samples=100
OptimizeLoop C Res 151 or N CA Res 152,CA C Res 163 or N Res 164,Samples=100
としてOptimizeLoopコマンドを実行します。
前後2残基分のアンカーの指定方法は、BuildLoopと同じですが、シークエンスの入力は不要です。SamplesオプションでPDBから抽出するループのコンフォメーション数を調整できます。なお、OptimizeLoopコマンドでは、2次構造を指定することも可能ですが、ここでは指定せず(SecStr=Empty)進めます。
>OptimizeLoop C Res 35 or N CA Res 36,CA C Res 44 or N Res 45,Samples=100
Optimized force field energy including solvation = -31222.009 kcal/mol
>OptimizeLoop C Res 151 or N CA Res 152,CA C Res 163 or N Res 164,Samples=100
Optimized force field energy including solvation = -38718.084 kcal/mol
続けて、ループ最適化後のスコアを確認、保存します。
CheckAll ModelQuality
CheckRes all,ModelQuality,opt
最適化前に比べ、確かにスコアが改善しています。
Object 3 (1ke7) has an overall model quality Z-score of -1.019
Interpretation: < -2 is poor, < -4 is bad
CheckResの比較結果は以下の通り(上:non-opt, 下:opt)。最適化処理で、ループ領域のスコアが改善していることを確認できます。
最後にsoupから除外していた二つのオブジェクトを戻して、適当な色付けを行うと、
AddObj 1-2
ColorObj 1,Gray
ColorObj 2,Yellow
次のようになります。
この後、全体をSCE形式で保存したり、3番目のオブジェクトをPDB等で保存すれば終了です。
以上、基本的なループモデリングの流れでした。詳しくは、ユーザガイドのBuildLoopやOptimizeLoopコマンドの説明を参照してみてください。
モデルのクオリティをさらに改善するには、md_refine.pyマクロを実行するなどして、スコアの高い構造を求めると良いです。