Contents

PKC C1ドメインとphorbol-13-acetate複合体のMDシミュレーション

GromacsでPKC C1ドメインとリガンドの複合体のMDシミュレーションを行うためのメモです.

力場

  • タンパク質: AMBER ff14SB + ZAFF
  • リガンド: GAFF2
  • 水: TIP3P

参考サイト: Ag++: antechamberを使ってGaussian 09からAMBER用の力場・電荷パラメータを作成する

トポロジーファイルの作成

タンパク質ファイルの側鎖補完,残基付加,修正については,別ページと同じ.modeller.pdbからリガンド座標をPRB.pdbとして一旦分離.Avogadroでリガンド座標ファイル (PRB.pdb) を開き,結合の不飽和度を修正した後,水素を付加,MMFF94s力場で最適化,pdb形式で保存する.重原子と水素原子で残基名と残基番号が異なる場合は統一する(重要.Avogadroで付加した水素原子の見出しはHETATM,残基名はLIG,残基番号は1になっている).

$ antechamber -fi pdb -fo prepi -i PRB.pdb -o PRB.prep -c bcc -at gaff2
$ parmchk2 -i PRB.prep -o PRB.frcmod -f prepi -s gaff2
$ tleap
> source leaprc.gaff2
> loadamberprep PRB.prep
> loadamberparams PRB.frcmod
> mol = loadpdb NEWPDB.PDB
> saveamberparm mol PRB.prmtop PRB.inpcrd
> quit

Antechamberの実行には1分半程かかる.Amber16付属のParmEdを使って,AMBER形式のファイルをGROMACS形式へ変換する.

$ python
>>> import parmed as pmd
>>> amber = pmd.load_file('PRB.prmtop',xyz='PRB.inpcrd')
>>> amber.save('gromacs.top')
>>> amber.save('gromacs.gro')
>>> quit()

ここで作成したトポロジーが正常かどうか,Gromacsでエネルギー最小化計算を実行してみる.

$ gmx grompp -f em.mdp -c gromacs.gro -p gromacs.top -o em.tpr
$ gmx mdrun -v -deffnm em

em.groをpymolで開いてみると,13位周辺が歪んだ構造になってしまっている.PRB_GMX.topをテキストエディタで開いて,13位酸素原子 (今回はOA1) に関するパラメータを見てみると,

[ bonds ]
     52     53     1   0.14370 233885.600000
[ angles ]
     48     52     53     1   115.68005 693.590048
     27     52     53     1   59.09003 975.641856
     28     52     53     1   59.09003 975.641856

2箇所のangleが59.09°となっていて,どうやらシクロプロパン環の炭素原子 (atom type: cx) に結合した13位酸素原子 (atom type: os) はepoxideの酸素原子と判定しているらしい (エステルとエーテルのsp3酸素原子のatom typeは同じ).また,

1-4: angle 28 52 duplicates bond ('triangular' bond) or angle ('square' bond)

1-4: angle 27 52 duplicates bond ('triangular' bond) or angle ('square' bond)

1-4: angle 27 28 duplicates bond ('triangular' bond) or angle ('square' bond)

というWarningが出る.シクロプロパン環があると出るWarningとのこと (2つのアングルを指定すれば,後1つは必要ないため).

シクロプロパン環に結合したエステル基のパラメータがないので,この部分の角度については計算値を入れることにした.
BabelでGaussianのinputファイルに変換した後,headerを修正して構造最適化を実行.

$ babel PRB.pdb PRB.com
# opt wb97xd/6-31g(d) geom=connectivity

angle1DFT計算での最適化構造の13位周りの角度と距離は右図のようになった.この値をトポロジーファイルに入れた.

修正後:

     48     52     53     1   111.0 693.590048
     27     52     53     1   118.7 693.590048
     28     52     53     1   112.3 693.590048

もう一度Gromacsで最適化計算を行ったところ,正常な構造になっていた.

水素が付加されたリガンドの座標が含まれるPDBファイルを1PTR_ZAFF_PRB.pdbとします.

