GROMACS

home

GROMACSチュートリアル① > 【補足】mdpファイルの詳細

【GROMACSチュートリアル① 補足】 mdpファイルの詳細

ここでは、タンパク質のシミュレーションで使用したmdpファイルの詳細に触れる。 MDシミュレーションの一般的な流れと使用したmdpファイルは(ions.mdpを除いて)次のようなものであった。

  1. エネルギー最小化 : minim.mdp
  2. NVT平衡化 : nvt.mdp
  3. NPT平衡化 : npt.mdp
  4. 本計算 : md.mdp

それぞれのファイルでどのような設定を行っているのか、重要なポイントに絞って解説する。 ここで紹介しなかったコマンドやより詳しい解説はGROMACS.mdpオプションまたは公式ドキュメントを参照してほしい。 なお、全ての設定に対してコメントが付いているので、それを読んで理解してもらってもよいだろう。

minim.mdp

エネルギー最小化のために使用したminim.mdpの内容は次のようなものであった。

minim.mdp

; minim.mdp - used as input into grompp to generate em.tpr ; Parameters describing what to do, when to stop and what to save integrator = steep ; Algorithm (steep = steepest descent minimization) emtol = 1000.0 ; Stop minimization when the maximum force < 1000.0 kJ/mol/nm emstep = 0.01 ; Minimization step size nsteps = 50000 ; Maximum number of (minimization) steps to perform ; Parameters describing how to find the neighbors of each atom and how to calculate the interactions nstlist = 1 ; Frequency to update the neighbor list and long range forces cutoff-scheme = Verlet ; Buffered neighbor searching ns_type = grid ; Method to determine neighbor list (simple, grid) coulombtype = PME ; Treatment of long range electrostatic interactions rcoulomb = 1.0 ; Short-range electrostatic cut-off rvdw = 1.0 ; Short-range Van der Waals cut-off pbc = xyz ; Periodic Boundary Conditions in all 3 dimensions

1つ目のセクションでは、エネルギー最小化のためにintegrator = steepで最急降下アルゴリズムを採用している。 emtol = 1000.0は最大力Fmaxが1000 kJ mol-1 nm-1以下の値となるまでエネルギー最小化を行う設定をしている。 エネルギー最小化の最大ステップ数はnsteps = 50000としていて、これより前にエネルギーが最小化された場合はそこで停止する。

また、2つ目のセクションでは非結合相互作用(LJ相互作用、静電相互作用)に関する設定をしている。 pbc = xyzは3次元の周期的境界条件を指定している。

nvt.mdp

300 Kにおける100 psのNVT平衡化のために使用したnvt.mdpの内容は次のようなものであった。

nvt.mdp

title = OPLS Lysozyme NVT equilibration define = -DPOSRES ; position restrain the protein ; Run parameters integrator = md ; leap-frog integrator nsteps = 50000 ; 2 * 50000 = 100 ps dt = 0.002 ; 2 fs ; Output control nstxout = 500 ; save coordinates every 1.0 ps nstvout = 500 ; save velocities every 1.0 ps nstenergy = 500 ; save energies every 1.0 ps nstlog = 500 ; update log file every 1.0 ps ; Bond parameters continuation = no ; first dynamics run constraint_algorithm = lincs ; holonomic constraints constraints = h-bonds ; bonds involving H are constrained lincs_iter = 1 ; accuracy of LINCS lincs_order = 4 ; also related to accuracy ; Nonbonded settings cutoff-scheme = Verlet ; Buffered neighbor searching ns_type = grid ; search neighboring grid cells nstlist = 10 ; 20 fs, largely irrelevant with Verlet rcoulomb = 1.0 ; short-range electrostatic cutoff (in nm) rvdw = 1.0 ; short-range van der Waals cutoff (in nm) DispCorr = EnerPres ; account for cut-off vdW scheme ; Electrostatics coulombtype = PME ; Particle Mesh Ewald for long-range electrostatics pme_order = 4 ; cubic interpolation fourierspacing = 0.16 ; grid spacing for FFT ; Temperature coupling is on tcoupl = V-rescale ; modified Berendsen thermostat tc-grps = Protein Non-Protein ; two coupling groups - more accurate tau_t = 0.1 0.1 ; time constant, in ps ref_t = 300 300 ; reference temperature, one for each group, in K ; Pressure coupling is off pcoupl = no ; no pressure coupling in NVT ; Periodic boundary conditions pbc = xyz ; 3-D PBC ; Velocity generation gen_vel = yes ; assign velocities from Maxwell distribution gen_temp = 300 ; temperature for Maxwell distribution gen_seed = -1 ; generate a random seed

