分子动力学模拟手把手教你

如果你是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网站上完成其他教程.

你可能感兴趣的:(分子动力学模拟手把手教你)