QM/MM FEP:準備編

結晶構造データを準備

CIF 形式のファイルから、PDB 形式のファイルを作成する。

CIF ファイルの形式を整える

  • CIF ファイルを VESTA で読み込む
  • CIF ファイルを export する
    • FileExport DataFile type: CIF file (*.cif)Save

CIF ファイルを PDB 形式に変換する

  • CIF ファイルを CIF2PDB で読み込む
  • Cell X, Cell Y, Cell Z を適切に設定する
    • Cutは OFF
  • Download PDB
    • CRY.pdbの名前で保存する

分子力場を準備

Antechamber 用のスクリプトを出力する

  • PDB ファイルを Antechamber Helper で読み込む
  • Charge, Multiplicityを適切に設定する
    • Ligand NameLIGにする
  • Gaussian InputDownload
    • LIG.gjfの名前で保存する
  • Antechamber CommandsDownload
    • antechamber.shの名前で保存する

量子化学計算

ダウンロードした Gaussian のインプットファイル LIG.gjf を実行する

g16 < LIG.gjf > LIG.out

LIG.outができる

antechamber 計算

ダウンロードした Antechamber のスクリプトファイル antechamber.sh を実行する

sh antechamber.sh

LIG.prepLIG.frcmodができる

準備したファイルをスパコンにコピーする

Amber を実行するディレクトリー内に移動する

cd cal/tpe

srcの名前でディレクトリを作成する

mkdir src  

CRY.pdb, LIG.prep, LIG.frcmodsrcにコピーする

mv CRP.pdb LIG.prep LIG.frcmod src/

Amber topology / coordinate ファイルを準備

下記のシェルファイルをamb.shの名前で保存する

#!/bin/bash

module load amber/18/bugfix16

#
# Creating topology and coordinate files
#

cat <<EOF >| amb.cmd
source leaprc.gaff
source leaprc.gaff2

loadAmberPrep   src/LIG.prep
loadAmberParams src/LIG.frcmod

cry = loadPDB src/CRY.pdb

check cry

set cry box {29.358 27.558 32.412}

savePDB       cry amb.pdb
saveAmberParm cry amb.top amb.crd
EOF

tleap -f amb.cmd
mv leap.log amb.log

ChBox -c amb.crd -o amb.crd -X 29.358 -Y 27.558 -Z 32.412 -al 90.000 -bt 108.007 -gm 90.000

amb.shを実行する

sh amb.sh

Amber で構造最適化

下記の Amber インプットファイルを1_min.inpの名前で保存する

TPE
&cntrl
  imin   = 1,

  ntx    = 1,
  irest  = 0,

  ntpr   = 100,
  ntwr   = 100,
  ntwx   = 100,
  ntwprt = 0,

  ntr    = 0,

  maxcyc = 1000,
  ntmin  = 0

  ntc    = 1,
  ntf    = 1,

  ntb    = 1,

  cut    = 8.0,
/

下記のジョブファイルを1_min.jobの名前で保存する

#!/bin/bash

#PBS -l select=1:ncpus=8:mpiprocs=8:ompthreads=1:jobtype=core
#PBS -l walltime=2:00:00

MPI=8
OMP=1

JOB=1_min
PRE=amb

INP=../${JOB}.inp
TOP=../amb.top
INI=../amb.crd

AMB="mpirun -n ${MPI} pmemd.MPI"

module load amber/18/bugfix16

cd ${PBS_O_WORKDIR}/${JOB}

if [ -f ${INI} ]; then
  cp ${INI} ${PRE}.ref
else
  echo "Error:1"
  exit 1
fi
if [ -f ${INP} -a -f ${TOP} ]; then
  ${AMB} \
     -O              \
     -i   ${INP}     \
     -p   ${TOP}     \
     -c   ${INI}     \
     -o   ${PRE}.out \
     -r   ${PRE}.crd \
     -x   ${PRE}.trj \
     -ref ${PRE}.ref \
     -inf ${PRE}.inf
else
  echo "Error:2"
  exit 1
fi
if [ -f ${PRE}.crd ]; then
  ambpdb -p ${TOP} -c ${PRE}.crd > ${PRE}.pdb
else
  echo "Error:3"
  exit 1
fi

1_minの名前でディレクトリを作る

mkdir 1_min

Amber を実行する(ジョブを投入する)

qsub 1_min.job

Amber で NVT MD 計算

下記の Amber インプットファイルを2_nvt.inpの名前で保存する

