ファイル形式

ファイル形式

分子トポロジーの仕様に従ってトポロジーファイルが作成されます。:ref:`top`ファイルは、:ref:`pdb2gmx<gmx pdb2gmx>`を使用して生成できます。トポロジーファイルに含まれるすべての項目は、:numref:`Tables %s <tab-topfile1>`と:numref:`%s <tab-topfile2>`に一覧表示されています。また、以下の情報も表にまとめられています。 * 各パラメータの単位 * 自由エネルギー計算で変更可能な相互作用 * :ref:`grompp <gmx grompp>`が使用する結合相互作用(除外の生成用) * :ref:`grompp <gmx grompp>`で結合相互作用を制約に変換できるもの

表 9 トポロジー ファイル。

パラメータ

相互作用の種類

指示

# at.

f. tp

パラメータ

必須

defaults

非結合関数型; 組み合わせ規則\(^{(cr)}\); ペアを生成 (はい/いいえ); fudge LJ (); fudge QQ ()

必須

atomtypes

アトムの種類; ボンドの種類; 原子番号; m (u); q (e); 粒子の種類; V\(^{(cr)}\) ; W\(^{(cr)}\) (ボンドの種類と原子番号はオプション)

bondtypes

(詳細は、Table 10 の「bonds」ディレクティブを参照)

pairtypes

(詳細は、Table 10pairs ディレクティブを参照)

angletypes

(詳細は、Table 10 の「angles」ディレクティブを参照)

dihedraltypes\(^{(*)}\)

(詳細は、Table 10 の「dihedrals」ディレクティブを参照)

constrainttypes

(参照してください: Table 10, ディレクティブ constraints)

LJ

nonbond_params

2

1

V\(^{(cr)}\) ; W\(^{(cr)}\)

バッキンガム

nonbond_params

2

2

\(a~\mathrm{kJ~mol}^{-1}\) ; \(b~\mathrm{nm}^{-1}\); \(c_6\) (\(\mathrm{kJ~mol}^{-1}~\mathrm{nm}^{-6}\))

分子の定義

必須

moleculetype

分子名; \(n_{ex}^{(nrexcl)}\)

必須

atoms

1

アトムの種類; 残留分子番号; 残留分子名; アトム名; 電荷グループ番号; \(q\) (e); \(m\) (u)

種類

\(q,m\)

分子内相互作用と形状定義については、Table 10 に記載されている内容を参照してください。

システム

必須

system

システム名

必須

分子

分子名; 分子の数

分子間の相互作用

任意

intermolecular_interactions

1つ以上の結合相互作用(|TREF|で説明されているもの)、2つ以上の原子、排他的な相互作用がない、制約がない、グローバルな原子番号を使用

  • # at は、この指示に必要な原子タイプのインデックス数です。

  • f. tp は、この関数タイプを選択するために使用される値です

  • F. E. は、自由エネルギー計算においてどのパラメータを補間できるかを示す

  • \(^{(cr)}\) 組み合わせルールは、LJパラメータの種類を決定します。詳細は:ref:`nbpar`を参照してください。

  • \(^{(*)}\) dihedraltypes の場合、4つの原子または内側の(不対原子の場合は外側の)2つの原子を指定できます。

  • \(n_{ex}^{(nrexcl)}\) 非共有結合相互作用のために、`n_{ex}`個の隣接結合を無視する

  • 無償のエネルギー計算を行う場合、「q」と「m」または、トポロジー「B」(\(\lambda = 1\))に対して、通常のパラメータの後に同じ行にパラメータを追加する必要はありません。

表 10 [ moleculetype ] ディレクティブの詳細

相互作用の名前

ディレクティブ「トポロジーファイル」

数 [1]

機能の種類 [2]

パラメータと単位の順序

F.E. で使用しますか? [3]

バンド

bonds [4]、[5]

2

1

