Amber教程.docx
《Amber教程.docx》由会员分享,可在线阅读,更多相关《Amber教程.docx(22页珍藏版)》请在冰豆网上搜索。
Amber教程
研究案例——一种稳定蛋白质的全部原子结构预测和折叠模拟
这段教程展示的是一个研究实例,像您演示如何重现下述文章中的研究工作:
Simmerling,C.,Strockbine,B.,Roitberg,A.E.,J.Am.Chem.Soc.,2002,124,11258-11259(/ja0273851)
我们建议您在开始本教程前首先阅读上述文章,获得该蛋白的氨基酸序列及其他有用信息。
警告1:
本教程中的一些计算耗时很长,我使用了由16个1.3GHzcup的SGIAltix进行了27小时计算才完成整个工作,因此如果您没有足够的计算能力,我强烈建议您在重复本教程的过程中使用我为您提供的out文件,以使得您能够流畅地完成整个教程。
警告2:
如果您重复本教程,我们并不能保证您能够精确地重现我的计算结果,在计算过程中,不同结构的计算机会产生不同的近似误差,从而使得计算过程搜索的是相空间的不同部位,但是模拟的平均结果是大致相同的。
另外,尽管您完全重复了本教程也有可能无法获得论文中给出的结果,而且即便是我们自己也无法保证论文中的结果能够重现,这可能是因为我模拟的时间不够长,获取的仅仅是一个局部最小点,但是尽管如此,本教程的工作还是展示了蛋白折叠中一些有趣的行为。
背景
这篇论文应用AMBERFF99力场和经典的全原子动力学对一个肽的折叠过程进行了模拟。
模拟的对象"trpcage"是一个由20个氨基酸构成的小肽,华盛顿大学的Andersen已经对这个蛋白做过了结构优化,它是现在已知最小的能够显示两种不同折叠状态的蛋白,而且这个蛋白在室温下可以稳定存在。
该蛋白的小身量使得它成为模拟蛋白质折叠的绝嘉对象。
当最早的关于这个蛋白的折叠的计算结果出炉时,对这个蛋白结构的实验测定还没有完成,所以整个模拟过程是在没有实验数据作为指导的情况下完成的。
当蛋白的结构经由实验手段测定之后,人们惊喜地发现,计算机模拟的结果与实验测定的数值之间的RMSD值仅为1.4A。
考虑到整个模拟过程是从蛋白的一级结构开始并且完全没有同源蛋白作为参考,这样的一个计算结果是非常精确的。
本教程中,我们试图重复论文中的结果,计算的设定都与论文非常接近,只是由于计算能力的限制,在教程中我们只进行一个50ns级的模拟。
这已经足够重见蛋白质折叠的结果了。
在这里必须提醒的是,由于模拟过程的长度所限,在不同的计算机,或在处理器数量不同的情况下,计算的结果将会是不同的。
这是由分子动力学模拟的方法决定的,实施过程的细微变化或者浮点计算中舍入的变化都意味着由不同的计算机进行采样的动力学轨迹会随着时间的流逝发生不可预知的分化。
这并非误差或者程序的bug,也并不意味着某一个模拟过程比其他的过程更合理。
这仅仅意味着不同的模拟过程搜索的是相空间的不同区域,如果我们平均一下模拟的结果,或者运行更长时间的动力学过程,我们会在不同的机器上得到完全相同的结果,他们之间仅仅在过程上有所不同。
因而我们说在本教程中我们很难精确的再现论文中的结果,但是我们试图重新创造那个重要的结果,即用AMBER程序来预测一个20氨基酸的小蛋白的空间结构是可以完成的。
那么记住这一点,让我们开始吧
第一步:
构建起始结构
在以往的教程中,我们要么有一个可用的晶体结构,要么可以通过程序生成一个已经初步优化的结构。
而在这个教程中我们要用的结构太复杂,没法通过手画的办法完成,同时我们也没有一个可用的PDB结构,因此我们就需要构建一个线形的肽链,非常幸运的是,在LEAP中有一个命令可以完成这个工作,就是sequence。
蛋白的一级结构序列在所列论文中可以查到,如下所示:
NLYIQWLKDGGPSSGRPPPS
这是用单字母符号显示的蛋白质一级结构序列,在Leap中使用之前我们需要将其转换成标准的三字母表示下面的表格给出了单字母表示和三字母表示之间的转换关系:
单字母与三字母的转换conversion
G
P
A
V
L
I
M
C
F
Y
W
H
K
R
Q
N
E
D
S
T
甘氨酸(Gly)
脯氨酸(Pro)
丙氨酸(Ala)
缬氨酸(Val)
亮氨酸(Leu)
异亮氨酸(Ile)
蛋氨酸(Met)
半胱氨酸(Cys)
苯丙氨酸(Phe)
酪氨酸(Tyr)
色氨酸(Trp)
组氨酸(His)
赖氨酸(Lys)
精氨酸(Arg)
谷氨酸盐(Glu)
天冬酰氨(Asn)
谷氨酸(Glu)
天冬氨酸(Asp)
丝氨酸(Ser)
苏氨酸(Thr)
那么上述序列可以转写为:
ASNLEUTYRILEGLNTRPLEULYSASPGLYGLYPROSERSERGLYARGPROPROPROSER
但是这还没有结束,LEaP不能自动识别序列的两端,所以我们必须手工为这个序列标定N末端和C末端,标定的方法就是在N末端氨基酸前方加上N,C末端氨基酸前方加上字母C。
最终在LEaP中使用的序列如下:
NASNLEUTYRILEGLNTRPLEULYSASPGLYGLYPROSERSERGLYARGPROPROPROCSER
下面启动xleap并调用ff99力场:
$AMBERHOME/exe/xleap-s-f$AMBERHOME/dat/leap/cmd/leaprc.ff99
(使用xLeap的时候一定要记住要关闭NumLock键!
否则工具栏会无法使用)
下面使用sequence命令来建立蛋白的起始结构(如需了解sequence命令的详细情况可以在Leap中键入:
helpsequence).注意:
为了版面设计的需要,下面将命名分为三行显示,实际上您必须将所有内容在一行内输入,其间不能回车。
>TC5b=sequence{NASNLEUTYRILEGLNTRPLEULYS
ASPGLYGLYPROSERSERGLYARG
PROPROPROCSER}
我们需要的起始结构就放在TC5b中我们可以使用edit命令来观察这个结构。
>editTC5b
现在我们获得了一个线形的蛋白质序列作为起始结构,但是在这个起始结构中很多原子是相互抵触的,所以在进行分子动力学模拟之前我们要对这个结构首先进行短时间的优化。
我们暂时将Unit中的这个结构存成一个.lib文件,这样在之后的操作中,我们只要调用这个lib就可以简单地取出起始结构,同时我们还要将这个结构存成一个PDB文件,以便直观地进行观察。
>saveoffTC5bTC5b_linear.lib
>savepdbTC5bTC5b_linear.pdb
(TC5b_linear.lib,TC5b_linear.pdb)
第二步:
创建prmtop和inpcrd文件
我们已经有了起始结构,下一步的工作是创建prmtop以及inpcrd文件。
在进行这一步之前我们需要首先确认我们使用的参数和文献中报道的是一样的,在论文的第三段讲到:
WeinitiatedoursimulationsusingonlythetrpcageTC5b2aminoacidsequence(N20LYIQWLKDGGPSSGRPPPS39),withanextendedinitialconformationbuiltbytheLEaPmoduleofAMBERversion6.0.4Allmoleculardynamics(MD)simulationswerefullyunrestrainedandcarriedoutinthecanonicalensembleusingtheSANDERmodule,whichwemodifiedtoimproveperformanceontheLinux/IntelPCclusterthatwasusedforallcalculations.Theff99forcefield5wasemployed,withtheexceptionof[phi/psi]dihedralparameterswhichwererefit6(seeSupportingInformation)toimproveagreementwithabinitiorelativeenergies7ofalaninetetrapeptideconformations.Parameterswerenotfittodataforthetrpcage.SolvationeffectswereincorporatedusingtheGeneralizedBornmodel,8asimplemented9inAMBER.
文献显示,他们首先建立了一个线形的起始结构,这一步我们已经完成了,之后他们运行了没有限制的恒温动力学模拟过程(即正则系综中的模拟)在动力学过程中他们使用了广义波恩近似来模拟溶剂效应的影响。
AMBER程序可以支持很多不同的广义波恩模型,在这些模型中最先进的是由A.Onufriev,D.Bashford和D.A.Case等人开发的改良GB模型,这个GB模型使用了模型II的半径(IGB=5)具体可以参考AMBER用户手册的GB模型一章。
在论文中,他们没有使用特殊的GB模型,这是因为在那时AMBER程序中只有IGB=1这个设定可用。
为了使我们的教程尽可能接近文献报道,我们也使用IGB=1的设定。
由于Leap默认的设定就是IGB=1,所以我们无需专门对此作出设定。
论文中还声明他们使用了FF99力场,这与我们之前设定的是一样的,但是他们的立场有改进的phi/psi二面角参数,这是对FF99立场中phi/psi二面角参数的一种校正,可以更好的模拟蛋白质中alpha螺旋的结构。
为了更好地重复文献中的工作,我们需要建立一个包含上述修正的参数文件。
但是比较麻烦的是,文献中并没有明确给出那些参数做了如何的改变,仅仅给出了一个修正后的parm99.dat文件。
出现这种情况的原因我认为可能是AMBER6本身不带FF99力场,在当时存在很多不同的版本,文献的作者为了让人们了解他们使用的是官方版本的FF99力场所以在论文中展示了parm99.dat文件。
但很不幸,ACS以PDF文件格式给出了这个文件,这使得我们很难直接使用这个文件。
幸运的是,在AMBER8版本中,给出了这个修正的力场,位于下述路径:
$AMBERHOME/dat/leap/parm/asfrcmod.mod_phipsi.1.下面我也列出了文件的内容,以备不时:
frcmod.mod_phipsi.1
fromSimmerling,Strockbine,Roitberg,JACS124:
11258,2002.Modifiesparm99.
MASS
BOND
ANGL
DIHEDRAL
N-CT-C-N10.700180.000-1.
N-CT-C-N11.100180.0002.
C-N-CT-C11.0000.0001.
NONB
如你所见,只有三个二面角参数发生了变化,所以我们只需要打开xLEaP,读取这个文件,其中的参数就会自动覆盖原有的参数。
如果现在你已经关闭了xLEaP,可以重新打开并调入蛋白质结构:
$AMBERHOME/exe/xleap-s-f$AMBERHOME/dat/leap/cmd/leaprc.ff99
>loadoffTC5b_linear.lib
然后调入修正的二面角参数:
>loadamberparamsfrcmod.mod_phipsi.1
下面就可以存储我们的prmtop和inpcrd文件:
>saveamberparmTC5bTC5b.prmtopTC5b.inpcrd
下面是生成的输入文件TC5b.prmtop,TC5b.inpcrd
第三步:
预优化蛋白质.
在运行分子动力学模拟之前我们必须对起始结构进行短时间的优化,这样的话我们的体系就不会因为局部能量的聚集而在动力学过程中出现问题。
结构优化的过程会整理整个分子结构,重新修整氢的位置,这样的过程之后我们的动力学模拟会比较稳定。
下面是结构优化的输入文件:
min1.in
Stage1-minimisationofTC5b
&cntrl
imin=1,maxcyc=1000,ncyc=500,
cut=999.,rgbmax=999.,igb=1,ntb=0,
ntpr=100
/
我们总共运行1000步优化过程,其中500步为最陡下降法(ncyc=500),然后紧跟500步共轭梯度法(maxcyc-ncyc)。
这样的设置已经足够充分地释放聚集在起始结构中的能量。
需要提醒的是我在输入文件中设置了非常大的截断值(cut=999.angstroms),这样设置是因为我们使用了非周期模拟(ntb=0),故而我们没有使用PME方法,也就不会出现长程的静电相互作用。
如果使用了PME,推荐的截断值是8埃,在这样一个范围内实际上模拟的主要是范德华相互作用。
但是如果不使用PME而设置截断值的话,范德华相互作用和静电相互作用都在截断值的范围内被截断了,所以在没有使用PME方法的状况下,最好要将截断值尽可能设大。
需要提醒的是,模拟的耗时是与截断值的平方成正比的,(参见教程一的5.1.2节)所幸我们模拟的体系非常小,足够承受没有截断值(cut=999)的计算。
基于同样的原理我们将rgbmax也设置为999埃,这个参数控制了在计算非键相互作用过程中列用于计算有效波恩半径的粒子对的最远间距。
这个值设定的越大,计算的结果就越好,当然也就需要花费越多的计算时间。
考虑到我们面对的体系只有20个氨基酸残基我们可以把所有的粒子都纳入到有效波恩半径中来,所以我们设定的rgbmax远远大于计算的尺度。
.
下面开始运行优化过程:
$AMBERHOME/exe/sander-O-imin1.in-omin1.out-pTC5b.prmtop
-cTC5b.inpcrd-rmin1.rst
InputFiles:
TC5b.prmtop,TC5b.inpcrd,min1.in
OutputFiles:
min1.out,min1.rst
在16个1.3GHzCPU的SGIAltix上这个过程需要3.5秒完成
为了直观的比较优化前后的结构,我们生成一个pdb文件:
$AMBERHOME/exe/ambpdb-pTC5b.prmtopmin1.pdb
将优化前后的两个文件打开(min1.pdbandTC5b_linear.pdb)你可以选择任何可用的显示软件,比如VMD
起始结构用蓝色显示,优化后的结构用黄色显示。
如你所见,优化过程并未造成主链结构太大的变化但是色氨酸和酪氨酸残基发生了比较明显的移动,这些能量热点集中的区域有可能在我们开始分子动力学模拟之后带来麻烦,如果你不相信,可以用未经优化的结构跑一个动力学过程看看,肯定飞!
第四步:
体系加热.
接下来我们要在这个体系中正式开始分子动力学模拟,首先我们要分7步花费50ps时间对体系进行升温模拟。
将升温过程分为7步完成可以在每一步升温之后维持一段时间,以免一次升温造成体系能量聚集最终跑飞,另外一种可行的方法是对升温过程加一个权重限制。
您可以参阅AMBER用户手册以获取更多信息。
一般而言我们升温的最终目标是室温即300K但是为了重复文献的运算我们选择325K:
MDsimulationsof100nswereperformedat300K,butallwerekineticallytrappedonthistimescale,showingstrongdependenceoninitialconditionsandfailingtoconvergetosimilarconformationalensembles.Wethereforeincreasedthetemperatureto325K.
文献认为必须将体系加温到325K进行模拟,否则有可能使模拟的结果最终落入局部最小点,所以我们也做同样的设定。
但是你必须牢记更高的模拟温度会导致体系中各化学键发生更加显著的振动,这意味着如果你打算做一个600K,以2fs为步长的动力学模拟,你就要考虑一个应用了shaken的300k效果会与之相同,但600K的模拟却要临步长过大的问题,过大的步长会导致体系不稳定。
还好325K不算太高,还比较接近常用的300K,2fs的步长可以处理含氢的键的振动。
可是假如我们要在400K的条件下运行动力学模拟的话,那模拟的步长就要缩减到1.5fs。
我们的起始结构是手工搭建的,不是通常常见的来自实验的晶体结构,所以我们的体系在模拟的开始阶段要面临不如晶体结构稳定的问题。
为了让我们的体系能够在可控制的状况下来释放能量,在模拟起始的升温阶段我们选择步长为0.5fs,进入相对稳定的生成相之后,我们再选择常规的2fs步长0.5fs的步长确实有些矫枉过正,但是保证体系的安全毕竟还是最重要的。
我们进行升温模拟的方案如下:
第一阶段-10,000步,步长0.5fs(共5ps),起始温度0.0K,结束温度50.0K,温度耦合系数1.0ps
第二阶段-10,000步,步长0.5fs(共5ps),结束温度100.0K,温度耦合系数1.0ps
第三阶段-10,000步,步长0.5fs(共5ps),结束温度150.0K,温度耦合系数1.0ps
第四阶段-10,000步,步长0.5fs(共5ps),结束温度200.0K,温度耦合系数1.0ps
第五阶段-10,000步,步长0.5fs(共5ps),结束温度250.0K,温度耦合系数1.0ps
第六阶段-10,000步,步长0.5fs(共5ps),结束温度300.0K,温度耦合系数1.0ps
第七阶段-40,000步,步长0.5fs(共20ps),结束温度325.0K,温度耦合系数1.0ps
下面是第一阶段的输入文件:
heat1.in
Stage1heatingofTC5b0to50K
&cntrl
imin=0,irest=0,ntx=1,
nstlim=10000,dt=0.0005,
ntc=2,ntf=2,
ntt=1,tautp=1.0,
tempi=0.0,temp0=50.0,
ntpr=50,ntwx=50,
ntb=0,igb=1,
cut=999.,rgbmax=999.
/
其他六个阶段的输入文件与之非常接近,只需要改变一下相应的温度就可以了,可以从此处下载现成的输入文件:
(heat2.in,heat3.in,heat4.in,heat5.in,heat6.in,heat7.in).
下面是一个运行升温模拟的PBS脚本,你也可以根据你的系统自己写一个脚本。
#PBS-lncpus=16
#PBS-lwalltime=500:
00:
00
#PBS-lcput=2000:
00:
00
#PBS-joe
setenvAMBERHOME/usr/people/rcw/amber9
cd~rcw/initial_heating
mpirun-np16$AMBERHOME/exe/sander-O-iheat1.in-pTC5b.prmtop-cmin1.rst-rheat1.rst-oheat1.out-xheat1.mdcrd
gzip-9heat1.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat2.in-pTC5b.prmtop-cheat1.rst-rheat2.rst-oheat2.out-xheat2.mdcrd
gzip-9heat2.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat3.in-pTC5b.prmtop-cheat2.rst-rheat3.rst-oheat3.out-xheat3.mdcrd
gzip-9heat3.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat4.in-pTC5b.prmtop-cheat3.rst-rheat4.rst-oheat4.out-xheat4.mdcrd
gzip-9heat4.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat5.in-pTC5b.prmtop-cheat4.rst-rheat5.rst-oheat5.out-xheat5.mdcrd
gzip-9heat5.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat6.in-pTC5b.prmtop-cheat5.rst-rheat6.rst-oheat6.out-xheat6.mdcrd
gzip-9heat6.mdcrd
mpirun-np16$AMBERHOME/exe/sander-O-iheat7.in-pTC5b.prmtop-cheat6.rst-rheat7.rst-oheat7.out-xheat7.mdcrd
gzip-9heat7.mdcrd
echo"DONE"
译者提供的bash脚本如下:
#!
/bin/bash
#heating
sander-O-iheat1.in-pTC5b.prmtop-cmin1.rst-rheat1.rst-oheat1.out-xheat1.mdcrd
gzip-9heat1.mdcrd
sander-O-iheat2.in-pTC5b.prmtop-cheat1.rst-rheat2.rst-oheat2.out-xheat2.mdcrd
gzip-9heat2.mdcrd
sander-O-iheat3.in-pTC5b.prmtop-cheat2.rst-rheat3.rst-oheat3.out-xheat3.mdcrd
gzip-9heat3.mdcrd
sander-O-iheat4.in-pTC5b.prmtop-cheat3.rst-rheat4.rst-oheat4