ATOM    408  C   GLY    52      28.447  17.465  44.064  1.00 47.64           C  
ATOM    409  O   GLY    52      27.783  18.409  43.643  1.00 47.64           O
TER  
HETATM  410  ZN  ZN2    53      21.740  18.670  42.875  1.00 40.35          ZN  
TER
HETATM  411  ZN  ZN2    54      11.959  13.171  32.940  1.00 47.44          ZN
TER
ATOM      1  O3  PRB     1       7.931  22.364  24.610 -0.519100
ATOM      2  C3  PRB     1       8.750  23.087  24.056  0.544300
ATOM      3  C2  PRB     1       9.135  22.950  22.639 -0.222400
ATOM      4  C19 PRB     1       8.565  21.929  21.737 -0.039900
ATOM      5  H24 PRB     1       8.997  21.999  20.733  0.050367

AmberToolsに含まれるtleap用のinputファイルを作成 (1PTR_ZAFF_PRB_tleap.in)

source leaprc.protein.ff14SB #Source the ff14SB force field
source leaprc.water.tip3p #Source water parameters
source leaprc.gaff2 #Source the GAFF force field
addAtomTypes { { "ZN" "Zn" "sp3" } { "S2" "S" "sp3" } { "N1" "N" "sp3" } } #Add atom types for the ZAFF metal center with Center ID 2
loadamberprep ZAFF.prep #Load ZAFF prep file
loadamberparams ZAFF.frcmod #Load ZAFF frcmod file
loadamberprep ./PRB.prep
loadamberparams ./PRB.frcmod
mol = loadpdb 1PTR_ZAFF_PRB.pdb #Load the PDB file
bond mol.53.ZN mol.32.SG #Bond zinc ion with SG atom of residue CYM31
bond mol.53.ZN mol.35.SG #Bond zinc ion with SG atom of residue CYM34
bond mol.53.ZN mol.51.SG #Bond zinc ion with SG atom of residue CYM50
bond mol.53.ZN mol.2.ND1 #Bond zinc ion with SG atom of residue HIE1
bond mol.54.ZN mol.15.SG #Bond zinc ion with SG atom of residue CYM14
bond mol.54.ZN mol.18.SG #Bond zinc ion with SG atom of residue CYM17
bond mol.54.ZN mol.43.SG #Bond zinc ion with SG atom of residue CYM42
bond mol.54.ZN mol.40.ND1 #Bond zinc ion with SG atom of residue HIE39
savepdb mol 1PTR_ZAFF_PRB_dry.pdb #Save the pdb file
saveamberparm mol 1PTR_ZAFF_PRB_dry.prmtop 1PTR_ZAFF_PRB_dry.inpcrd #Save the topology and coordiante files
solvatebox mol TIP3PBOX 10.0 #Solvate the system using TIP3P water box
addions mol CL 0 #Neutralize the system using Cl- ions
savepdb mol 1PTR_ZAFF_PRB_solv.pdb #Save the pdb file
saveamberparm mol 1PTR_ZAFF_PRB_solv.prmtop 1PTR_ZAFF_PRB_solv.inpcrd #Save the topology and coordiante files
quit #Quit tleap

tleapを実行.

$ tleap -s -f 1PTR_ZAFF_PRB_tleap.in > 1PTR_ZAFF_PRB_tleap.out

すぐ終了.

$ python
>>> import parmed as pmd
>>> amber = pmd.load_file('1PTR_ZAFF_PRB_solv.prmtop',xyz='1PTR_ZAFF_PRB_solv.inpcrd')
>>> amber.save('1PTR_ZAFF_PRB_solv.gro')
>>> amber.save('1PTR_ZAFF_PRB_solv.top')
>>> quit()

GROMACS用座標ファイル (1PTR_ZAFF_PRB_solv_GMX.gro) とGROMACS用トポロジーファイル (1PTR_ZAFF_PRB_solv_GMX.top) が生成する.

上で説明したように,リガンド部分のtopologyを書き換える.

エネルギー最小化

