You are on page 1of 10

一、复合物需要在 Maestro 中进行优化

二、分别取下蛋白和配体,配体用 RESP 方法计算电荷


三、MD 模拟
(1)蛋白处理上的氢
reduce -Trim rec.pdb > rec_noh.pdb
(2)
antechamber -i AH001.pdb -fi pdb -o AH001_resp.mol2 -fo mol2 -c bcc -s 2
antechamber -i GDP.mol2 -fi pdb -o GDP_resp.mol2 -fo mol2 -c gas -dr no -at gaff

antechamber -i AH001.mol2 -fi mol2 -o AH001_resp.mol2 -fo mol2 -c bcc -s 2


antechamber -i GDP.mol2 -fi mol2 -o GDP_resp.mol2 -fo mol2 -c gas -dr no -at gaff
用 resp 方法计算的电荷替换上述电荷
例如在该目录下/data/zyuan/md/HRAS/AH001_resp,运行 bash RESP2_bak_noopt.sh AH001.pdb 0
1
bash RESP2_bak_noopt.sh GDP.pdb
-3 1
前面一个 0 是表示小分子的电荷,比如 AH001 的电荷为 0,GDP 的净电荷就为 -3;第二个 1 表示小分子的自旋
多重度,一般有机小分子的自旋多重度都为 1

(3).用 parmchk 检查参数的可用性,产生 frcmod 力场参数文件:


parmchk2 -i AH001_resp.mol2 -f mol2 -o AH001.frcmod
parmchk2 -i GDP_resp.mol2 -f mol2 -o GDP.frcmod

(4) tleap -f tleap.in


source oldff/leaprc.ff14SB
source leaprc.gaff
source leaprc.water.tip3p
loadamberparams frcmod.ions234lm_1264_tip3p
loadamberparams frcmod.ionsjc_tip3p
rec = loadpdb rec_noh.pdb
check rec
lig = loadmol2 AH001_resp.mol2
loadamberparams AH001.frcmod
check lig
GDP = loadmol2 GDP_resp.mol2
loadamberparams GDP.frcmod
check GDP
comp= combine{rec GDP lig}
rec_gdp = combine{rec GDP}
saveamberparm lig AH001.prmtop AH001.inpcrd
saveamberparm GDP GDP.prmtop GDP.inpcrd
saveamberparm rec rec.prmtop rec.inpcrd
saveamberparm rec_gdp rec_gdp.prmtop rec_gdp.inpcrd
saveamberparm comp comp.prmtop comp.inpcrd
savepdb comp comp.pdb
charge comp
addions comp Na+ 0
addions comp Cl- 0
solvatebox comp TIP3PBOX 15.0
saveamberparm comp comp_box.prmtop comp_box.inpcrd
savepdb comp com_box.pdb
quit

6.提交命令
写 min.in
heat.in
density.in 修改限制性残基的范围
sbatch --gpus=1 xxx.sh

查看作业情况:squeue
结束作业:scancel 作业号(作业号执行 squeue 即可查看到)
实时查看输出文件:tail -f 文件名

md.sh

#!/bin/bash
module load cuda/11.1 gcc/9.3 openmpi/4.1.1
source /HOME/scz3983/run/amber/amber20_src/amber.sh
export PATH=/HOME/scz3983/run/amber/amber20_src/bin:$PATH
export LD_LIBRARY_PATH=/HOME/scz3983/run/amber/amber20_src/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/HOME/scz3983/run/amber/amber20_src/lib64:$LIBRARY_PATH

srun $AMBERHOME/bin/pmemd.cuda -O -i min.in -o min.out -p comp_box.prmtop


-c comp_box.inpcrd -r min.rst -ref comp_box.inpcrd
srun $AMBERHOME/bin/pmemd.cuda -O -i heat.in -o heat.out -p comp_box.prmtop
-c min.rst -r heat.rst -ref min.rst -x heat.mdcrd
srun $AMBERHOME/bin/pmemd.cuda -O -i density.in -o density.out -p comp_box.prmtop
-c heat.rst -r density.rst -ref heat.rst -x density.mdcrd
srun $AMBERHOME/bin/pmemd.cuda -O -i md.in -o md.out -p comp_box.prmtop -c
density.rst -r md1.rst -x md1.mdcrd

