如果你是AMBER的新用户
或对一般的分子动力学模拟毫无了解
可通过此教程入门.
教程简介
这个教程旨在介绍如何使用Amber进行分子动力学模拟,并假设您以前没有使用过Amber. 它专门为想要了解如何运行分子动力学模拟的新用户而设计.
Amber简介
1
Amber 简介
AMBER 代表辅助的模型构建和能量精化(Assisted Model Building and Energy Refinement), 它不仅指代分子动力学程序, 也指代一组力场, 描述了生物分子相互作用的势能函数和参数。
为了在Amber中运行分子动力学模拟, 每个分子的相互作用都由分子力场描述. 力场为每个分子定义了特定的参数.
sander 是Amber中进行分子动力学的基本程序, pmemd 是一个高性能的MD程序, 包含了sander的一部分功能, 它还可以使用图形处理单元(GPU, graphics processing units)加速运行.
为了使用sander或者pmemd运行分子动力学模拟, 需要三个必备的文件:
prmtop: 描述系统中分子的参数和拓扑
inpcrd: 描述系统初始分子坐标
mdin: 描述Amber分子动力学程序的设置
Amber MD是一个完全基于命令行界面(CLI, Command Line Interface)的软件, 运行于Linux计算机上. 要运行Amber, 你需要打开一个终端.
准备拓扑文件文件和坐标文件
在本教程中, 您将在名为tleap的准备程序中构建以下分子。tleap具有另一个命令行界面,用于构建系统拓扑并为分子定义参数.
使用tleap命令启动tleap
tleap
-I: Adding /usr/local/amber12/dat/leap/prep to search path.
-I: Adding /usr/local/amber12/dat/leap/lib to search path.
-I: Adding /usr/local/amber12/dat/leap/parm to search path.
-I: Adding /usr/local/amber12/dat/leap/cmd to search path.
加载蛋白质和核酸的力场
MD力场是由哈密顿量(势能函数)及其相关参数定义的, 它描述了系统中分子之间的分子内和分子间相互作用. 在MD中, 会积分哈密顿量以获得分子的力和速度.
对蛋白质和核酸我们将使用AMBER的FF14SB力场, FF14SB基于FF12SB, FF12SB是FF99SB的更新版本, 而FF99SB力场又是基于原始的Amber的Cornell等人(1995)的[ff94]力场. FF14SB力场最显著的变化包括更新了蛋白质Phi-Psi的扭转项, 并重新拟合了侧链的扭转项. 这些变化一起改进了对这些分子中α螺旋的估计.
source leaprc.ff14SB
Loading parameters:
/usr/local/amber14/dat/leap/parm/frcmod.ff14SB
Reading force field modification type file (frcmod)
Reading title:
fasciculin = loadPdb “1fsc_amb.pdb”
这一步是加载pdb
溶剂化加水盒子
下一步是用显式的水分子溶剂化分子. 在这个模拟中, 我们将添加TIP3P水分子到系统中.在这种类型的模拟中, 系统具有周期性的边界条件, 这意味着离开系统一侧的分子将被转回到系统的另一侧. 周期性盒子足够大非常重要, 即蛋白质周围有足够的水, 以使分子不与其自身的周期性映像相互作用.有许多水模型可用于MD模拟。
solvateOct fasciculin SPCBOX 14.0
14.0表示fasciculin分子在和周期性盒壁之间应该具有至少14 埃的缓冲区.
保持体系电荷平衡
addIons fasciculin Cl- 4
保存Amberprmtop和inpcrd输入文件
saveAmberParm fasciculin solvated_1fsc.prmtop solvated_1fsc.inpcrd
请使用saveamberparm命令
MD文件准备
所需的最后一个文件用于控制MD运行的输入文件, 其中定义了MD运行时的程序设置. 在本教程中, 我们将对系统进行能量最小化, 然后缓慢升温, 最后在所需的温度和压力下进行MD.
最小化,然后在恒定的体积和温度(NVT)下升温20 ps, 从0 K升温到300 K.在1 atm和300 K的恒定压力和温度(NPT)下运行MD.
最小化
创建包含以下最小化设置的文件01_Min.in
Minimize
&cntrl
imin=1,
ntx=1,
irest=0,
maxcyc=2000,
ncyc=1000,
ntpr=100,
ntwx=0,
cut=8.0,
/
imin=1: 选择运行能量最小化
ntx=1: 从ASCII格式的inpcrd坐标文件读取坐标, 但不读取速度
irest=0: 不重新启动模拟(不适用于最小化)
maxcyc=2000: 最小化的最大循环数
ncyc=1000: 最初的0到ncyc循环使用最速下降算法, 此后的ncyc到maxcyc循环切换到共轭梯度算法
ntpr=100: 每ntpr次循环写入Amber mdout输出文件一次
ntwx=0: 不输出Amber mdcrd轨迹文件(不适用于最小化)
cut=8.0: 以埃为单位的非键截断距离(对于PME而言, 表示直接空间加和的截断. 不要使用低于8.0的值. 较高的数字略微提高精度, 但是大大增加计算成本)
升温
创建包含以下升温设置的文件02_Heat.in:
&cntrl
imin=0,
ntx=1,
irest=0,
nstlim=10000,
dt=0.002,
ntf=2,
ntc=2,
tempi=0.0,
temp0=300.0,
ntpr=100,
ntwx=100,
cut=8.0,
ntb=1,
ntp=0,
ntt=3,
gamma_ln=2.0,
nmropt=1,
/
imin=0: 选择运行分子动力学(MD)[无最小化]
nstlim=10000: 要运行的MD步数(运行时间长度为nstlim*dt, 单位ps)
dt=0.002: 以皮秒(ps)为单位的时间步长. 每一MD步骤的时间长度
ntf=2: 不计算受SHAKE约束的键所受的力
ntc=2: 启用SHAKE来约束所有包含氢的键
tempi=0.0: 初始恒温器的温度, 单位K(见NMROPT部分)
temp0=300.0: 最终恒温器的温度 单位K(见NMROPT部分)
ntwx=1000: 每ntwx步输出Amber轨迹文件mdcrd一次
ntb=1: 等容的周期性边界
ntp=0: 无压力控制
ntt=3: 使用Langevin恒温器控制温度
gamma_ln=2.0: Langevin恒温器的碰撞频率
nmropt=1: 读入NMR限制和权重变化(见NMROPT部分)
MD模拟文件 输入
20ns MD
&cntrl
imin = 0, irest = 1, ntx = 5,
ntb = 2, pres0 = 1.0, ntp = 1,
taup = 2.0,
cut = 10.0,
ntc = 2, ntf = 2,
tempi = 300.0, temp0 = 300.0,
ntt = 3, gamma_ln = 2.0,
nstlim = 10000000, dt = 0.002,
ntpr = 1000, ntwx = 1000, ntwr = 1000,
ntr = 0, iwrap=1,
ioutfm = 1, ntxo = 2,
ig = 8000,
ntx=5: 从无格式的inpcrd坐标文件中读取坐标和速度
irest=1: 重新启动以前的MD运行(这意味着预期inpcrd文件中存在速度, 并将使用它们来提供初始原子速度)
temp0=300.0: 恒温器温度. 在300 K运行
ntb=2: 在恒定压力下使用周期性边界条件
ntp=1: 使用Berendsen恒压器进行恒压模拟
运行sander
$AMBERHOME/bin/sander -O -i 01_Min.in -o 01_Min.out -p prmtop -c inpcrd -r 01_Min.rst -inf 01_Min.mdinfo
sander对MD模拟的每一步都使用一致的语法. 以下是sander命令行选项的总结:
-O: 覆盖输出文件, 如果它们已经存在
-i 01_Min.in: 选择输入文件(默认mdin)
-o 01_Min.out: 输出文件(默认mdout)
-p prmtop: 选择参数和拓扑文件prmtop
-c inpcrd: 选择坐标文件inpcrd
-r 01_Min.rst: 输出包含坐标和速度的重启文件(默认restrt)
-inf 01_Min.mdinfo: 输出包含模拟状态的MD信息文件(默认mdinfo)
使用sander升温
$AMBERHOME/bin/sander -O -i 02_Heat.in -o 02_Heat.out -p prmtop -c 01_Min.rst -r 02_Heat.rst -x 02_Heat.mdcrd -inf 02_Heat.mdinfo
使用sander运行MD
$AMBERHOME/bin/sander -O -i 03_Prod.in -o 03_Prod.out -p prmtop -c 02_Heat.rst -r 03_Prod.rst -x 03_Prod.mdcrd -inf 03_Prod.info
MD输出可以这里查看的: 03_Prod.out, 03_Prod.rst, 03_Prod.mdcrd
一旦完成, 打开输出文件检查模拟是否正常完成.
恭喜! 您现在已经运行了您的第一个完整的MD模拟, 并成功地得到了结果. 这是设置, 运行和分析您自己的MD模拟的工作流程的一个相当简单的例子.
对于分子动力学模拟轨迹的分析,将在下个教程与大家见面,如果您想学习更多, 可以到也AMBER网站上完成其他教程.