Gromacs 計算のためのTips
概要
- 入力ファイル作成方法や解析方法でのTips
手法
特定の領域の選択肢を新規作成する方法
- 入力ファイルや解析ツールを使っていると、どの領域に対して計算を実行するか尋ねられることがある。
- 領域の選択肢はタンパク質や DNA、RNA、水、イオンなどよく使われる領域は自動的に生成されるが、特定の領域を選択したい場合は以下の手順で、.ndx ファイルを作る必要がある
make_ndx
の実行
$ gmx make_ndx -f reference.gro -o output.ndx : : 0 System : 998 atoms 1 DNA : 758 atoms 2 Water : 240 atoms 3 SOL : 240 atoms 4 non-Water : 758 atoms nr : group ! 'name' nr name 'splitch' nr Enter: list groups 'a': atom & 'del' nr 'splitres' nr 'l': list residues 't': atom type | 'keep' nr 'splitat' nr 'h': help 'r': residue 'res' nr 'chain' char "name": group 'case': case sensitive 'q': save and quit 'ri': residue index >
- reference.gro は .ndx ファイルを作成する構造ファイル
- output.ndx は作成する .ndx ファイル
- リストの一覧と簡易ヘルプが表示される
- 領域の指定
- 残基番号で選択する場合:
r 残基番号の範囲
例. 2〜5番目の残基を指定
> r 2-5 Found 128 atoms with res.nr. in range 2-5 5 r_2-5 : 128 atoms
- 領域番号 5 に 2〜5 番目の残基が追加された
- 原子順序番号で指定する場合:
a 原子順序番号の範囲
例. 56〜90番目の原子を指定
> a 56-90 Found 35 atoms in range 56-90 6 a_56-90 : 35 atoms
- 領域番号 6 に登録された
- ヘルプ:
h
- 領域のリスト表示:
Enter
- 分子の残基リストを表示:
l
- 領域に名前をつける
name 領域番号 名前
例. 2〜5番目の残基に bindingSite と名付ける
> name 5 bindingSite
- 終了 (終了と同時に .ndx ファイルが作成される)
> q
周期境界条件でループしないトラジェクトリの作成
- 周期境界条件では、溶質分子がボックスの外に出た場合、外に出た部分は反対側のボックスの壁から現れるように扱っている。
- 計算上は問題ないが、ビューアで分子を見ると、結合情報を基に表現された分子は、ボックスの外に出た部分がボックスの両端の壁で結合されているように表示され、とんでもない構造になる
- ボックスの境界をまたいだ分子を正常に表示するトラジェクトリの処理方法を紹介する
- ジャンプしないトラジェクトリの作成
$ gmx trjconv -f INPUT.trr -s TOPOL.tpr -o OUTPUT.trr -pbc nojump
- INPUT.trr は入力トラジェクトリ (.xtc でも可)
- TOPOL.tpr は入力トラジェクトリに対応するトポロジーファイル
境界をまたいでいない構造 (最適化時に作成した .tpr など) が好ましい。 - OUTPUT.trr は出力トラジェクトリ (.xtc でも可)
- 特定の分子を画面の中央に配置するトラジェクトリの作成
さらに溶質を中央に配置したい場合はこの操作を行う
$ gmx trjconv -f INPUT.trr -s TOPOL.tpr -o OUTPUT.trr -center -pbc mol
- INPUT.trr は入力トラジェクトリ (.xtc でも可)
前の操作の OUTPUT.trr がここに入る。 - TOPOL.tpr は入力トラジェクトリに対応するトポロジーファイル
境界をまたいでいない構造 (最適化時に作成した .tpr など) が好ましい。前の操作の-s TOPOL.tpr
と同じ。 - OUTPUT.trr は出力トラジェクトリ (.xtc でも可)
- 参考サイト:
事前に選択肢を選ぶ
- 入力ファイルの作成および解析の際に、力場や領域の質問の選択肢がすでにわかっている場合、事前に与える方法がある
- どちらかというと、このプログラムの Tips というよりシェルの Tips に近い方法
- 例. SUBCOMMAND を実行した際に 10 と答える
$ gmx SUBCOMMAND ... << "EOF" 10 EOF
EOF
で囲まれた間をプログラムに与えるという意味- 最初と最後の
EOF
は両方とも同じ文字列であれば、どんな単語でも良い