CafeMol はMDシミュレーションを行うツールのひとつ、らしい。CafeMol をインストールしたフォルダで作業する。
./cafemol ./example/sh3/sh3.inp
でいきなりMDシミュレーションができる。その前にインプットファイル ./example/sh3/sh3.inp を以下のように変更する。
Line 13 (Output の種類を変える) Before ||| OUTPUT pdb crd velo dcd vdcd movie psf rst After ||| OUTPUT pdb crd velo movie psf Line 42 (長い時間シミュレーションする) Before ||| n_tstep(1) = 800000 After ||| n_tstep(1) = 10000000 Line 44 (構造を書きだす頻度を少なくする) Before ||| n_step_save = 1000 After ||| n_step_save = 10000 Line 49 (分子の並進回転を止める) Before ||| i_com_zeroing = 0 Before ||| i_no_trans_rot = 0 After ||| i_com_zeroing = 1 After ||| i_no_trans_rot = 1
結果は VMD でフォールディングする様子を確認できる。適当に gif 作った。最初はまっすぐ伸ばした状態からMDシミュレーションが始まっている。
vmd ./example/sh3/sh3.movie ./example/sh3/sh3.psf
gnuplot を用いて Q-score (フォールディングしている度合い)をプロットする
# gnuplot で plot "./example/sh3/sh3.ts" u 1:6 w l
比較のため名前を付け直して取っておく。
mv ./example/sh3/sh3.ts ./example/sh3/sh3-1.ts
フォールディング温度を計算するには ./example/sh3/sh3.inp を以下のように変更する。
Line 20 (実行モードを Searching TF モードに変更する) Before ||| i_run_mode = 2 After ||| i_run_mode = 4 Line 42 (もっと長い時間シミュレーションする) Before ||| n_tstep(1) = 10000000 After ||| n_tstep(1) = 100000000 Line 44 (構造を書きだす頻度を少なくする) Before ||| n_step_save = 10000 After ||| n_step_save = 100000 ファイルの最後に追加 ||| <<<< serching_tf ||| tempk_upper = 400 ||| tempk_lower = 300 ||| >>>>
すると 340K くらいになるらしい。
フォールディング温度でタンパク質フォールディングをシミュレーションしてみる。./example/sh3/sh3.inp を以下のように変更する。
Line 22 (シミュレーションを天然構造から始める) Before ||| i_initial_state = 1 After ||| i_initial_state = 2 Line 46 (温度を変更する) Before ||| tempk = 300.0 After ||| tempk = 340.0
シミュレーション後は gnuplot で確認してリネームして取っておく。
# gnuplotで gnuplot> plot ”./example/sh3/sh3.ts” u 1:6 w l
mv ./example/sh3/sh3.ts ./example/sh3/sh3-2.ts
箱の中に入れてタンパク質フォールディングをシミュレーションを行う。箱に入っているので初期条件がまっすぐの紐状というのは考えにくいためこれを条件に入れて行う。
./example/sh3/sh3.inp を以下のように変更する。
Line 20 (実行モードを元に戻す必要があると思う) Before ||| i_run_mode = 4 After ||| i_run_mode = 2 Line 47 (箱の中に入れる) Before ||| n_seed = 1 After ||| n_seed = 1 After ||| i_in_box = 1 Line 48 (分子の並進回転の拘束を外す) Before ||| i_com_zeroing = 1 Before ||| i_no_trans_rot = 1 After ||| i_com_zeroing = 0 After ||| i_no_trans_rot = 0 ファイルの最後に追加 ||| <<<< in_box ||| xbox = 80.0 ||| ybox = 80.0 ||| zbox = 80.0 ||| boxsigma = 10.0 ||| >>>>
同じくシミュレーション後は gnuplot で確認してリネームして取っておく。
# gnuplotで gnuplot> plot ”./example/sh3/sh3.ts” u 1:6 w l
mv ./example/sh3/sh3.ts ./example/sh3/sh3-3.ts
いままでのQ-scoreを比較する(sh3-3.ts は実は条件が違うものを描いてしまったけど直すのが面倒なのでやる気のある人は確認してください)。
出力される値は、フォールディング状態の割合らしい。箱の有無でどのように変化したか考察してみよう。余力があれば、箱の大きさを変化させて、その依存性を解析してみるといいらしい。
perl -ane '$f++ if /^#all/ && $F[6]>0.5;print $f/++$a."\n"' ./example/sh3/sh3-1.ts | tail -n 1 perl -ane '$f++ if /^#all/ && $F[6]>0.5;print $f/++$a."\n"' ./example/sh3/sh3-2.ts | tail -n 1 perl -ane '$f++ if /^#all/ && $F[6]>0.5;print $f/++$a."\n"' ./example/sh3/sh3-3.ts | tail -n 1
0.491803278688525 0.133631395926478 0.497764530551416