オンラインにGromacs で水の凝集状態をMDするチュートリアルを見つけたので、トレースしてみる。
MDの開始構造の作成
最初のエネルギー最小化+平衡化の処理
0.最初の準備
これまでにCondaパッケージを利用してCentOS8(GPUなし)上にGromacsをインストールしている
上記コマンドが動くことを確認する。GROMACSの実行により多くのファイルが生成するため、実行ディレクトリ(フォルダ)は専用のものにしておく。
以下のファイルをvimやemacsなど、Linux上のテキストエディタで作成します。
- system.top
- em.mdp
- nvt.mdp
- sampling.mdp
1 相互作用パラメータ決め
まず、以下のような内容の system.top
ファイルを作成します。vimで作成するText内容
2 初期座標決め
水分子を適当に並べ、初期構造とします。gmx solvate
コマンドで作成、4 nm 立方の箱の中に水分子を並べる。
水分子の座標を記録しているファイルinit.gro
というファイルが新しくでき、system.top
の中身をみて、最終行に"SOL;****"が追加されることを確認。
3 MDの条件決め
以下のような内容で em.mdp
というファイルを作成します。vimで作成するText内容
4 MD実行
設定ファイルの「コンパイル」;以上の段階で「初期構造」「力場パラメータ」「MD条件」の3つのファイルを作ったわけですが、これらから"gmx grompp"コマンドでMDを行うプログラムが読み込めるような形式のバイナリファイルを作ります。
mdout.mdp
と step1_em.tpr
の2つのファイルが生成されたことを確認して、さらに以下を実行する。
エラーなく終われば、以下のファイルが生成されているはず。
- step1_em.edr
- step1_em.log
- step1_em.trr
- step1_em.gro
- step***.pdb (step16c.pdbなど。ない場合もある)
このうち step1_em.gro
がエネルギー最小化の結果の構造を記録したファイルで、次のMDで使うものになります。
5 結果の解釈
実際にエネルギーはどの程度小さくなっているか。次のコマンドで必要な情報を取出。
6. (ここまで)実行したコマンド
MDの実行(温度を指定しての実行)
1 相互作用パラメータ決め
最初のエネルギー最小化で作成した system.top
をそのまま使います。
2 初期座標決め
平衡化の処理で得た最後の構造 step2_nvt.gro
が初期構造となります。
3 MDの条件決め
以下の内容で sampling.mdp
というファイルを作ります。
4 MD実行
まずは読み込みを行います。
ここでもNOTEが出てきますが、前回同様に無視します。これで step3_sampling.tpr
が生成されましたら、いよいよサンプリングMDを実行します。
通常は3分~10分程度で終わる。今回は貧弱な仮想マシンで実行したので、より時間がかかっている(停止することはなかった)
5.MDの実行(温度を指定しての実行)結果の解釈;動径分布関数
動径分布関数は、原子間の距離を測り、その分布を調べたものになります。これが分かると分子がどれくらい配向しているかなど、さまざまなことが推測できます。
まず、次のコマンドを実行します。
すると、 >
出力が出てくきて、プログラムがこちらの入力を待っている状態となる。ここで
と入力します。すると最後のqで対話モードが終了し、正しく処理されていれば index.ndx
というファイルができています。 これで index.ndx
ファイルができたのち、
を実行します。
対話モードでどのグループを選ぶかを入力する状態になるので酸素原子と水素原子をを選びます。(あるいは、単に対応するグループ番号の 3 と 4 を入力しても大丈夫)
このあと Ctrlを押しながらDキーを押すと、軌跡ファイルの読み込みをして動径分布関数の計算に入る。
6.軌跡の可視化
動径分布関数の計算が終わると rdf_OH.xvg
というファイルができるので、grace(Xmgrace)で可視化して確認をする(未確認)。軌跡のデータは step3_sampling.trr
にあります。 少々重いですので、コピーなどする際には気を付けましょう。 これと最初の座標データ step2_nvt.gro
があれば、VMD を使って分子の運動を動画で表示できます。
7.(ここまで)実行したコマンド
(ここまで) 紹介されている操作をトレースできた。環境はほぼ構築したが、grace(Xmgrace)または代替は用意していない。一般ユーザー権限でのCondaパッケージで入れたGromacsでも一応動く(スペックは低い)ことは確認できた。