minim.mdp (以下のinput filesはGROMACS Tutorial: Protein-Ligandより)

integrator	= steep		; Algorithm (steep = steepest descent minimization)
emtol		= 1000.0  	; Stop minimization when the maximum force < 1000.0 kJ/mol/nm
emstep          = 0.01          ; Energy step size
nsteps		= 50000	  	; Maximum number of (minimization) steps to perform
nstlist		= 1		; Frequency to update the neighbor list and long range forces
ns_type		= grid		; Method to determine neighbor list (simple, grid)
rlist		= 1.0		; Cut-off for making neighbor list (short range forces)
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 (yes/no)
$ gmx grompp -minim.mdp -c 1PTR_ZAFF_PRB_solv_GMX.gro -p 1PTR_ZAFF_PRB_solv_GMX.top -o em.tpr
$ gmx mdrun -v -deffnm em

Indexファイルの作成

$ gmx make_ndx -f em.gro
  0 System              : 11677 atoms
  1 Protein             :   709 atoms
  2 Protein-H           :   354 atoms
  3 C-alpha             :    44 atoms
  4 Backbone            :   132 atoms
  5 MainChain           :   177 atoms
  6 MainChain+Cb        :   215 atoms
  7 MainChain+H         :   222 atoms
  8 SideChain           :   487 atoms
  9 SideChain-H         :   177 atoms
 10 Prot-Masses         :   709 atoms
 11 non-Protein         : 10968 atoms
 12 Other               :   155 atoms
 13 HE1                 :    34 atoms
 14 CY2                 :    60 atoms
 15 ZN2                 :     2 atoms
 16 PRB                 :    59 atoms
 17 CL                  :     1 atoms
 18 Ion                 :     1 atoms
 19 HE1                 :    34 atoms
 20 CY2                 :    60 atoms
 21 ZN2                 :     2 atoms
 22 PRB                 :    59 atoms
 23 CL                  :     1 atoms
 24 Water               : 10812 atoms
 25 SOL                 : 10812 atoms
 26 non-Water           :   865 atoms
 27 Water_and_ions      : 10813 atoms

> 1 | 13 | 14 | 15  #タンパク質,亜鉛イオンをmerge
> 28 | 16 #タンパク質,亜鉛イオン,リガンドをmerge
> r 1-7 | r 15-21 | r 26-27 | r 29-54 #リガンドから遠い残基をグループ化
> q

タンパク質-亜鉛-リガンド,リガンドから遠いタンパク質,リガンドそれぞれに対してrestraintファイルを作成

$ gmx genrestr -f em.gro -n index.ndx -o posre.itp -fc 1000 1000 1000
> 29
$ gmx genrestr -f em.gro -n index.ndx -o posre_far.itp -fc 1000 1000 1000
> 30

トポロジーファイル (1PTR_ZAFF_PRB_solv_GMX.top) にposition restraintファイルの情報を書き込む.

   829    820    823    824      4   180.00   4.60240   2 ;     C7-    C5-    C6-   C20
   861    860    859    858      4   180.00   4.60240   2 ;    CA2-   OA2-   CA1-   OA1

#ifdef POSRES
#include "posre.itp"
#endif

#ifdef POSRES_FAR
#include "posre_far.itp"
#endif

[ moleculetype ]
; molname       nrexcl ; TIP3P model
  WAT             2

NVT equilibration

nvt.mdp

