CHARMM 快速入门.docx
《CHARMM 快速入门.docx》由会员分享,可在线阅读,更多相关《CHARMM 快速入门.docx(11页珍藏版)》请在冰豆网上搜索。
CHARMM快速入门
CHARMM快速入门
1、CHARMM简介
CHARMM是英语ChemistryatHarvardMacromolecularMechanics的缩写,是一个超过550,000行代码的计算程序,用来进行经典的、量子的或量子经典杂化的模拟。
CHARMM最初是由哈佛大学的Karplus教授的实验室所开发的,1967年至1976年间,Karplus教授的研究生BruceGelin编写了一个计算蛋白能量并进行优化的程序,奠定了在结构生物学领域中应用模拟方法的基础。
这个程序现在被称之为Pre-CHARMM。
1983年,Karplus教授的弟子们发布了CHARMM程序的第一个版本。
这个程序的名字来自于BobBruccoleri提出的HARMM,意为哈佛大学的大分子力学(HARvardMacromolecularMechanics)研究程序,后来又在前面加上了一个C表示化学(Chemistry)。
CHARMM程序一问世,便得到了广泛应用,尤其是药物开发公司日益认识到在药物设计过程中对大分子进行计算机模拟的重要性。
1985年,CHARMM程序开始提供给企业使用,先后有Polygen、MSI和Accelrys等公司进行商业推广,并开发了QUANTA和INSIGHT两个图形界面程序作为CHARMM程序的前台。
商业版本的程序被命名为CHARMm,以与学术版本的CHARMM程序相区别。
CHARMM可以称得上是生物分子模拟软件中的贵族了。
它以其博大精深而居龙头老大的地位。
当今一些著名的大分子模拟程序都是源自CHARMM。
如PaulWeiner将Pre-CHARMM程序带到了PeterKollman的研究组,据此开发了Amber程序的第一个版本;而Karplus教授的博士后WilfredvanGunsteren则将Pre-CHARMM程序带走,作为开发GROMOS程序的基础。
至于NAMD程序,更是基于CHARMM进行了并行化的处理,把CHARMM的功能发挥的淋淋尽致。
用过CHARMM的人会感到CHARMM的设计是独具匠心的,真正入了门,用起来会觉得妙不可言,这是其他同类软件所望尘莫及的。
然而CHARMM又素以入门不易而闻名,令人生畏。
说来也是,几乎快三十年了,还没有一本比较像样的、比较完整的、比较系统的参考资料或使用说明问世。
开发CHARMM的大牛们似乎一直在自己的象牙塔里面经营,不屑于做些科普的东东。
初学者不得不在CHARMM所提供的一大堆文档中转迷宫,可谓痛苦也。
近年来局面有所改观,一些网站提供了使用CHARMM的界面,研究者只需将欲研究的体系提交,便可得到相应的输入文件,不用再苦苦自行摸索了。
但这些网站一是使人难以对CHARMM有深入的了解,二来使用英文界面,令国内的CHARMM用户十分不爽。
也难怪,这些年来,在分子模拟和计算领域,国外的程序如雨后春笋一样层出不穷,国内的人大多是只能亦步亦趋,连消化还来不及,别说有自己的东东了。
那些拿着巨额经费的大牛们尚跟在外国人的屁股后面跑,拿不出自己的东东,就别说一般的老百姓了。
想当年,国内尚有自己开发的量子化学计算程序,如今呢?
清一色的进口货。
在大分子模拟方面,我们至少要比国外落后三十年,尚无可以与CHARMM、Amber等国外程序相比肩的冬冬。
可惜这种局面一时难以改观,我们只好先从普及入手,来个洋为中用,先把底子打好。
2、运行CHARMM
CHARMM可在各种各样的UNIX、Linux及Windows环境下运行。
根据电脑的类型和计算的需求,可以使用不同的版本:
small:
6,000原子
medium:
25,000原子(推荐)
large:
60,000原子
xlarge:
240,000原子
xxlarge:
360,000原子
huge:
1,000,000原子
计算机中所运行的程序可以分为两大类:
选单驱动和命令驱动。
所谓选单驱动,就是通过图形用户界面,用鼠标点击选取选单命令,实现所需的操作和计算。
而命令驱动是要在命令行调用程序,通过键盘输入命令。
CHARMM程序使用命令行界面,绝大部分的操作要经由输入命令完成。
用命令行调用CHARMM的基本方法是:
charm_executableoutput_file.out
这里charm_executable是计算机中所安装的CHARMM程序,对于我们所用的Windows版本,为charm.medium.exe和charm.large.exe。
CHARMM程序后面跟随的input_file.inp和output_file.out分别是输入命令文件和结果输出文件。
需要说明的是CHARMM能接受命令行参数来设置CHARMM的运行,例如
charm_executablensteps=100output_file.out
这里的nsteps=100即为命令行参数,可以不用修改输入命令文件而让CHARMM程序以不同的参数运行。
3、基本输入命令文件
由前面所属的运行CHARMM程序的基本方式可知,使用CHARMM进行模拟计算的关键是输入命令文件。
根据不同的计算要求和欲模拟的体系编写输入命令文件是使用CHARMM的难点也是其魅力所在。
下面是一个对植物种子中的crambin蛋白进行MD模拟和简单分析的输入命令文件(文件名为exa_1_1.inp):
*CHARMMExampleinputfile:
10psdynamicsofcrambininvacuum
*CHARMMWorkshop(09/2009)
*
!
Readparameterandtopologyfiles
READrtfcardnametop_all27_prot_na.rtf
READparamcardnamepar_all27_prot_na.prm
!
SETUP:
Generatepsffile
READsequencepdbname1crn.pdb
GENErateprotFIRSTNTERLASTCTERsetupwarn
READcoorpdbname1crn.pdb
ICparam!
Fillinmissingbondandangleinformationfromparameterfile
ICbuild!
Buildinganymissingatoms
HBUIldselecthydrogenend!
Fillinhydrogencoordinates
!
MINIMIZE:
Usingdefaultforcefieldparameters
MINIsdnstep100
MINIabnrnstep1000nprint100tolara0.1
!
SIMULATE:
RundynamicswithSHAKEconstraintsonallbonds
SHAKebonds
OPENunit11writefilename1crn.dcd
DYNAmicsstartleapnstep10000timestep0.001
-
firsttemp35.0finaltemp285.0teminc50.0ihtfrq200-
cutnb14.0ctofnb12.0fshiftinbfrq-1nsavc100iuncrd11
!
ANALYZE:
Computeraveragecoordinates
OPENunit12readfilename1crn.dcd
COORdynafirstunit12nunits1
WRITecoorpdb
name1crn_ave.pdb
*averagecoordinatesofcrambinfrom10pssimulationinvacuum
*
STOP
这个简单的输入命令文件可以分为以下几个部分:
1)标题行
*CHARMMExampleinputfile:
10psdynamicsofcrambininvacuum
*CHARMMWorkshop(09/2009)
*
2)读入力场文件
!
Readparameterandtopologyfiles
READrtfcardnametop_all27_prot_na.rtf
READparamcardnamepar_all27_prot_na.prm
3)构建计算模型
!
SETUP:
Generatepsffile
READsequencepdbname1crn.pdb
GENErateprotFIRSTNTERLASTCTERsetupwarn
READcoorpdbname1crn.pdb
ICparam!
Fillinmissingbondandangleinformationfromparameterfile
ICbuild!
Buildinganymissingatoms
HBUIldselecthydrogenend!
Fillinhydrogencoordinates
4)体系能量极小化
!
MINIMIZE:
Usingdefaultforcefieldparameters
MINIsdnstep100
MINIabnrnstep1000nprint100tolara0.1
5)分子动力学模拟计算
!
SIMULATE:
RundynamicswithSHAKEconstraintsonallbonds
SHAKebonds
OPENunit11writefilename1crn.dcd
DYNAmicsstartleapnstep10000timestep0.001-
firsttemp35.0finaltemp285.0teminc50.0ihtfrq200-
cutnb14.0ctofnb12.0fshiftinbfrq-1nsavc100iuncrd11
6)计算结果的分析
!
ANALYZE:
Computeraveragecoordinates
OPENunit12readfilename1crn.dcd
COORdynafirstunit12nunits1
WRITecoorpdbname1crn_ave.pdb
*averagecoordinatesofcrambinfrom10pssimulationinvacuum
*
7)计算结束
STOP
4、实际计算
这个简单的输入命令文件虽然简单,但包含了一个完整的MD模拟的基本环节。
下面我们就来运行这个模拟。
我们建议首先在自己计算机的C盘上创建一个工作目录,如pro,然后将下载的exa_1_1.rar释放到该目录下形成一个新的子目录exa_1_1,该目录下共有5个文件:
1crn.pdb
charm.bat
exa_1_1.inp
par_all27_prot_na.prm
top_all27_prot_na.rtf
其中1crn.pdb是要模拟的蛋白体系,charm.bat是运行CHARMM的批处理命令文件,exa_1_1.inp是前面所述的输入命令文件,par_all27_prot_na.prm和top_all27_prot_na.rtf是CHARMM的力场文件。
需要说明的是,由简单的输入命令文件可以看出,使用CHARMM进行分子动力学模拟,最少要有四个文件:
一个蛋白体系,一个输入命令文件和两个力场文件。
这里的charm.bat是为了方便使用我们所提供的软件而设的,不是必须的,其内容如下:
@echo
date/t>date.txt
date07/14/07
callc:
\charmm32b1\bin\charmm.large<%1.inp>%1.out
datedeldate.txt
使用时要针对自己所安装的CHARMM程序的位置对第四行的用红色标志的路径部分进行修改,以便计算机能够找到CHARMM程序并运行之。
在Windows环境下点击start,选择AllPrograms,在出现的选单中选AccelrysCHARMm32b1,接着选LaunchCHARMm,便可进入命令行窗口.
在命令窗口中输入一下命令进入工作目录:
cdc:
\pro\exa_1_1
然后使用我们提供的批处理命令文件charm.bat调用CHARMM程序:
charm
exa_1_1
我们讲过,我们所用的CHARMM程序是未破解的,有日期限制,批处理命令文件charm.bat的实质是自动修改系统的日期,使得CHARMM程序可以正常运行,计算完成后再自动的改回系统的时间。
他所执行的运行CHARMM程序的命令为:
c:
\charmm32b1\bin\charmm.largeexa_1_1.out
如果使用的不是有日期限制的软件,就不必使用charm.bat,可以直接键入以上命令。
模拟计算结束后,生成三个新的文件:
1crn.dcd
1crn_ave.pdb
exa_1_1.out
其中1crn.dcd是轨迹文件,反映了蛋白体系中的各个原子在模拟过程中的运动变化规律。
这是一个二进制的文件;1crn_ave.pdb是蛋白在模拟过程中的平均结构,可以使用分子结构显示软件显示。
exa_1_1.out时计算结果输出文件,其中包含了所模拟的体系的能量随时间变化的规律。
5.CHARMM命令基础
前面讲过,使用CHARMM进行模拟计算的关键是编写输入命令文件。
输入命令文件是由一系列的CHARMM命令所组成的。
其基本要求如下:
1)每一个CHARMM输入命令文件必须以一个标题开始,主要用以对计算进行说明。
标题的行数不限,以星号(*)开始,可以包含任意内容。
标题以仅有一个星号的行结束。
我们前面所提供的输入命令文件中的标题行为:
*CHARMMExampleinputfile:
10psdynamicsofcrambininvacuum
*CHARMMWorkshop(09/2009)
*
2)CHARMM输入命令文件以停止命令(STOP)结束。
3)CHARMM只读入命令的前四个字符,不考虑大小写。
例如GENERATE、generate、GENE、gene都执行同样的命令。
在我们所用的CHARMM输入命令文件中,采用前四个字符大写,其余小写的做法,以突出命令的关键词,如:
WRITecoorpdbname1crn_ave.pdb
需要强调的是,在UNIX或Linux环境下使用大小写时必须小心,例如,访问文件/home/user/Charmm/file.psf时,由于Charmm中有大写的C而会失败,可以用引号将其包括起来而避免出错,即“home/user/Charmm/file.psf”。
4)CHARMM支持在输入命令文件中使用基本的逻辑和数学操作,如使用IF、GOTO、LABEL、STREam、RETUrn、SET、INCRement、DECRement等语句。
IF语句与其他语言中的IF语句一样,可进行下列的判定:
.GT.大于
.LE.小于
.GE.大于等于
.LE.小于或等于
.EQ.相等
.NE.不相等
.AE.几乎相等(差为0.0001)
例如:
IFphi.EQ.1.618
SETpi=3.14
使用GOTO命令时必须首先用LABEL建立一个标识。
在CHARMM命令文件中用这两个命令建立循环。
例如:
SETi=1
LABELLOOP
dosomething…
INCRementiby1
IF@i.LT.10THENGOTOLOOP
STREAM命令用来将另一个文件读入到输入命令文件中。
这有助于分割一个大的输入文件,或用一行输入一些常用的命令,其作用类似于程序设计中的子程序。
要被读入的文件必须有一个标题,用return命令结束,而不是用stop命令结束。
我们将在后面介绍其用法。
CHARMM的SET命令用来给变量赋数值。
DEFIne用于字符串。
例如:
SETphi=1.618
CALC命令用来进行计算。
CHARMM要求在数、运算符和圆括号之间加空格,例如:
calcpi=2.14+1
结果:
变量pi等于3.14
命令DEFIne可以这样使用:
DEFIbigproteinSELEctSEGIDAEND
这里,bigprotein用于原子选择。
因此bigprotein一词表示所有段标示符(SEGId)为A的原子。
5)CHARMM输入命令文件中使用连字符(-)表示续行。
6)CHARMM输入命令文件使用惊叹号(!
)添加注释,例如:
!
MINIMIZE:
Usingdefaultforcefieldparameters
MINIsdnstep100
MINIabnrnstep1000nprint100tolara0.1
7)CHARMM在运行期间输出打印的信息量由WRNLev和PRNLev命令控制。
警告的级别在-5和5之间,低的数值表示较严重的警告。
WRNLev设定将向用户展示的最少的严重警告。
缺省值是5(所有的警告都打印)。
同样非警告性的输出语句指定在0到10之间。
只展示不到当前PRNLev的那些信息。
PRNLev的缺省值是5。
8)BOMBlev(或者BOMLev)命令用来设定将使CHARMM中止执行的警告的级别。
缺省值是0。
不推荐运行BOMBlev不到-2的模拟,因为严重的错误通常影响计算的有效性。
所有等于或者低于0级警告的信息应该仔细检查,以确保不影响结果。
作业:
1、从网站www.pdb.org上下载蛋白1crn,代替我们所提供的文件进行模拟,会有什么结果?
可以查看输出文件exa_1_1a.out,分析出现的问题。
2.输出文件exa_1_1a.out中与体系能量变化有关的内容如下:
对于极小化部分,有
MINI>0-430.830910.000000.451300.00000
MINI>100-515.5518584.720940.701790.02153
其中每行的第二项是循环的次数,第三项是体系的能量,第四项是能量差值,第五项是几何平均方差。
对于动力学模拟部分,有
DYNA>00.00000-335.2472454.22036-389.4676042.53301
DYNA>1000.10000-335.0448224.84750-359.8923219.49156
其中每行的第二项是模拟的次数,第三项是时间,第四项是体系的总能量,第五项是体系的势能,第六项是体系的温度。
试用Perl语言或其他所熟悉的语言编写一个小程序将这些内容提取出来,绘图显示体系在模拟过程中随时间变化的情况。