\(b_0\) (nm); \(k_b\) (kJ mol\(^{-1}\)nm\(^{-2}\)

すべて

G96 結合

bonds [4]、[5]

2

2

\(b_0\) (nm); \(k_b\) (kJ mol\(^{-1}\)nm\(^{-4}\)

すべて

モーズ

bonds [4]、[5]

2

3

\(b_0\) (nm); \(D\) (kJ mol\(^{-1}\); \(\beta\) (nm\(^{-1}\)

すべて

立方結合

bonds [4]、[5]

2

4

\(b_0\) (nm); \(C_{i=2,3}\) (kJ mol\(^{-1}\)nm\(^{-i}\)

接続

bonds [4]

2

5

調和的ポテンシャル

bonds

2

6

\(b_0\) (nm); \(k_b\) (kJ mol\(^{-1}\)nm\(^{-2}\)

すべて

FENE 結合

bonds [4]

2

7

\(b_m\) (nm); \(k_b\) (kJ mol\(^{-1}\)nm\(^{-2}\)

表形式の結合

bonds [4]

2

8

表番号 (\(\geq 0\)); \(k\) kJ mol\(^{-1}\)

\(k\)

表形式の結合 [6]

bonds

2

9

表番号 (\(\geq 0\)); \(k\) kJ mol\(^{-1}\)

\(k\)

潜在的な制約

bonds

2

10

low, up\(_1\),\(_2\) (nm); \(k_{dr}\) (NM2)

すべて

追加の LJ または クオラム

pairs

2

1

\(V\) [7]; \(W\) [7]

すべて

追加の LJ または クオラム

pairs

2

2

fudge QQ (); \(q_i\); \(q_j\) (e), \(V\) [7]; \(W\) [7]

追加の LJ または クオラム

pairs_nb

2

1

\(q_i\); \(q_j\) (e); \(V\) [7]; \(W\) [7]

角度

角度 [5]

3

1

\(\theta_0\) (度); \(k_\theta\) (kJ mol\(^{-1}\)rad\(^{-2}\))

すべて

G96 角度

角度 [5]

3

2

\(\theta_0\) (度); \(k_\theta\) (kJ mol\(^{-1}\))

すべて

クロス ボンド-ボンド

角度

3

3

\(r_{1e}\), \(r_{2e}\) (nm); \(k_{rr'}\) ((kJ mol\(^{-1}\)nm\(^{-2}\))

クロス ボンド角

角度

3

4

\(r_{1e}\), \(r_{2e}\), \(r_{3e}\) (nm); \(k_{r\theta}\) ((kJ mol\(^{-1}\)nm\(^{-2}\))

ユーリー・ブラッドリー

角度 [5]

3

5

\(\theta_0\) (度); \(k_\theta\) (kJ mol\(^{-1}\)rad\(^{-2}\)); \(r_{13}\) (ナノメートル); \(k_{UB}\) ((kJ mol\(^{-1}\)nm\(^{-2}\))

すべて

四次角

角度 [5]

3

6

\(\theta_0\) (度); \(C_{i=0,1,2,3,4}\) (KJRI)

表形式の角度

角度

3

8

表番号 (\(\geq 0\)); \(k\) (kJ mol\(^{-1}\))

\(k\)

線形角度

角度

3

9

\(a_0\); \(k_{lin}\) (NM2)

すべて

制限付き
曲げやすさ

角度

3

10

\(\theta_0\) (度); \(k_\theta\) (kJ mol\(^{-1}\))

適切な二次元

ジヘドラル

4

1

\(\phi_s\) (度); \(k_\phi\) (kJ mol\(^{-1}\)); 繰り返し

\(\phi,k\)

不適切な二面角

ジヘドラル

4

2

\(\xi_0\) (度); \(k_\xi\) (kJ mol\(^{-1}\)rad\(^{-2}\))

すべて

Ryckaert-Bellemans の二配角

ジヘドラル

4

3

\(C_0\), \(C_1\), \(C_2\), \(C_3\), \(C_4\), \(C_5\) (KJM)

すべて

不規則な周期的な二次元

ジヘドラル

4

4

\(\phi_s\) (度); \(k_\phi\) (kJ mol\(^{-1}\)); 繰り返し

\(\phi,k\)

フーリエ・ジヘダル

ジヘドラル

4

5

\(C_1\), \(C_2\), \(C_3\), \(C_4\), \(C_5\) (KJM)

すべて

表形式の二面角

ジヘドラル

4

8

表番号 (\(\geq 0\)); \(k\) (kJ mol\(^{-1}\))

\(k\)

適切な二次元の角 [8]

ジヘドラル

4

9

\(\phi_s\) (度); \(k_\phi\) (kJ mol\(^{-1}\)); 繰り返し

\(\phi,k\)

制限された二面体

ジヘドラル

4

10

\(\phi_0\) (度); \(k_\phi\) (kJ mol\(^{-1}\))

結合された曲げ-ねじれポテンシャル

ジヘドラル

4

11

\(k_\phi\) (KJM); A0, A1, A2, A3, A4

除外

exclusions

1

1つ以上のアトムインデックス

制約

制約 [4]

2

1

\(b_0\) (nm)

すべて

制約 [6]

制約

2

2

\(b_0\) (nm)

すべて

SETTLE

settles

1

1

\(d_{\mathrm{oh}}\), \(d_{\mathrm{hh}}\) (nm)

1-ボディ仮想サイト

virtual_sites1

2

1

仮想サイト(2体構成)

virtual_sites2

3

1

\(a\) ()

2-ボディ仮想サイト (fd)

virtual_sites2

3

2

\(d\) (nm)

仮想サイト(3体構成)

virtual_sites3

4

1

\(a\), \(b\) ()

3-body 仮想サイト (fd)

virtual_sites3

4

2

\(a\) (); \(d\) (nm)

3-body 仮想サイト (fad)

virtual_sites3

4

3

\(\theta\) (度); \(d\) (nm)

3-body 仮想サイト (出力)

virtual_sites3

4

4

\(a\), \(b\) (); \(c\) (NM)

4-body 仮想サイト (fdn)

virtual_sites4

5

2

\(a\), \(b\) (); \(c\) (nm)

N-ボディ仮想サイト (COG)

virtual_sitesn

1

1

1つ以上のアトムインデックスの作成

N-ボディ仮想サイト (COM)

virtual_sitesn

1

2

1つ以上のアトムインデックスの作成

N-ボディ仮想サイト (COW)

virtual_sitesn

1

3

1つ以上のペアで構成され、
アトムのインデックスと重みの構築

位置制約

position_restraints

1

1

\(k_{x}\), \(k_{y}\), \(k_{z}\) (NM2)

すべて

フラットボトムのポジション制約

position_restraints

1

2

\(g\), \(r\) (nm), \(k\) ((kJ mol\(^{-1}\)nm\(^{-2}\))

距離制約

distance_restraints

2

1

種類; ラベル; low, up\(_1\),\(_2\) (nm); 重み ()

二面拘束

dihedral_restraints

4

1

\(\phi_0\) (度); \(\Delta\phi\) (度); \(k_{\mathrm{dihr}}\) (kJ mol\(^{-1}\)rad\(^{-2}\))

すべて

方向制限

orientation_restraints

2

1

exp.; ラベル; \(\alpha\); \(c\) (U nm\(^{\alpha}\); 観測値 (U); 重み (U\(^{-1}\))

角度制限

angle_restraints

4

1

\(\theta_0\) (度); \(k_c\) (kJ mol\(^{-1}\)); 繰り返し

\(\theta,k\)

角度制限 (z)

angle_restraints_z

2

1

\(\theta_0\) (度); \(k_c\) (kJ mol\(^{-1}\)); 繰り返し

\(\theta,k\)

Description of the file layout:

  • セミコロン (;) と改行文字でコメントを囲む

  • 行末に `` で終わる場合、改行文字は無視されます。

  • 指示は [] で囲まれています。

  • トポロジー階層(必須に従う必要がある)は、3つのレベルで構成されています。

    • パラメータレベル、これは特定の力場仕様を定義します(詳細は:<tab-topfile1>を参照)。

    • 分子レベルで、1つ以上の分子定義(詳細は:ref:`表 %s <tab-topfile2>`を参照)を含む必要があります。

    • システムレベルで、システム固有の情報のみ(「[ system ]」と「[ molecules ]」)を含む。

  • 項目はスペースまたはタブで区切る必要があります。カンマを使用しないでください。

  • 分子内の原子は、1から連続して番号を付ける必要があります。

  • 同じ電荷グループにある原子は、連続してリストする必要があります。

  • 「結合された原子のタイプ名には、少なくとも1つの数字以外の文字を含める必要があります。」

  • このファイルは一度だけ解析されるため、前方参照は処理できません。つまり、使用する前にすべての項目を定義する必要があります。

  • 除外は、結合から生成することも、手動で上書きすることも可能です。

  • 結合された力の種類は、原子の種類から生成することも、個々の結合ごとに上書きすることも可能です。

  • 同じ種類の複数の結合相互作用を同じ原子に適用することも可能です。

  • 説明的なコメント行と空行の使用は強く推奨されます

  • すべてのパラメータレベルの指示は複数回使用でき、順序に関する制限はありません。ただし、ある原子型を使用するには、他のパラメータ定義で使用する前に定義する必要があります。

  • 特定の相互作用のパラメータが、同じ原子種類の組み合わせに対して複数回定義されている場合、最後の定義が使用されます。grompp は、異なる値を持つパラメータの再定義について警告を表示しますが、[dihedraltype] の場合は例外です。

  • 「[原子]」、「[結合]」、「[対]」、「[角]」などのいずれかを使用する際に、「[moleculetype]」を使用していない場合、それは無意味であり、警告が表示されます。

  • 「[ molecules ]」を使用する際に、「[ system ]」を使用していない場合、意味がなく警告が生成されます。

  • 「[ system ]」の後に、許可されているのは「[ molecules ]」のみです。

  • [ ] 内に未知の文字列を使用すると、次の指示までの一連のデータが無視され、警告が生成されます。

以下は、トポロジーファイルの例、「urea.top」です。

;
;       Example topology file
;
; The force-field files to be included
#include "amber99.ff/forcefield.itp"

[ moleculetype ]
; name  nrexcl
Urea         3

[ atoms ]
   1  C  1  URE      C      1     0.880229  12.01000   ; amber C  type
   2  O  1  URE      O      2    -0.613359  16.00000   ; amber O  type
   3  N  1  URE     N1      3    -0.923545  14.01000   ; amber N  type
   4  H  1  URE    H11      4     0.395055   1.00800   ; amber H  type
   5  H  1  URE    H12      5     0.395055   1.00800   ; amber H  type
   6  N  1  URE     N2      6    -0.923545  14.01000   ; amber N  type
   7  H  1  URE    H21      7     0.395055   1.00800   ; amber H  type
   8  H  1  URE    H22      8     0.395055   1.00800   ; amber H  type

[ bonds ]
    1    2
    1    3
    1    6
    3    4
    3    5
    6    7
    6    8

[ dihedrals ]
;   ai    aj    ak    al funct  definition
     2     1     3     4   9
     2     1     3     5   9
     2     1     6     7   9
     2     1     6     8   9
     3     1     6     7   9
     3     1     6     8   9
     6     1     3     4   9
     6     1     3     5   9

[ dihedrals ]
     3     6     1     2   4
     1     4     3     5   4
     1     7     6     8   4

[ position_restraints ]
; you wouldn't normally use this for a molecule like Urea,
; but we include it here for didactic purposes
; ai   funct    fc
   1     1     1000    1000    1000 ; Restrain to a point
   2     1     1000       0    1000 ; Restrain to a line (Y-axis)
   3     1     1000       0       0 ; Restrain to a plane (Y-Z-plane)

[ dihedral_restraints ]
; ai   aj    ak    al  type  phi  dphi  fc
    3    6     1    2     1  180     0  10
    1    4     3    5     1  180     0  10

; Include TIP3P water topology
#include "amber99.ff/tip3p.itp"

[ system ]
Urea in Water

[ molecules ]
;molecule name   nr.
Urea             1
SOL              1000

以下に説明文を示します。

#include “amber99.ff/forcefield.itp”: この行は、使用している力場に関する情報を読み込みます。これには、結合および非結合パラメータが含まれています。この例では、AMBER99力場を使用していますが、シミュレーションでは異なる力場を使用することも可能です。 grompp は、このファイルを自動的に探し、その内容をコピーして貼り付けます。その内容は share/top/amber99.ff/forcefield.itp} に表示され、以下のような内容が含まれています。

#define _FF_AMBER
#define _FF_AMBER99

[ defaults ]
; nbfunc        comb-rule       gen-pairs       fudgeLJ fudgeQQ
1               2               yes             0.5     0.8333

#include "ffnonbonded.itp"
#include "ffbonded.itp"

これらの #define ステートメントは、将来のトポロジーのコンポーネントが、AMBER 99 力場が使用されていることを認識できるように、条件を設定します。

[ デフォルト設定 ] :

  • nbfunc は非結合関数タイプです。 1 (Lennard-Jones) または 2 (Buckingham) を使用します。ただし、2 は gmx mdrun ではサポートされていません。

  • comb-rule は、組み合わせルールの番号(を参照::非結合パラメータ)。

  • gen-pairs はペア生成用です。デフォルトは「no」で、つまり、ペアタイプのリストから1〜4のパラメータを取得します。パラメータがリストに存在しない場合は、致命的なエラーで停止します。「yes」を設定すると、通常のLennard-Jonesパラメータから``fudgeLJ``を使用して、ペアリストに存在しない1〜4のパラメータを生成します。

  • fudgeLJ は、レンナー・ジョーズ 1-4 の相互作用を乗算する係数。デフォルトは 1。

  • fudgeQQ は、静電相互作用の 1-4 の値を乗算する係数です。デフォルトは 1 です。

  • \(N\) は、6-\(N\) のポテンシャルにおける斥力項のパラメータであり、GROMACS 4.5 以降、grompp\(N\) を読み込み、12 以外の値を使用します。この場合、表に記載された相互作用関数が使用されます (以前のバージョンでは、ユーザーが自分で相互作用関数を定義する必要がありました)。

注意: gen-pairsfudgeLJfudgeQQ、および \(N\) はオプションです。fudgeLJgen-pairs が「yes」に設定されている場合にのみ使用され、fudgeQQ は常に使用されます。ただし、\(N\) を指定する場合は、他のパラメータにも値を指定する必要があります。

その後、いくつかの #include ステートメントが、残りの力場を記述するために必要な大量のデータを追加します。ここではこれらをスキップし、「urea.top」に戻ります。そこでは、以下の内容を確認できます。

[ moleculetype ] : は、この トップ ファイルで指定する分子の名前を定義します。また、nrexcl = 3 は、3 結合以内の距離にある原子間の非結合相互作用を除外することを意味します。

[原子]: 分子を定義します。nrtype は固定されており、残りの部分はユーザーが定義します。したがって、atom は自由に名前を付けることができ、cgnr の値を大きくしたり小さくしたり(可能な場合)、電荷グループの合計電荷は 0 になるように設定できます。電荷もここで変更できます。

[ bonds ] : 説明不要。

[ペア]: LJ およびクーロン相互作用(1-4)

[ 角度 ] : コメントなし

[ 角度 ] : この場合、9つの適切な角度(funct = 1)、3つの不適切な角度(funct = 4)と、Ryckaert-Bellemans型の角度は存在しません。Ryckaert-Bellemans型の角度をトポロジーに含めたい場合は、以下の手順を実行してください(例:デカンの場合):

[ dihedrals ]
;  ai    aj    ak    al funct       c0       c1       c2
    1    2     3     4     3
    2    3     4     5     3

元の実装におけるアルカン類の相互作用131 では、1-4 相互作用のみが使用されていました。つまり、特定の力場を実装するには、トポロジーの [ pairs ] セクションから1-4 相互作用を削除する必要があります。現代の力場(例:OPLS/AA、Amber)では、ルールが異なり、Ryckaert-Bellemans のポテンシャルは、1-4 相互作用と組み合わせてコサイン系列として使用されます。

[ position_restraints ]: 選択された粒子を基準位置に調和的に固定します(参照:<ref>`positionrestraint`)。基準位置は、:ref:`grompp <gmx grompp>`によって別の座標ファイルから読み取られます。

[ dihedral_restraints ] : 選択された角度を基準値に制限します。角度制限の実装については、マニュアルの dihedralrestraint セクションを参照してください。 [dihedral_restraints] ディレクティブで指定されたパラメータは以下のとおりです。

  • type には、1 のみ有効な値があります。

  • phi は、マニュアルの \(\phi_0\) の値である eqn. %seqn. %s の中で定義されています。

  • dphi は、マニュアルの \(\Delta\phi\) の値です(参照:eqn. %s)。

  • fc は、マニュアルの \(\eqn. %s <eqndihre>\)k_{dihr} の値です。

#include “tip3p.itp” : 既存のトポロジーファイルを含める(詳細は「molitp」のセクションを参照)。

[ システム ]: システム名、ユーザーが定義

[ 分子 ]: これは、この トップ で定義されているシステム内の (サブ) 分子の総数を指定します。この例では、1つのウレア分子が1000個の水分子に溶解していることを示しています。分子の種類「SOL」は、「tip3p.itp」ファイルで定義されています。ここで使用される名前はすべて、先頭の moleculetype で指定された名前と一致する必要があります。分子の種類とそれらの分子の数を表すブロックの順序は、この topologygrompp に提供する際に付属する座標ファイルと一致する必要があります。分子のブロックは隣接する必要はありませんが、一部のツール(例:genion)は、特定の分子の種類の最初のまたは最後のブロックのみに作用する場合があります。また、これらのブロックはグループの定義(「グループ概念」セクションおよび「グループの使用」セクションを参照)とは関係ありません。

ファイル名: Molecule.itp

もし、頻繁に使用するトポロジーファイル(例えば、水分子の tip3p.itp など、すでに作成済みのもの)を作成する場合は、 molecule.itp ファイルを作成することをお勧めします。このファイルには、特定の分子に関する情報のみがリストされ、複数のシステムで [ moleculetype ] を再利用できるようになり、:ref:`pdb2gmx を呼び出す必要や、手動でコピー&ペーストする手間が省けます。以下に例として urea.itp を示します。

[ moleculetype ]
; molname   nrexcl
URE     3

[ atoms ]
   1  C  1  URE      C      1     0.880229  12.01000   ; amber C  type
...
   8  H  1  URE    H22      8     0.395055   1.00800   ; amber H  type

[ bonds ]
    1   2
...
    6   8
[ dihedrals ]
;   ai    aj    ak    al funct  definition
     2     1     3     4   9
...
     6     1     3     5   9
[ dihedrals ]
     3     6     1     2   4
     1     4     3     5   4
     1     7     6     8   4

:ref:`itp`ファイルを使用すると、非常に短い:ref:`top`ファイルが生成されます。

;
;       Example topology file
;
; The force field files to be included
#include "amber99.ff/forcefield.itp"

#include "urea.itp"

; Include TIP3P water topology
#include "amber99/tip3p.itp"

[ system ]
Urea in Water

[ molecules ]
;molecule name   nr.
Urea             1
SOL              1000

条件付き定義

GROMACS の非常に強力な機能の一つは、:ref:`top ファイル内で #ifdef ステートメントを使用することです。このステートメントと、以前の amber99.ff/forcefield.itp などで確認した #define ステートメントのような関連ステートメントを使用することで、同じ :ref:`top ファイル内で 1 つの分子に対して異なるパラメータを使用できます。例として TFE の場合、原子に対して異なる電荷を使用するオプションがあります。これは、De Loof らの電荷:ref:132 または Van Buuren と Berendsen の電荷:ref:133 です。実際には、C のプリプロセッサである cpp の多くの機能を使用できます。なぜなら、:ref:`grompp は、ファイル全体をスキャンするための同様のプリプロセッシング関数が含まれているからです。 #ifdef オプションを使用する方法は次のとおりです。

  • どちらか一方の方法を使用してください。:ref:`mdp`ファイル(grompp <gmx grompp> の入力パラメータを含む)でオプション ``define = -DDeLoof` を使用するか、または、:ref:`top`またはitp`ファイルで `#define DeLoof という行を先頭に記述してください。

  • 以下のように、あなたの トップ#ifdef ステートメントを記述してください。

...


[ atoms ]
; nr     type     resnr    residu     atom      cgnr      charge        mass
#ifdef DeLoof
; Use Charges from DeLoof
   1        C        1        TFE        C         1        0.74
   2        F        1        TFE        F         1       -0.25
   3        F        1        TFE        F         1       -0.25
   4        F        1        TFE        F         1       -0.25
   5      CH2        1        TFE      CH2         1        0.25
   6       OA        1        TFE       OA         1       -0.65
   7       HO        1        TFE       HO         1        0.41
#else
; Use Charges from VanBuuren
   1        C        1        TFE        C         1        0.59
   2        F        1        TFE        F         1       -0.2
   3        F        1        TFE        F         1       -0.2
   4        F        1        TFE        F         1       -0.2
   5      CH2        1        TFE      CH2         1        0.26
   6       OA        1        TFE       OA         1       -0.55
   7       HO        1        TFE       HO         1        0.3
#endif

[ bonds ]
;  ai    aj funct           c0           c1
    6     7     1 1.000000e-01 3.138000e+05
    1     2     1 1.360000e-01 4.184000e+05
    1     3     1 1.360000e-01 4.184000e+05
    1     4     1 1.360000e-01 4.184000e+05
    1     5     1 1.530000e-01 3.347000e+05
    5     6     1 1.430000e-01 3.347000e+05
...

このメカニズムは、:ref:`pdb2gmx を使用して、オプションのポーズ制約(positionrestraint)を実装するために使用されます。これは、特定の #define が設定されている(そして正しく記述されている!)場合にのみ意味のある itp ファイルを #include することで実現されます。

エネルギー計算のためのトポロジー

A と B の 2 つのシステム間の自由エネルギー差は、sec. fecalc に記載されている方法で計算できます。 A と B は、同じ数の分子と、同じ数の原子で構成されたトポロジーで記述されます。 Masse と非結合相互作用は、[ atoms ] ディレクティブの下で B パラメータを追加することで調整できます。 結合相互作用は、結合タイプまたは結合相互作用に B パラメータを追加することで調整できます。 調整できるパラメータは、Tables 910 にリストされています。 相互作用の λ 依存性は、sec. feia に記載されています。 使用されている結合パラメータ(結合相互作用の定義行、または結合タイプリスト内の原子タイプで参照されるパラメータ)は、Table 11 に説明されています。 ほとんどの場合、設定は直感的に機能します。 結合相互作用における A と B の原子タイプがすべて同一ではなく、B 状態に対してパラメータが定義されていない場合(定義行または結合タイプリストで参照)、grompp は A 状態のパラメータを使用し、警告を表示します。 自由エネルギー計算の場合、トポロジー B (λ = 1) のすべてのパラメータまたはパラメータを、通常のパラメータと同じ行に、通常のパラメータと同じ順序で追加する必要があります。 GROMACS 4.6 以降では、λ がベクトルとして扱われる場合、bonded-lambdas コンポーネントは、明示的に制約としてラベル付けされていないすべての結合項を制御します。 制約項は、restraint-lambdas コンポーネントによって制御されます。

表 11 フリーエネルギートポロジーで使用される結合パラメータは、結合相互作用の定義の行に記載されているか、または原子の種類に基づいて結合タイプのセクションで参照されます。 A と B は、それぞれ状態 A と B に使用されるパラメータを示し、+ と \(-\) は、トポロジーにパラメータが存在するかどうか(存在しない場合)を示し、x は、パラメータが存在しても影響がないことを示します。

B-状態原子タイプ

すべてが同じ

A-状態原子型

パラメータ

行単位

パラメータ (A原子) | ボンドされたタイプ (A原子) | ボンドされたタイプ (B原子)

期待されるメッセージ

A

B

A

B

A

B

はい

+AB

\(-\)

x

x

はい

+A

+B

x

x

はい

\(-\)

\(-\)

\(-\)

\(-\)

エラー

はい

\(-\)

\(-\)

+AB

\(-\)

はい

\(-\)

\(-\)

+A

+B

いいえ

+AB

\(-\)

x

x

x

x

警告

いいえ

+A

+B

x

x

x

x

いいえ

\(-\)

\(-\)

\(-\)

\(-\)

x

x

エラー

いいえ

\(-\)

\(-\)

+AB

\(-\)

\(-\)

\(-\)

警告

いいえ

\(-\)

\(-\)

+A

+B

\(-\)

\(-\)

警告

いいえ

\(-\)

\(-\)

+A

x

+B

\(-\)

いいえ

\(-\)

\(-\)

+A

x

+B

以下は、GROMOS-96 力場を使用して、200 のプロパノールから 200 のペンタンへの変換を示すトポロジーの例です。

; Include force field parameters
#include "gromos43a1.ff/forcefield.itp"

[ moleculetype ]
; Name            nrexcl
PropPent          3

[ atoms ]
; nr type resnr residue atom cgnr  charge    mass  typeB chargeB  massB
  1    H    1     PROP    PH    1   0.398    1.008  CH3     0.0  15.035
  2   OA    1     PROP    PO    1  -0.548  15.9994  CH2     0.0  14.027
  3  CH2    1     PROP   PC1    1   0.150   14.027  CH2     0.0  14.027
  4  CH2    1     PROP   PC2    2   0.000   14.027
  5  CH3    1     PROP   PC3    2   0.000   15.035

[ bonds ]
;  ai    aj funct    par_A  par_B
    1     2     2    gb_1   gb_26
    2     3     2    gb_17  gb_26
    3     4     2    gb_26  gb_26
    4     5     2    gb_26

[ pairs ]
;  ai    aj funct
    1     4     1
    2     5     1

[ angles ]
;  ai    aj    ak funct    par_A   par_B
    1     2     3     2    ga_11   ga_14
    2     3     4     2    ga_14   ga_14
    3     4     5     2    ga_14   ga_14

[ dihedrals ]
;  ai    aj    ak    al funct    par_A   par_B
    1     2     3     4     1    gd_12   gd_17
    2     3     4     5     1    gd_17   gd_17

[ system ]
; Name
Propanol to Pentane

[ molecules ]
; Compound        #mols
PropPent          200

「PC2」と「PC3」のような、揺さばれない原子は、Bパラメータの指定は不要です。なぜなら、BパラメータはAパラメータからコピーされるからです。揺さばれない原子間の結合は、例示されたトポロジーの最後の結合と同様に、Bパラメータの指定は不要です。OPLS/AA力場を使用するトポロジーでは、AパラメータとBパラメータの両方が原子の種類によって決定されるため、結合パラメータは不要です。1つまたは2つの揺さばれる原子を伴う非結合相互作用では、自由エネルギー摂動関数を使用します。2つの揺さばれない原子間の非結合相互作用では、通常の関数を使用します。つまり、例えば、粒子の電荷のみが変化する場合、λが0または1でない場合、レンナー・ジョーンズ相互作用も影響を受けます。

注意: このトポロジーは、GROMOS-96 力場を使用しており、結合相互作用は原子の種類によって決定されません。結合相互作用の文字列は、Cコンパイラによって変換されます。力場パラメータファイルには、以下のような行が含まれています。

#define gb_26       0.1530  7.1500e+06

#define gd_17     0.000       5.86          3

制約による強制

分子内の2つの原子間の制約力を、AとBトポロジーで異なる長さの制約を追加することで、フリーエネルギーパータブルコードで計算できます。Bの長さをAの長さよりも1nm長くし、λを一定に0に保つと、ハミルトニアンのλに対する微分が制約力となります。分子間の制約については、pullコードを使用できます(sec. :ref:`pull`を参照)。以下は、水中で2つのメタンを1つの「分子」に結合して、2つのメタン間の0.7nmの制約力を計算する例です。注意|Gromacs|における「分子」の定義は、必ずしも化学的な分子の定義と一致するわけではありません。|Gromacs|では、「分子」は、同時に考慮したい原子のグループとして定義できます。追加された制約は、関数型2であり、これは除外の生成には使用されません(sec. :ref:`excl`を参照)。制約のフリーエネルギー項は、微分項に含まれており、特に「bonded-lambdas」コンポーネントに明示的に含まれています。ただし、制約を変更するためのフリーエネルギーは、BARおよびMBARで使用されるポテンシャルエネルギーの差には含まれていません。これは、各制約コンポーネントでエネルギーを再評価する必要があるためです。この機能は、後で使用されるバージョンで実装予定です。
; Include force-field parameters
#include "gromos43a1.ff/forcefield.itp"

[ moleculetype ]
; Name            nrexcl
Methanes               1

[ atoms ]
; nr   type   resnr  residu   atom    cgnr     charge    mass
   1    CH4     1     CH4      C1       1          0    16.043
   2    CH4     1     CH4      C2       2          0    16.043
[ constraints ]
;  ai    aj funct   length_A  length_B
    1     2     2        0.7       1.7

#include "gromos43a1.ff/spc.itp"

[ system ]
; Name
Methanes in Water

[ molecules ]
; Compound        #mols
Methanes              1
SOL                2002

座標ファイル

ファイルには、GROMOS-87形式の分子構造が含まれています。以下にサンプルを示します。

MD of 2 waters, reformat step, PA aug-91
    6
    1WATER  OW1    1   0.126   1.624   1.679  0.1227 -0.0580  0.0434
    1WATER  HW2    2   0.190   1.661   1.747  0.8085  0.3191 -0.7791
    1WATER  HW3    3   0.177   1.568   1.613 -0.9045 -2.6469  1.3180
    2WATER  OW1    4   1.275   0.053   0.622  0.2519  0.3140 -0.1734
    2WATER  HW2    5   1.337   0.002   0.680 -1.0641 -1.1349  0.0257
    2WATER  HW3    6   1.326   0.120   0.568  1.9427 -0.8216 -0.0244
   1.82060   1.82060   1.82060

この形式は固定されており、つまり すべての列が固定された位置にあります。ご自身のプログラムでこのようなファイルを読み取る場合、|Gromacs|ライブラリを使用せずに、以下の形式を使用できます。

C形式: “%5i%5s%5s%5i%8.3f%8.3f%8.3f%8.4f%8.4f%8.4f”

あるいは、より正確には、タイトル など を含む場合、以下のように表示されます。

"%s\n", Title
"%5d\n", natoms
for (i=0; (i<natoms); i++) {
  "%5d%-5s%5s%5d%8.3f%8.3f%8.3f%8.4f%8.4f%8.4f\n",
    residuenr,residuename,atomname,atomnr,x,y,z,vx,vy,vz
}
"%10.5f%10.5f%10.5f%10.5f%10.5f%10.5f%10.5f%10.5f%10.5f\n",
  box[X][X],box[Y][Y],box[Z][Z],
  box[X][Y],box[X][Z],box[Y][X],box[Y][Z],box[Z][X],box[Z][Y]

フォーラン形式: (i5,2a5,i5,3f8.3,3f8.4)

したがって、confin.gro は GROMACS の座標ファイルであり、GROMOS-87 ファイルとほぼ同じです(GROMOS ユーザー向け:ntx=7 で使用する場合)。唯一の違いは、GROMACS がテンソルを使用する箱であることです(ベクトルを使用しない)。