define      = -DPOSRES  ; position restrain the protein and ligand
; 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
energygrps  = Protein_HE1_CY2_ZN2 PRB
; Bond parameters
continuation    = no            ; first dynamics run
constraint_algorithm = lincs    ; holonomic constraints 
constraints     = all-bonds     ; all bonds (even heavy atom-H bonds) constrained
lincs_iter      = 1             ; accuracy of LINCS
lincs_order     = 4             ; also related to accuracy
; Neighborsearching
cutoff-scheme   = Verlet
ns_type         = grid      ; search neighboring grid cells
nstlist         = 10        ; 20 fs, largely irrelevant with Verlet
rcoulomb        = 1.4       ; short-range electrostatic cutoff (in nm)
rvdw            = 1.4       ; 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
tcoupl      = V-rescale                     ; modified Berendsen thermostat
tc-grps     = Protein_HE1_CY2_ZN2_PRB Water_and_ions    ; 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
pcoupl      = no        ; no pressure coupling in NVT
; Periodic boundary conditions
pbc         = xyz       ; 3-D PBC
; Dispersion correction
DispCorr    = EnerPres  ; account for cut-off vdW scheme
; Velocity generation
gen_vel     = yes       ; assign velocities from Maxwell distribution
gen_temp    = 300       ; temperature for Maxwell distribution
gen_seed    = -1        ; generate a random seed
$ gmx grompp -f nvt.mdp -c em.gro -p 1PTR_ZAFF_PRB_solv_GMX.top -n index.ndx -o nvt.tpr
$ gmx mdrun -v -deffnm nvt
$ gmx energy -f nvt.edr -o temperature.xvg

10分程で計算終了.

NPT equilibration

npt.mdp

define      = -DPOSRES  ; position restrain the protein and ligand
; 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
energygrps  = Protein_HE1_CY2_ZN2 PRB
; Bond parameters
continuation    = yes           ; first dynamics run
constraint_algorithm = lincs    ; holonomic constraints 
constraints     = all-bonds     ; all bonds (even heavy atom-H bonds) constrained
lincs_iter      = 1             ; accuracy of LINCS
lincs_order     = 4             ; also related to accuracy
; Neighborsearching
cutoff-scheme   = Verlet
ns_type         = grid      ; search neighboring grid cells
nstlist         = 10        ; 20 fs, largely irrelevant with Verlet
rcoulomb        = 1.4       ; short-range electrostatic cutoff (in nm)
rvdw            = 1.4       ; 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
tcoupl      = V-rescale                     ; modified Berendsen thermostat
tc-grps     = Protein_HE1_CY2_ZN2_PRB Water_and_ions    ; 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
pcoupl      = Parrinello-Rahman             ; pressure coupling is on for 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
; Dispersion correction
DispCorr    = EnerPres  ; account for cut-off vdW scheme
; Velocity generation
gen_vel     = no        ; velocity generation off after NVT
$ gmx grompp -f npt.mdp -c nvt.gro -t nvt.cpt -p 1PTR_ZAFF_PRB_solv_GMX.top -n index.ndx -o npt.tpr
$ gmx mdrun -v -deffnm npt
$ gmx energy -f npt.edr -o pressure.xvg

Production MD

md.mdp

; 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 .trr output 
nstvout             = 0         ; suppress .trr output
nstenergy           = 5000      ; save energies every 10.0 ps
nstlog              = 5000      ; update log file every 10.0 ps
nstxout-compressed  = 5000      ; write .xtc trajectory every 10.0 ps
compressed-x-grps   = System
energygrps          = Protein_HE1_CY2_ZN2 PRB
; Bond parameters
continuation    = yes           ; first dynamics run
constraint_algorithm = lincs    ; holonomic constraints 
constraints     = all-bonds     ; all bonds (even heavy atom-H bonds) constrained
lincs_iter      = 1             ; accuracy of LINCS
lincs_order     = 4             ; also related to accuracy
; Neighborsearching
cutoff-scheme   = Verlet
ns_type         = grid      ; search neighboring grid cells
nstlist         = 10        ; 20 fs, largely irrelevant with Verlet
rcoulomb        = 1.4       ; short-range electrostatic cutoff (in nm)
rvdw            = 1.4       ; 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
tcoupl      = V-rescale                     ; modified Berendsen thermostat
tc-grps     = Protein_HE1_CY2_ZN2_PRB Water_and_ions    ; 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 
pcoupl      = Parrinello-Rahman             ; pressure coupling is on for 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        ; assign velocities from Maxwell distribution
$ gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p 1PTR_ZAFF_PRB_solv_GMX.top -n index.ndx -o md_0_1.tpr
$ gmx mdrun -v -deffnm md_0_1