#可以尝试用 sander 跑这限制的三步骤


srun $AMBERHOME/bin/sander -O -i min.in -o min.out -p comp_box.prmtop -c
comp_box.inpcrd -r min.rst -ref comp_box.inpcrd
srun $AMBERHOME/bin/sander -O -i heat.in -o heat.out -p comp_box.prmtop -c
min.rst -r heat.rst -ref min.rst -x heat.mdcrd
srun $AMBERHOME/bin/sander -O -i density.in -o density.out -p comp_box.prmtop -c
heat.rst -r density.rst -ref heat.rst -x density.mdcrd

#服务器上运行 MD
mut.sh
#!/bin/bash

# 设置要使用的 GPU(前三个命令不使用 GPU,最后一个命令使用 GPU)


export CUDA_VISIBLE_DEVICES=1

# 运行四个命令,使用 nohup 在后台运行


nohup mpirun -np 1 pmemd.cuda -O -i min.in -o min.out -p comp_box.prmtop -c
comp_box.inpcrd -r min.rst -ref comp_box.inpcrd &
nohup mpirun -np 1 pmemd.cuda -O -i heat.in -o heat.out -p comp_box.prmtop -c
min.rst -r heat.rst -ref min.rst -x heat.mdcrd &
nohup mpirun -np 1 pmemd.cuda -O -i density.in -o density.out -p comp_box.prmtop -c
heat.rst -r density.rst -ref heat.rst -x density.mdcrd &
nohup mpirun -np 1 pmemd.cuda -O -i md.in -o md.out -p comp_box.prmtop -c
density.rst -r md1.rst -x md1.mdcrd &

输入命令
sed -i 's/\r$//' mut.sh
./mut.sh
===================================================================================
===================================================================================
====
对 MD 结果进行分析
(1)RSMD RMSF
sbatch -p cpusx analysis.sh
!!!均方根偏差 (RMSD) 用于测量蛋白质主链从其初始结构构象到最终位置之间的差异。蛋白质相对于其构象的
稳定性可以通过其模拟过程中产生的偏差来确定。偏差越小,蛋白质结构越稳定。
RMSD 相对与某一构型的均方根偏差,RMSD 降低表明结构更稳定,结合更牢。
RMSF 相对与平均构型的均方根涨落,B-Factors 和 RMSF 差不多,他们反映的是结构在整个模拟中的平均变
化情况。RMSF 的数值大说明对应的位置的柔性大,反之相反。
RMSF
parm comp_box.prmtop
trajin md1.mdcrd 1 10000 1 #从稳定开始跑
center :1-183
image center familiar
reference min.rst
atomicfluct out bfactor.dat :1-183@CA byres bfactor
atomicfluct out RMSF.dat :1-183@CA byres
go
quit

RMSD
parm comp_box.prmtop
trajin md1.mdcrd 1 10000 1
center :1-183
image center familiar
reference min.rst
rms reference :1-183@CA,C,O,N,H out rmsd-backbone_refmin1.dat
go
quit

B 因子
parm comp_dry.prmtop
trajin md1_dry.mdcrd 8500 10000 1
reference av.pdb
atomicfluct out bfac.pdb bfactor all
go
quit

(2)MMPBSA
sed -i 's/\r$//' run.sh
sbatch -p cpusx run.sh
###在 mmgbsa 输入文件中显式指定 strip_mask、receptor_mask 和 ligand_mask 可能会解决问题###
#

ante-MMPBSA.py -p comp_box.prmtop -c com.prmtop -s ":WAT,Na+,Cl-" -n ":1-384" -r