TPE
&cntrl
  imin   = 0,

  ntx    = 1,
  irest  = 0,

  ntxo   = 2,
  ntpr   = 1000,
  ntwr   = 1000,
  ntwx   = 1000,
  iwrap  = 1,
  ntwprt = 0,

  ntr    = 1,
  restraintmask = ':1',
  restraint_wt = 1.0,

  nstlim = 500000,
  dt     = 0.002,
  nrespa = 1,

  ntt    = 1,
  temp0  = 300.0,
  tempi  = 0.0,
  tautp  = 1.0,
  nmropt = 1,

  ntp    = 0,

  ntc    = 2,
  ntf    = 2,

  ntb    = 1,

  cut    = 8.0,
/

&wt TYPE = 'TEMP0',
  istep1 = 0,
  istep2 = 50000,
  value1 = 0.1,
  value2 = 300.0,
/
&wt TYPE = 'END'
/

下記のジョブファイルを2_nvt.jobの名前で保存する

#!/bin/bash

#PBS -l select=1:ncpus=8:mpiprocs=8:ompthreads=1:jobtype=core
#PBS -l walltime=2:00:00

MPI=8
OMP=1

JOB=2_nvt
PRE=amb

INP=../${JOB}.inp
TOP=../amb.top
INI=../1_min/amb.crd

AMB="mpirun -n ${MPI} pmemd.MPI"

module load amber/18/bugfix16

cd ${PBS_O_WORKDIR}/${JOB}

if [ -f ${INI} ]; then
  cp ${INI} ${PRE}.ref
else
  echo "Error:1"
  exit 1
fi
if [ -f ${INP} -a -f ${TOP} ]; then
  ${AMB} \
     -O              \
     -i   ${INP}     \
     -p   ${TOP}     \
     -c   ${INI}     \
     -o   ${PRE}.out \
     -r   ${PRE}.crd \
     -x   ${PRE}.trj \
     -ref ${PRE}.ref \
     -inf ${PRE}.inf
else
  echo "Error:2"
  exit 1
fi
if [ -f ${PRE}.crd ]; then
  ambpdb -p ${TOP} -c ${PRE}.crd > ${PRE}.pdb
else
  echo "Error:3"
  exit 1
fi

2_nvtの名前でディレクトリを作る

mkdir 2_nvt

Amber を実行する(ジョブを投入する)

qsub 2_nvt.job

Amber で NPT MD 計算

下記の Amber インプットファイルを3_npt.inpの名前で保存する

TPE
&cntrl
  imin   = 0,

  ntx    = 5,
  irest  = 1,

  ntxo   = 2,
  ntpr   = 1000,
  ntwr   = 1000,
  ntwx   = 1000,
  iwrap  = 1,
  ntwprt = 0,

  ntr    = 1,
  restraintmask = ':1',
  restraint_wt = 1.0,

  nstlim = 500000,
  dt     = 0.002,
  nrespa = 1,

  ntt    = 1,
  temp0  = 300.0,
  tautp  = 1.0,

  ntp    = 1,
  pres0  = 1.0,
  taup   = 1.0,

  ntc    = 2,
  ntf    = 2,

  ntb    = 2,

  cut    = 8.0,
/

下記のジョブファイルを3_nvt.jobの名前で保存する

#!/bin/bash

#PBS -l select=1:ncpus=8:mpiprocs=8:ompthreads=1:jobtype=core
#PBS -l walltime=2:00:00

MPI=8
OMP=1

JOB=3_npt
PRE=amb

INP=../${JOB}.inp
TOP=../amb.top
INI=../2_nvt/amb.crd

AMB="mpirun -n ${MPI} pmemd.MPI"

module load amber/18/bugfix16

cd ${PBS_O_WORKDIR}/${JOB}

if [ -f ${INI} ]; then
  cp ${INI} ${PRE}.ref
else
  echo "Error:1"
  exit 1
fi
if [ -f ${INP} -a -f ${TOP} ]; then
  ${AMB} \
     -O              \
     -i   ${INP}     \
     -p   ${TOP}     \
     -c   ${INI}     \
     -o   ${PRE}.out \
     -r   ${PRE}.crd \
     -x   ${PRE}.trj \
     -ref ${PRE}.ref \
     -inf ${PRE}.inf
else
  echo "Error:2"
  exit 1
fi
if [ -f ${PRE}.crd ]; then
  ambpdb -p ${TOP} -c ${PRE}.crd > ${PRE}.pdb
else
  echo "Error:3"
  exit 1
fi

3_nptの名前でディレクトリを作る

mkdir 3_npt

Amber を実行する(ジョブを投入する)

qsub 3_npt.job
Posted :