NVT平衡化のMD計算を行うためにintegrator = mdとしている。 タイムステップは2 fsに設定するので、psの単位でdt = 0.002としており、100 psのシミュレーションのためにはnsteps = 50000が必要になる。

シミュレーションを始める際には原子に初速度が必要であるので、シミュレーション開始時にgen_vel = yesでマクスウェル分布に従ってランダムな速度を与える。 温度制御はtcoupl = V-rescaleという方法で行い、温度はref_t = 300を参照する。 NVTアンサンブルなので圧力は制御せず、pcoupl = noとしている。

結果の出力は「Output control」の部分で行い、原子の座標や速度、系のエネルギー、シミュレーションのログファイルを何ステップおきに出力するかを設定する。 タイムステップは2 fsなので、nstxout = 500とすると座標の出力は1 psおきに設定される。

npt.mdp

300 K、1barにおける100 psのNPT平衡化のために使用したnpt.mdpの内容は次のようなものであった。

npt.mdp

title = OPLS Lysozyme NPT equilibration define = -DPOSRES ; position restrain the protein ; Run parameters integrator = md ; leap-frog integrator nsteps = 50000 ; 2 * 50000 = 100 ps dt = 0.002 ; 2 fs ; Output control nstxout = 500 ; save coordinates every 1.0 ps nstvout = 500 ; save velocities every 1.0 ps nstenergy = 500 ; save energies every 1.0 ps nstlog = 500 ; update log file every 1.0 ps ; Bond parameters continuation = yes ; Restarting after NVT constraint_algorithm = lincs ; holonomic constraints constraints = h-bonds ; bonds involving H are constrained lincs_iter = 1 ; accuracy of LINCS lincs_order = 4 ; also related to accuracy ; Nonbonded settings cutoff-scheme = Verlet ; Buffered neighbor searching ns_type = grid ; search neighboring grid cells nstlist = 10 ; 20 fs, largely irrelevant with Verlet scheme rcoulomb = 1.0 ; short-range electrostatic cutoff (in nm) rvdw = 1.0 ; short-range van der Waals cutoff (in nm) DispCorr = EnerPres ; account for cut-off vdW scheme ; Electrostatics coulombtype = PME ; Particle Mesh Ewald for long-range electrostatics pme_order = 4 ; cubic interpolation fourierspacing = 0.16 ; grid spacing for FFT ; Temperature coupling is on tcoupl = V-rescale ; modified Berendsen thermostat tc-grps = Protein Non-Protein ; two coupling groups - more accurate tau_t = 0.1 0.1 ; time constant, in ps ref_t = 300 300 ; reference temperature, one for each group, in K ; Pressure coupling is on pcoupl = Parrinello-Rahman ; Pressure coupling on in NPT pcoupltype = isotropic ; uniform scaling of box vectors tau_p = 2.0 ; time constant, in ps ref_p = 1.0 ; reference pressure, in bar compressibility = 4.5e-5 ; isothermal compressibility of water, bar^-1 refcoord_scaling = com ; Periodic boundary conditions pbc = xyz ; 3-D PBC ; Velocity generation gen_vel = no ; Velocity generation is off

NPT平衡化のMDの設定はNVTとほとんど同じであるが、NPTアンサンブルでは圧力制御を行うためpcoupl = Parrinello-Rahmanとしている。 この時の圧力の値はref_p = 1.0を参照している。 温度制御はNVT平衡化の設定のままで継続して行っている。