rec.prmtop -s ":WAT,Na+,Cl-" -n ":1-191" -l lig.prmtop -s ":WAT,Na+,Cl-" -n ":192-
384"
#-p 输入符合物拓扑文件
#-c 处理后的复合物拓扑文件输出
#-r 处理后的受体拓扑文件输出
#-l 处理后的配体拓扑文件输出
#-s 需要剔除的元素
#-n 所处的残基序列位置
===================================================================================
=======================
cpptraj
> parm comp_box.prmtop
> trajin md1.mdcrd
>list trajin #可查看这个轨迹有多少帧,显示这是什么格式的轨迹
>list parm #显示有多少个残基,多少个原子,以及盒子信息,有多少个分子
>resinfo #查看又有多少个残基,每个残基有多少个原子,原子分别是从几号到几号
>distance test :resid1 :resid2 out test.agr #计算某两个特定残基质心之间的距离
>writedata test.dat test #将算出来的距离以标准格式输出到一个 dat 文件里
===================================================================================
========================
(3)计算小分子的 RMSD
cpptraj -i lig_rmsd.in

parm comp_box.prmtop
trajin md1.mdcrd 1 10000 1
center :1-183
image center familiar
reference min.rst
rms reference :174 out rmsd-ligand_refmin1.dat
run
quit

(4)导出几帧结构查看
cpptraj -i mdrcd.in

parm comp_box.prmtop
trajin md1.mdcrd 8000 10000 5 #指定几帧
trajout look2.mdcrd mdcrd
go
quit

服务器上计算电荷
例如在该目录下/data/zyuan/md/HRAS/AH001_resp,运行 bash RESP2_bak_noopt.sh AH001.pdb 0
1

服务器上使用 amber
export PATH=/public/software/amber/amber20/amber20/bin:$PATH
module load compiler/gcc/9.5.0
cpptraj

结构聚类
cpptraj -i cluster.in

parm comp_box.prmtop
trajin md1.mdcrd
strip :WAT,GDP,MG,Na+,MOL
center :1-381
image center familiar
reference min.rst
cluster c1 kmeans clusters 3 randompoint maxit 100 rms :2 sieve 10 random out
cnumvtime.dat summary summary.dat info info.dat cpopvtime cpopvtime.agr normframe
repout rep repfmt pdb singlerepout singlerep.nc singlerepfmt netcdf avgout Avg
avgfmt restart
go
quit

氢键分析
cpptraj -i hbond.in

parm comp_box.prmtop
trajin md1.mdcrd 1 10000
center :1-187
image center familiar
strip :WAT
strip :Na+
hbond donormask :187-187@F=,O=,N= acceptormask :1-186@F=,O=,N= out nhb1.dat avgout
avghb1.dat
hbond donormask :1-186@F=,O=,N= acceptormask :187-187@F=,O=,N= out nhb2.dat avgout
avghb2.dat
go
quit

丙氨酸扫描(有问题)
reduce -Trim mut_H.pdb > mut.pdb
tleap -f mutleap.in

source oldff/leaprc.ff14SB
source leaprc.gaff
source leaprc.water.tip3p
loadamberparams frcmod.ions234lm_1264_tip3p
loadamberparams frcmod.ionsjc_tip3p
mut = loadpdb mut.pdb
check mut
lig = loadmol2 AH001_resp.mol2
loadamberparams AH001.frcmod
check lig
GDP = loadmol2 GDP_resp.mol2
loadamberparams GDP.frcmod
check GDP
com_mut= combine{mut GDP lig}
pro_mut = combine{mut GDP}
saveamberparm pro_mut pro_mut.prmtop pro_mut.inpcrd
saveamberparm com_mut com_mut.prmtop com_mut.inpcrd
savepdb com_mut com_mut.pdb
quit

提交丙氨酸扫描任务(有问题)
MMPBSA.py -O -i mmpbsa_mut.in -sp comp_box.prmtop -cp com.prmtop -rp pro.prmtop -
lp lig.prmtop -y md1.mdcrd -mc com_mut.prmtop -mr pro_mut.prmtop &

sample input file for running alanine scanning


&general
startframe=8000, endframe=10000, interval=10, verbose=1,keep_files=2,
/
&gb
igb=2, saltcon=0.10,
/
&pb
istrng=0.1,
/
&alanine_scanning
/

