GROMACS計算の下準備 ~複数成分系の場合~

分子動力学

今回は、複数成分系の場合を対象に、GROMACSで分子動力学計算を行うための下準備を行っていきます。以前の記事「GROMACS計算の下準備 ~分子構造作成・力場割り当て・分子の集合体の準備~」は単一成分系の場合で解説しました。複数成分系の場合は少し手順を変更しないといけない場合があるので、ベンゼンとエタノールをそれぞれ250分子入れた混合系を計算する場合を例にして、変更点を説明していきます。

主な手順は「GROMACS計算の下準備 ~分子構造作成・力場割り当て・分子の集合体の準備~」で解説していますので、今回は変更点のみをまとめた記事にします。前回記事と合わせて参考にしてください。

分子構造の作成

ここは大きな変更はなく、benzene.molと同様にethanol.molを作成すればOKです。

力場の割り当て

ここは変更が必要です。まず、単一成分の場合と同様にacpypeの実行まで行い、以下のファイルを生成してください。

 ・benzene_antechamber_GMX.top
 ・benzene_antechamber_GMX.gro
 ・benzene_antechamber_GMX.itp
 ・ethanol_antechamber_GMX.top
 ・ethanol_antechamber_GMX.gro
 ・ethanol_antechamber_GMX.itp

benzene_antechamber_GMX.top、ethanol_antechamber_GMX.topの以下部分は同様に削除してください。

; Ligand position restraints
#ifdef POSRES_LIG
#include "posre_benzene_antechamber.itp"
#endif

次に、複数成分用の.topファイルを生成します。「GROMACS計算の実行」の記事で記載していますが、インプットの.tprファイルを生成するにあたって、.topファイルを指定します。この際、.topファイルは1つしか指定できないので、benzene_antechamber_GMX.top、ethanol_antechamber_GMX.topをそれぞれ指定することはできません。どうすれば良いかを説明します。

ファイル名「multi_component.top」という名前でファイルを以下のように作成します。ファイル名は何でも良いですが、複数成分系であることが分かるようにしておくと良いかと思います。

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

[ atomtypes ]
;name   bond_type     mass     charge   ptype   sigma         epsilon       Amb
 ca       ca          0.00000  0.00000   A     3.39967e-01   3.59824e-01 ; 1.91  0.0860
 ha       ha          0.00000  0.00000   A     2.59964e-01   6.27600e-02 ; 1.46  0.0150
 c3       c3          0.00000  0.00000   A     3.39967e-01   4.57730e-01 ; 1.91  0.1094
 oh       oh          0.00000  0.00000   A     3.06647e-01   8.80314e-01 ; 1.72  0.2104
 h1       h1          0.00000  0.00000   A     2.47135e-01   6.56888e-02 ; 1.39  0.0157
 hc       hc          0.00000  0.00000   A     2.64953e-01   6.56888e-02 ; 1.49  0.0157
 ho       ho          0.00000  0.00000   A     0.00000e+00   0.00000e+00 ; 0.00  0.0000

#include "benzene_antechamber_GMX.itp"
#include "ethanol_antechamber_GMX.itp"

[ system ]
 multi

[ molecules ]
; Compound        nmols
 benzene_antechamber 250   
 ethanol_antechamber 250   

どのように作成しているかについて、上から順に説明していきます。[ defaults ]はbenzene_antechamber_GMX.top、またはethanol_antechamber_GMX.topからコピペすればOKです。

[ atomtypes ]は、benzene_antechamber_GMX.itpとethanol_antechamber_GMX.itpの[ atomtypes ]をコピペしてまとめたものになります。nameの部分がcaとhaはベンゼン、それ以降の部分はエタノールの情報をコピペしたものです。まとめる際、組み合わせる分子によっては同一のnameを持った原子が存在する場合があります。その場合は、被っている部分は削除してOKです。

ここが注意点ですが、元の.itpファイルの[ atomtypes ]は削除してください。エタノールであれば以下の部分です、ここを全て削除します。なぜ削除するかというと、GROMACSがインプットを読み込む際、[ atomtypes ]は一度しか定義できないためです。そのため、ベンゼンとエタノールの[ atomtypes ]を一つにまとめてしまい、multi_component.topへ記載しています。

