QM/MM FEP:準備編
結晶構造データを準備
CIF 形式のファイルから、PDB 形式のファイルを作成する。
CIF ファイルの形式を整える
- CIF ファイルを VESTA で読み込む
- CIF ファイルを export する
File
→Export Data
→File 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 Name
はLIG
にする
Gaussian Input
をDownload
LIG.gjf
の名前で保存する
Antechamber Commands
をDownload
antechamber.sh
の名前で保存する
量子化学計算
ダウンロードした Gaussian のインプットファイル LIG.gjf
を実行する
g16 < LIG.gjf > LIG.out
LIG.out
ができる
antechamber 計算
ダウンロードした Antechamber のスクリプトファイル antechamber.sh
を実行する
sh antechamber.sh
LIG.prep
とLIG.frcmod
ができる
準備したファイルをスパコンにコピーする
Amber を実行するディレクトリー内に移動する
cd cal/tpe
src
の名前でディレクトリを作成する
mkdir src
CRY.pdb
, LIG.prep
, LIG.frcmod
をsrc
にコピーする
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