またNPT平衡化では、系の原子に初速度を与える代わりにNVT平衡化の最終状態を引き継ぐため、gen_vel = no及びcontinuation = yesへ変更をしている。 こうすることで、指定したチェックポイントファイルを読み込み、シミュレーションを継続することが可能になる。

md.mdp

最後に、本計算で用いたmd.mdpの内容を確認する。 本計算はNPTアンサンブルで行っているので、シミュレーション条件はNPT平衡化とほとんど同じである。

md.mdp

title = OPLS Lysozyme NPT equilibration ; Run parameters integrator = md ; leap-frog integrator nsteps = 500000 ; 2 * 500000 = 1000 ps (1 ns) dt = 0.002 ; 2 fs ; Output control nstxout = 0 ; suppress bulky .trr file by specifying nstvout = 0 ; 0 for output frequency of nstxout, nstfout = 0 ; nstvout, and nstfout nstenergy = 5000 ; save energies every 10.0 ps nstlog = 5000 ; update log file every 10.0 ps nstxout-compressed = 5000 ; save compressed coordinates every 10.0 ps compressed-x-grps = System ; save the whole system ; Bond parameters continuation = yes ; Restarting after NPT constraint_algorithm = lincs ; holonomic constraints constraints = h-bonds ; bonds involving H are constrained lincs_iter = 1 ; accuracy of LINCS lincs_order = 4 ; also related to accuracy ; Neighborsearching cutoff-scheme = Verlet ; Buffered neighbor searching ns_type = grid ; search neighboring grid cells nstlist = 10 ; 20 fs, largely irrelevant with Verlet scheme rcoulomb = 1.0 ; short-range electrostatic cutoff (in nm) rvdw = 1.0 ; short-range van der Waals cutoff (in nm) ; Electrostatics coulombtype = PME ; Particle Mesh Ewald for long-range electrostatics pme_order = 4 ; cubic interpolation fourierspacing = 0.16 ; grid spacing for FFT ; Temperature coupling is on tcoupl = V-rescale ; modified Berendsen thermostat tc-grps = Protein Non-Protein ; two coupling groups - more accurate tau_t = 0.1 0.1 ; time constant, in ps ref_t = 300 300 ; reference temperature, one for each group, in K ; Pressure coupling is on pcoupl = Parrinello-Rahman ; Pressure coupling on in NPT pcoupltype = isotropic ; uniform scaling of box vectors tau_p = 2.0 ; time constant, in ps ref_p = 1.0 ; reference pressure, in bar compressibility = 4.5e-5 ; isothermal compressibility of water, bar^-1 ; Periodic boundary conditions pbc = xyz ; 3-D PBC ; Dispersion correction DispCorr = EnerPres ; account for cut-off vdW scheme ; Velocity generation gen_vel = no ; Velocity generation is off

1 nsのシミュレーションを行っているのでnsteps = 500000が必要である。

本計算での設定で特徴的なのは、今まで指定していたdefine = -DPOSRESを指定していないことである。 これはタンパク質の位置拘束を有効にする設定で、平衡化の段階ではタンパク質が大きく動かないようにするために指定していた。 しかし、本計算ではタンパク質のダイナミクスを観測するために指定を外している。

また出力形式であるが、今回は座標のみを書き出したいので、ファイルサイズの小さいxtc形式のトラジェクトリを指定している。 そのためtrr形式はnstxout = 0として出力せず、nstxout-compressed = 5000として5000ステップおきにxtc形式のトラジェクトリを出力している。 これで10 psおきに座標が記録されることになるので、1 nsのシミュレーションでは約100ステップ分のトラジェクトリを得ることになる。 VMDでトラジェクトリを眺める時に、読み込まれたステップ数を確認してほしい。

まとめ

mdpファイルの形式と、その大まかな内容を見てきた。 詳細な説明はしていないので、次のリンクを参考にしてさらに理解を深めてほしい。

PREVIOUS TOP

NEXT