每个残基的结合能的贡献
MMPBSA.py -O -i mmpbsa1.in -sp comp_box.prmtop -cp com.prmtop -rp pro.prmtop -lp
lig.prmtop -y md1.mdcrd &
Per-residue GB decomposition
&general
startframe=8000, endframe=10000, interval=10, verbose=1,keep_files=2,
strip_mask=':WAT|:Na*',
/
image center familiar
reference min.rst
rms reference :1-183@CA,C,O,N,H out rmsd-backbone_refmin1.dat
go
quit

(2)MMPBSA
sed -i 's/\r$//' run.sh
sbatch -p cpusx run.sh
###在 mmgbsa 输入文件中显式指定 strip_mask、receptor_mask 和 ligand_mask 可能会解决问题###
#

===================================================================================
=======================
cpptraj
> parm comp_box.prmtop
> trajin md1.mdcrd
>list trajin #可查看这个轨迹有多少帧,显示这是什么格式的轨迹
>list parm #显示有多少个残基,多少个原子,以及盒子信息,有多少个分子
>resinfo #查看又有多少个残基,每个残基有多少个原子,原子分别是从几号到几号
>distance test :resid1 :resid2 out test.agr #计算某两个特定残基质心之间的距离
>writedata test.dat test #将算出来的距离以标准格式输出到一个 dat 文件里
===================================================================================
========================
(3)计算小分子的 RMSD
cpptraj -i lig_rmsd.in

parm comp_box.prmtop
trajin md1.mdcrd 1 10000 1
center :1-183
image center familiar
reference min.rst
rms reference :174 out rmsd-ligand_refmin1.dat
run
quit

(4)导出几帧结构查看
cpptraj -i mdrcd.in

parm comp_box.prmtop
trajin md1.mdcrd 8000 10000 5 #指定几帧
trajout look2.mdcrd mdcrd
go
quit

服务器上计算电荷
例如在该目录下/data/zyuan/md/HRAS/AH001_resp,运行 bash RESP2_bak_noopt.sh AH001.pdb 0
1

服务器上使用 amber
export PATH=/public/software/amber/amber20/amber20/bin:$PATH
module load compiler/gcc/9.5.0
cpptraj

结构聚类
cpptraj -i cluster.in

parm comp_box.prmtop
trajin md1.mdcrd
strip :WAT,GDP,MG,Na+,MOL
center :1-381
image center familiar
reference min.rst
cluster c1 kmeans clusters 3 randompoint maxit 100 rms :2 sieve 10 random out
cnumvtime.dat summary summary.dat info info.dat cpopvtime cpopvtime.agr normframe
repout rep repfmt pdb singlerepout singlerep.nc singlerepfmt netcdf avgout Avg
avgfmt restart
go
quit

氢键分析
cpptraj -i hbond.in

parm comp_box.prmtop
trajin md1.mdcrd 1 10000
center :1-187
image center familiar
strip :WAT
strip :Na+
hbond donormask :187-187@F=,O=,N= acceptormask :1-186@F=,O=,N= out nhb1.dat avgout
avghb1.dat
hbond donormask :1-186@F=,O=,N= acceptormask :187-187@F=,O=,N= out nhb2.dat avgout
avghb2.dat
go
quit

丙氨酸扫描(有问题)
reduce -Trim mut_H.pdb > mut.pdb
tleap -f mutleap.in

source oldff/leaprc.ff14SB
source leaprc.gaff
source leaprc.water.tip3p
loadamberparams frcmod.ions234lm_1264_tip3p
loadamberparams frcmod.ionsjc_tip3p
mut = loadpdb mut.pdb
check mut
lig = loadmol2 AH001_resp.mol2
loadamberparams AH001.frcmod
check lig
GDP = loadmol2 GDP_resp.mol2
loadamberparams GDP.frcmod
check GDP
com_mut= combine{mut GDP lig}
pro_mut = combine{mut GDP}
saveamberparm pro_mut pro_mut.prmtop pro_mut.inpcrd
saveamberparm com_mut com_mut.prmtop com_mut.inpcrd
savepdb com_mut com_mut.pdb
quit

