研究メモ。
AmberでMDやった後、CPPTRAJで解析したいとき
参考:
CPPTRAJ Hydrogen Bond Analysis Tutorial
http://ambermd.org/doc12/Amber14.pdf
(Amber14のマニュアル。重い…)
とりあえず水素結合ってのはタンパク質の構造にとって重要で、FON(フッ素・酸素・窒素)の間で水素を介してできる結合である。
CPPTRAJはドナーとアクセプターの距離で水素結合の有無を判定する。
(オプションでドナー・水素・アクセプターの角度も指定できるよ☆でもAmberやCharmmといった力場では、水素結合は非結合項のみで決まるので角度には依存しない?)
また溶質ー溶質だけでなく、溶質ー溶媒、溶質ー溶媒ー溶質といった形の水素結合も探知できる。
1. シミュレーション系全体の水素結合を調べる
とりあえずprmtop(パラメータ)とnc(トラジェクトリ)を読み込む。
そのあと、
hbond All out All.hbvtime.dat solventdonor :WAT solventacceptor :WAT@O \
avgout All.UU.avg.dat solvout All.UV.avg.dat bridgeout All.bridge.avg.dat
このhbondってコマンドを使う。それ以下は全てオプション。
- All: ラベル
- out All.hvtime.dat: アウトプットファイル。ここに溶質間の水素結合の数が時系列で書き出される。
- solventdonor :WAT:溶媒ドナーは水。イオンは含まない。
- solventacceptor :WAT@O:溶媒分子のどの原子をアクセプターにするか。イオンは除外している。
- avgout All.UU.avg.dat: 溶質間水素結合の一つ一つについて、平均情報がこのファイルに書き出される。
- solvout All.UV.avg.dat:溶質ー溶媒間水素結合の一つ一つについて、平均情報がこのファイルに書き出される。これを指定しないと、この情報はAll.UU.avg.datに一緒に書き込まれてしまう。
- bridgeout All.bridge.avg.dat:溶質ー溶媒ー溶質間水素結合の一つ一つについて、平均情報がこのファイルに書き出される。これを指定しないと、この情報は All.UV.avg.dat(かAll.UU.avg.dat)に一緒に書き込まれてしまう。
- ちなみに書いてないけど、角度のカットオフは135°(?)、距離のカットオフは3.0 Å、ドナーは水素に結合してる原子全てでデフォルトの値。
2. 溶質の主鎖間の水素結合を調べる
hbond Backbone :1-12@C,O,N,H avgout BB.avg.dat series uuseries bbhbond.gnu
- :1-12@C,O,N,H:調べるのはこれらの原子だけ。
- series:見つけた水素結合情報を次のコマンドのために一時的に保存する。
- uuseries bbhbond.gnu:水素結合の時系列情報がgnuplotの形式で書き出される。(Amber16以降で利用可)
3. 水素結合の数だけを書き出す
create nhbvtime.agr All[UU] Backbone[UU] All[UV] All[Bridge]
- create nhbvtime.agr:ファイルを作る。
- All[UU] Backbone[UU] All[UV] All[Bridge]:hbondコマンドの一時データ保存形式(ラベル[UUとか])。[UU],[UV],[Bridge]にはそれぞれの水素結合の数が保存されている。
4. さらに解析する
(Websiteではこの前にrms...とかやってるが普通にRMSD求めてるだけ。水素結合にはマジ関係ない)
lifetime Backbone[solutehb] out backbone.lifetime.dat
runanalysis
- lifetime Backbone[solutehb] :lifetimeっていう別のコマンドで、2.のseriesで保存した情報を解析してる。水素結合情報はできてるか(1)できてないか(0)で保存されてて、その時系列変化は例えば{0 1 1 0 1 0 0 0 1 1}みたいになる。1が連続してる長さは2,1,2だから、その平均1.67がlifetimeになる。
- runanalysis:runコマンドで生成したデータに対して解析を行うコマンド。
とりあえず以上である。
何かあったらまた追記する。
もし質問あったらcontactからしてくれよな!
ご質問と回答
2018/8/31.
Q. 分子間の水素結合だけ計算したいのですがどうすればいいですか?
A. "nointramol"ってコマンドに足すだけでOKです(便利)。
例えば、上の1.の例だと、
hbond All out All.hbvtime.dat solventdonor :WAT solventacceptor :WAT@O \
avgout All.UU.avg.dat solvout All.UV.avg.dat bridgeout All.bridge.avg.dat nointramol
で分子間の水素結合のみ出力されます。
つまり、タンパクAとタンパクBの複合体が水の中にある場合、AーB間、Aー水、Bー水、Aー水ーBの水素結合が出力されて、A内部やB内部の水素結合は計算されません。
CPPTRAJってほんとうにいいものですね(CV.水野晴郎先生)。