[ atomtypes ]
;name   bond_type     mass     charge   ptype   sigma         epsilon       Amb
 c3       c3          0.00000  0.00000   A     3.39967e-01   4.57730e-01 ; 1.91  0.1094
 oh       oh          0.00000  0.00000   A     3.06647e-01   8.80314e-01 ; 1.72  0.2104
 h1       h1          0.00000  0.00000   A     2.47135e-01   6.56888e-02 ; 1.39  0.0157
 hc       hc          0.00000  0.00000   A     2.64953e-01   6.56888e-02 ; 1.49  0.0157
 ho       ho          0.00000  0.00000   A     0.00000e+00   0.00000e+00 ; 0.00  0.0000

「#include “benzene_antechamber_GMX.itp”」と「#include “ethanol_antechamber_GMX.itp”」は読み込むitpファイルを指定しています。benzene_antechamber_GMX.topとethanol_antechamber_GMX.topからコピペすればOKです。

[ molecules ]は単一成分の場合と同様に、シミュレーションボックスに入れる分子と数を指定します。

これで複数成分用の.topファイルが準備完了です。

分子の集合体の準備

同様の手順で以下のファイルを生成して、packmolのインプットを修正すればOKです。ベンゼン単一の場合と同様に、エタノールの部分を追記するだけです。その後、packmolの実行、生成したpdbファイルをgroファイルに変換すれば完了です。

 ・benzene_antechamber_GMX.pdb
 ・ethanol_antechamber_GMX.pdb

tolerance 2.0
filetype pdb

structure benzene_antechamber_GMX.pdb
number 250
inside box 0.0 0.0 0.0 50.0 50.0 50.0
end structure

structure ethanol_antechamber_GMX.pdb
number 250
inside box 0.0 0.0 0.0 50.0 50.0 50.0
end structure

output packmol_out.pdb

tprファイルの生成

GROMACS計算の実行」で記載していますが、GROMACSを実行するためのバイナリファイル、.tprファイルを生成する必要があります。この際、複数成分系の場合は作成したmulti_component.topを以下のように指定すればOKです。

gmx grompp -c initial.gro -p multi_component.top -o minimize -f minimize.mdp

おわりに

今回は複数成分系の場合を対象に、下準備の手順を紹介しました。複数成分系の.topファイルの作成は、最初はわかりにくいかもしれませんが、記事を参考に試して頂ければと思います。3成分、4成分となっても手順に変更はないので、同じように試してみてください。

コメント

  1. 初心者 より:

    質問失礼します。acpypeを用いて作った有機分子同士を混ぜる方法は分かったのですが、tip4pといった水モデルや単純なLJ系(希ガス系)とacpypeで作った有機分子をを混ぜる場合はどのようにすればよいのでしょうか。

    • seth より:

      ご質問ありがとうございます。

      まずtip4pについてですが、itpとgroファイルがGROMACSのソースコードに同梱されています。これらをacpypeで作ったitp等と一緒に使えば良いですが、少し修正が必要です。

      itpファイルは「/share/top/amber99.ff/tip4p.itp」を用いれば良いですが、ここにはLJパラメータが記載されていないので、同一フォルダにある「ffnonbonded.itp」の値を使います。本文の例で説明すると、multi_component.topの[ atomtypes ]部分にffnonbonded.itpの該当パラメータを追記し、「#include “tip4p.itp”」でtip4p.itpを読み込むようにします。あとは[ molecules ]の部分をSOL 100のように入れたい分子数を追記します、tip4p.itpのmol_nameがSOLなので名前もSOLを指定します。

      分子の集合体を準備するにあたっては、groファイル「/share/top/tip4p.gro」を修正して用いると良いです。このgroファイルはtip4pが複数入ったものになるので、まずは1分子だけ入った状態にします。具体的には、2行目の原子数が864となっているので、4に変更します。その後、1SOLと書かれた部分以外の座標データを全て削除し、最後のセルサイズの行を残します。これで1分子だけ入った状態になるので、このtip4p.groをpdbに変換し、packmolのインプットとして用いればOKです。

      単純なLJ系(希ガス系)についてはLJパラメータがあるのであれば、tip4pの場合と同様に[ atomtypes ]部分にパラメータを記載します。itpファイルは単原子の場合手動で簡単に作れます、acpypeで生成したitpを参考にして[ moleculetype ]と[ atoms ]を記載すれば良いです。packmolに渡す分子構造も単原子の場合は手動で作ったほうが早いです、他のpdbを参考にして1原子のみ入ったpdbを準備すれば良いです。

      LJパラメータがない場合は論文等から持ってくる必要があります。