提交丙氨酸扫描任务(有问题)
MMPBSA.py -O -i mmpbsa_mut.in -sp comp_box.prmtop -cp com.prmtop -rp pro.prmtop -
lp lig.prmtop -y md1.mdcrd -mc com_mut.prmtop -mr pro_mut.prmtop &

sample input file for running alanine scanning


&general
startframe=8000, endframe=10000, interval=10, verbose=1,keep_files=2,
/
&gb
igb=2, saltcon=0.10,
/
&pb
istrng=0.1,
/
&alanine_scanning
/

每个残基的结合能的贡献
MMPBSA.py -O -i mmpbsa1.in -sp comp_box.prmtop -cp com.prmtop -rp pro.prmtop -lp
lig.prmtop -y md1.mdcrd &
Per-residue GB decomposition
&general
startframe=8000, endframe=10000, interval=10, verbose=1,keep_files=2,
strip_mask=':WAT|:Na*',
/
&gb
igb=5, saltcon=0.10,
/
&decomp
idecomp=1, print_res="1-186" #设定计算的哪些残基
dec_verbose=1,
/

计算羟基上 O 与 MG 的距离
cpptraj -i dist.in

parm comp_box.prmtop
trajin md1.mdcrd
center :1-187
image center familiar
distance dist_MG_O1 :185@MG :187@O1 out dist_MG_O1.dat
writedata dist_MG_O1.dat
go
quit
parm comp_box.prmtop
trajin md1.mdcrd
center :1-187
image center familiar
distance dist_MG_O2 :185@MG :187@O2 out dist_MG_O2.dat
writedata dist_MG_O2.dat
go
quit

###Amber mask###
Amber mask 是 Amber 所用的选择原子或残基的记号,常用于能量最小化或分子动力学中约束原子或残基。
Amber mask 表达式用法如下:
&gb
igb=5, saltcon=0.10,
/
&decomp
idecomp=1, print_res="1-186" #设定计算的哪些残基
dec_verbose=1,
/

计算羟基上 O 与 MG 的距离
cpptraj -i dist.in

parm comp_box.prmtop
trajin md1.mdcrd
center :1-187
image center familiar
distance dist_MG_O1 :185@MG :187@O1 out dist_MG_O1.dat
writedata dist_MG_O1.dat
go
quit
parm comp_box.prmtop
trajin md1.mdcrd
center :1-187
image center familiar
distance dist_MG_O2 :185@MG :187@O2 out dist_MG_O2.dat
writedata dist_MG_O2.dat
go
quit

###Amber mask###
Amber mask 是 Amber 所用的选择原子或残基的记号,常用于能量最小化或分子动力学中约束原子或残基。
Amber mask 表达式用法如下:
#以英文冒号 :开始,后接残基编号或名称来指定残基。数字可用逗号分隔,也可用短横线指定范围,名称只能用
逗号分隔。

:1-10 表示残基 1 到 10
:1,3,5 表示残基 1、3 和 5
:1-3,5,7-9 表示残基 1 到 3、5 和 7 到 9
:LYS 表示所有赖氨酸残基
:ARG,ALA,GLY 表示所有精氨酸、丙氨酸和甘氨酸
#以 @开始,后接原子序号或名称来指定原子,使用原则与残基一致。

@12,54-85,90 表示原子 12、54 到 85 和 90


@CA,C,N 表示所有名为 CA、C 和 N 的原子(即蛋白骨架)
通配符用等号 =表示(而非星号 *,因为 *在 Amber 的原子命名里有特殊含义)。
@H= 表示所有氢原子
逻辑组合:与 &、或 |、非 !。必要时,用圆括号把不同表达式分隔开。
:1-234&!@H= 表示残基 1 到 234 中所有重原子(非氢原子)
:1-234@CA,C,N 等价于 :1-234&@CA,C,N,表示残基 1 到 234 中的骨架原子(CA、C、N)
(:1-234@CA,C,N)|(:235&!@H=) 表示残基 1 到 234 中的骨架原子和残基 235 的重原子组成的集合

You might also like