NAMD入门教程三.docx
- 文档编号:29786054
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:29
- 大小:876.46KB
NAMD入门教程三.docx
《NAMD入门教程三.docx》由会员分享,可在线阅读,更多相关《NAMD入门教程三.docx(29页珍藏版)》请在冰豆网上搜索。
NAMD入门教程三
4受控分子动力学模拟(SteeredMolecularDynamics)
所谓受控分子动力学模拟(SteeredMolecularDynamics,SMD),就是指在进行分子动力学模拟时,人为地给分子中的某个或某几个原子施加一个假想的外力,或者人为地固定某个或某几个原子的位置。
从而控制整个分子的行为。
我们前面进行的动力学模拟都是通过各种参数设置,尽量逼近蛋白质分子在溶液体系中的真实状态,以研究分子的各种性质和行为。
但受控分子动力学模拟却要用一个假想的外力干扰控制生物大分子的行为,这是为什么呢(需要查一下更多的SMD的应用实例,详细了解SMD究竟可以用于研究什么问题,才能做出回答)
在下面的例子中,我们将首先固定泛素分子中一个原子的位置,然后用一个假想的外力牵拉另一个原子。
球形的泛素分子会因此而被逐渐拉开,最终成为伸展状态的肽链。
进行SMD时,我们需要用已经完成能量最小化和能量平衡,达到稳定状态的蛋白结构。
如果用含有扭曲、拉伸、变形构象的原始蛋白结构,我们将无法分清蛋白各部分的运动是由于蛋白内部的形变张力引起的,还是由于SMD实验附加的外力造成的。
因此,进行SMD之前必须预先进行一次平衡态分子动力学模拟,获得稳定结构。
这里,我们使用节球状水体分子动力学模拟输出的恢复文件(.restart)进行SMD。
恢复文件输出时,泛素已在水体中完成了能量最小化和能量平衡,达到了稳定状态。
除去水分子
为了节省计算时间,我们在进行本次SMD之前将除去体系中所有的水分子。
但读者必须要注意:
在真正进行SMD实验的时候决不可以将水分子除去!
1、打开VMD,选择File→NewMolecule菜单项,载入common目录下的文件。
不要关闭窗口,此时窗口“Loadfilefor:
”一项应该显示“0:
”。
再次单击按钮Browser,找到1-2-sphere目录下的文件,载入该文件。
关闭MoleculeFileBrowser窗口。
现在我们载入了节球状水体动力学模拟时输出的恢复文件(.。
2、选择Extension→tk菜单项,打开tk,首先用cd命令改变当前目录至common目录下,然后输入:
setselprotein[atomselecttopprotein]
$selproteinwritepdb
这样我们便在common文件夹下新建了一个pdb文件,储存已经达到平衡态的蛋白质分子,但没有水分子。
3、删除当前分子,但不要关闭VMD。
恒速牵拉
图恒速牵拉的图示。
图中SMD原子是蓝色的,假原子(dummyatom)是红色的,二者之间有一根假想的弹簧相连。
假原子以恒定的速度运动,弹簧发生形变后作用于SMD原子,于是SMD原子开始运动。
在这一节我们将使用恒速牵拉进行SMD动力学模拟。
进行恒速牵拉时,我们需要首先设定一个假想的原子作为施力原子,这个实际并不存在的原子就叫做假原子(dummyatom)。
假原子通过一根假想的弹簧与系统中真实存在的某个原子(称为SMD原子)相连,牵拉时,假原子以恒定的速度运动,因此称这种牵拉方式为恒速牵拉。
实际上被牵拉原子(SMD原子)的速度不是恒定的。
SMD原子所受拉力由弹簧的形变和弹性系数决定,满足胡克定律:
。
又有:
其中
是SMD原子所受的力,
是假想弹簧的形变量。
它等于假原子的位移
减去SMD原子的位移,其中
是SMD原子的初始位置,
是SMD原子的当前位置。
因此,SMD原子的受力可以计算出来,然后根据牛顿定律计算它的运动情况。
4.2.1设定SMD原子和固定原子(Fixedatom)
NAMD使用pdb文件中的B因子一栏区别哪些原子是被固定的,哪些原子未被固定:
如果某个原子在该栏中的对应值是1(非0值即可),那么该原子被固定,在整个动力学模拟过程中,它的空间坐标不会变化;反之如果为0,那么该原子不受影响。
知识链接:
PDB文件的格式
使用写字板打开common目录下我们刚刚制作的,可以看到文件的内容分成几栏(column):
在上图中,给我们提供有用信息的共有10栏数据,已在图中标注出:
(1)表示所指示为原子
(2)该原子序列号
(3)IUPAC标准格式的原子名称
(4)残基名称
(5)残基序列号
(6)原子的X坐标
(7)原子的Y坐标
(8)原子的Z坐标
(9)位置(Occupancy)
(10)温度因子或B因子(betafactor)
其中后两栏在动力学模拟的时候被NAMD用于标记两类特殊的原子:
位置(Occupancy)栏用于标记SMD原子,B因子一栏用于标记固定原子(fixedatom)。
4.2.1设定固定原子(fixedatom)和SMD原子
下面我们将使用VMD创建我们所需的pdb文件。
我们在本例中将使用pdb文件中B因子一栏(即温度因子)指定哪个原子将被固定,使用位置(occupancy)一栏指定哪个原子作为SMD原子被牵拉。
1、在VMD中选择File→NewMolecule菜单项,单击Browse按钮找到common目录下的文件,载入它。
不要关闭MoleculeFileBrowser窗口,注意Loadfilefor一项应当显示1:
。
再次单击Browse按钮,载入common目录下的。
关闭MoleculeFileBrowse窗口,在VMD图形窗口中应当可以看到没有水分子的泛素分子(图)。
图载入除去水分子后的泛素分子
2、在VMDtk中输入以下命令,固定第一个氨基酸残基的α碳:
setallatoms[atomselecttopall]
$allatomssetbeta0
setfixedatom[atomselecttop“resid1andnameCA”]
$fixedatomsetbeta1
下面是对命令的解释:
setallatoms[atomselecttopall]新建了一个变量allatoms,它代表体系中的所有原子。
$allatomssetbeta0所有原子在pdb文件中的B栏(即beta)全部设为0。
setfixedatom[atomselecttop“resid1andnameCA”]新建一个变量fixedatom,代表第一个氨基酸残基的α碳。
$fixedatomsetbeta1fixedatom所代表的原子——第一个氨基酸残基的α碳的B栏被设置为1。
这样NAMD会在分子动力学模拟时保持该原子固定。
同样地,我们还需要设定哪一个原子将被牵拉。
前面提到过,被牵拉的原子就叫做SMD原子。
对于这一种原子,NAMD使用pdb文件中的“位置”(occupancy)一栏进行标记。
同样地,0代表不受影响的原子,标记为1的原子将被牵拉。
设置方法仍然是在tk中输入命令进行。
$allatomssetoccupancy0
setsmdatom[atomselecttop“resid76andnameCA”]
$smdatomsetoccupancy1
以下是对上述命令的解释:
$allatomssetoccupancy0当前pdb文件中所有原子的“occupancy”一栏设置为0。
setsmdatom[atomselecttop“resid76andnameCA”]新建了一个变量smdatom,代表第76个氨基酸(即最后一个氨基酸)的α碳。
$smdatomsetoccupancy1变量smdatom所代表的原子的occupancy一栏设定为1,这样NAMD会在分子动力学模拟时将假想的力作用于该原子上。
完成上述设定之后,我们需要让VMD输出我们设置好的文件。
如果当前目录不是common,用cd命令改变当前目录到common中,然后输入:
$allatomswritepdb回车后会在当前目录生成文件,这就是我们进行SMD所需的文件,它记录了泛素的结构,以及哪一个原子作为固定原子(fixedatom),哪一个作为牵拉原子。
不要关闭VMD,将所有窗口最小化。
使用写字板打开common目录下的文件,注意打开时“文件类型”依然要选择“所有文件(*.*)”否则将看不到该文件。
在文件开头第六行即可找到固定原子——第一个氨基酸甲硫氨酸的α碳。
这个原子的B因子一栏为,而其它原子都为(图)。
拖动滚动条向下,一直到倒数第四行,可以看到我们定义的SMD原子——最后一个氨基酸甘氨酸的α碳。
这个原子的Occupancy一栏是,而其它原子都是(图)。
图固定原子(Fixedatom)的设置
图SMD原子的设置
需要说明一点:
在上面两张图中出现的原子坐标数值(第7、8、9栏数值)可能和读者看到的不一致。
这是因为动力学模拟中,能量平衡(equilibration)一步中各个原子的初始速度是随机选择的。
我们使用的pdb文件是各个原子能量平衡结束后的末速度,因为初速度是随机的,末速度也不一定相同。
4.2.2设定拉力的方向
现在,关闭写字板。
我们已经设定了固定原子(fixedatom)和SMD原子。
下面我们需要做的是设定拉力的方向。
我们定义拉力的方向为沿固定原子(fixedatom)和SMD原子的连线方向(即由固定原子到SMD原子的矢量的方向)。
在VMDtk中输入:
setsmdpos[lindex[$smdatomget{xyz}]0]
setfixedpos[lindex[$fixedatomget{xyz}0]
vecnorm[vecsub$smdpos$fixedpos]
输入以上命令后,tk中给出三个数值,这三个值就是固定原子(fixedatom)到SMD原子的矢量坐标,分别为x,y,z坐标。
记下这三个值(图),我们后面还会用到。
然后关闭VMD即可。
图假想的拉力矢量的坐标
4.2.3配置文件
现在我们已经得到了文件:
,这个文件储存了原子的位置,以及哪个原子是固定原子,哪个原子是SMD原子。
下一步我们将制作NAMD配置文件。
注意在下面的步骤中一定要避免输入错误,否则很可能导致动力学模拟无法正常进行。
我们将对一个样本配置文件进行修改,制作我们所需要的配置文件。
在实际工作中,读者也可以修改NAMD教程中提供的样本配置文件,得到自己所需要的文件。
1、使用Windows资源管理器获得我们所需的样本配置文件。
文件在common目录下。
将这一文件粘贴到3-1-pullcv目录下,然后改名为以和其他文件相区分。
2、使用写字板打开。
现在我们看到的是一个配置文件的样本(图)。
浏览一下可以发现很多参数是用户需要根据实际情况进行设定的。
事实上,这个样本配置文件就是NAMD动力学模拟配置文件的基本蓝本,用户可以在此基础上量身定做符合自己需要的配置文件。
图NAMD配置文件样本
3、在JobDescription一栏加入:
#N-C-TerminiConstantVelocityPulling
当然这只是一个注释,不加也不会影响我们的动力学模拟。
4、在AdjustableParameters一部分进行如下改变,以符合我们本次动力学模拟的实际条件:
structure→structure../common/
coordinates→coordinates../common/
outputNamemyoutput→outputNameubq_ww_pcv
以上各项的含义参见2.3.1配置文件
5、在Input一部分进行如下改变,以符合我们本次动力学模拟的实际条件:
parameters
→parameters../common/
我们没有使用周期性边界条件,因此不需要设置PeriodicBoundaryConditions一部分。
此外Force-FieldParameters,IntegratorParameters和PME三项也不需改变。
6、ConstantTemperatureControl一项应该关闭,因为温度控制可能干扰原子的运动:
langevinon→langevinoff
7、ConstantPressureControl不需要进行改变,默认是不启用。
8、FixedAtomsConstraint需要启用。
请对前两行作出如下改变:
if{0}{→if{1}{
fixedAtomsFile→fixedAtomsFile../common/ubqww
(注:
和C语言中判断表达式真假类似,if{1}表示条件成立,if{0}表示条件不成立)
第三行不需要改变,因为我们是使用B值这一栏设定固定原子的。
如果在实际工作中使用了其他栏,就需要在这里作出相应改变以通知NAMD那一栏用于标记固定原子。
9、IMDSettings一项不需要改变,默认是不启用
10、在ExtraParameters一部分输入以下内容:
SMDon
SMDFile../common/
SMDk7
SMDVel
上面的内容的作用是:
通知NAMD我们将使用SMD原子。
SMD原子和假原子之间的弹簧弹性常数为7kcal/mol/oA2(1kcal/mol=pN/oA)。
SMDVel一项设定的就是假原子的速度。
这里设定为0.005oA/timestep。
因为我们设定1timestep=2fs,因此假原子的速度为2.5oA/ps。
在实际动力学模拟过程中,假原子将以该恒定速度运动,并通过一个假想的弹簧同SMD原子相连,牵拉SMD原子运动。
11、在ExtraParameters部分我们还需要制定拉力的方向。
请输入
SMDDirnxnynz
注意nx,ny,nz三个参数就是我们在4.2.2一节求出的矢量的坐标。
12、接下来继续输入:
SMDOutputFreq10
这个值指定每隔多少步输出一次SMD过程产生的数据
13、最后,在ExecutionScript部分将动力学模拟时间改为20000步,相当于40ps:
run50000→run20000
然后保存文件,关闭写字板。
我们已经完成了配置文件的设定。
提示
请再次注意,我们的设置仅仅是为了使得动力学模拟能够迅速完成,因此采取了许多不恰当的体系设定。
比如,具有科学意义的动力学模拟应当至少计算几个ns(几百万步),牵拉速度应该尽可能慢一些,在0.1oA/ps左右。
并且正如我们提到的,绝不可以忽略水分子。
4.2.4SMD模拟
下面我们可以进行动力学模拟了。
为了保证模拟正常进行,请确认3-1-pullcv目录下是否有文件,并确认common目录下有以下文件:
下面,打开terminal,使用cd命令改变当前目录到namd-tutorial/namd目录下(即NAMD所在目录),然后输入:
namd2../3-1-pullcv/>../3-1-pullcv/
实测:
CPU:
PentiumM740,内存:
512M可以在10min之内完成。
结果的获得与分析将在节讲解。
恒力牵拉
下面我们将进行另一种类型的SMD模拟:
恒力牵拉。
我们仍需要固定一个原子并指定另一个原子被牵拉,但是拉力是恒定的,直接作用于SMD原子上。
因此不需要指定假原子以及假想弹簧的弹性系数。
4.3.1设定固定原子(fixedatom)和SMD原子
我们在本例中仍将使用pdb文件中B因子一栏(即温度因子)指定哪个原子将被固定,使用位置(occupancy)一栏指定哪个原子作为SMD原子被牵拉,并设定拉力的大小。
1、在VMD中选择File→NewMolecule菜单项,单击Browse按钮找到common目录下的文件,载入它。
不要关闭MoleculeFileBrowser窗口,注意Loadfilefor一项应当显示0:
。
再次单击Browse按钮,载入common目录下的。
关闭MoleculeFileBrowse窗口,在VMD图形窗口中应当可以看到没有水分子的泛素分子
2、在VMDtk中输入以下命令,固定第一个氨基酸残基的α碳:
setallatoms[atomselecttopall]
$allatomssetbeta0
setfixedatom[atomselecttop“resid1andnameCA”]
$fixedatomsetbeta1
3、输入以下命令,设定SMD原子和拉力的大小:
$allatomssetoccupancy0
setsmdatom[atomselecttop“resid76andnamdCA”]
$smdatomsetoccupancy
这样第76个残基的α碳的Occupancy一栏被设定为,其他原子都为0。
这样不仅设定了SMD原子,而且设定了拉力大小为kcal/mol/oA。
相当于800pN(x10-10N)
4、下面设定拉力的方向。
$smdatomsetxnx
$smdatomsetyny
$smdatomsetznz
注意nx,ny,nz三个参数就是我们在4.2.2一节求出的矢量的坐标(,,)。
设定好之后图形窗口显示一个极度变形的分子。
不过没有关系,这是因为VMD将我们设定的拉力坐标按照原子的坐标显示出来了。
图设定好拉力坐标后图形窗口显示的分子
5、下面在tk中首先使用cd命令改变当前目录到common目录下,然后输入$allatomswritepdb保存我们的设定。
然后打开Windows资源管理器,找到common目录下,检查一下是否已经有文件如果有了,就可以关闭VMD。
4.3.2配置文件
和上一节我们进行的过程一样,我们还需要修改样本配置文件,制作我们需要的配置文件。
首先打开资源管理器,将common目录下的拷贝到3-2-pullcf目录下,并改名为,然后用写字板打开该文件开始编辑:
3、在JobDescription一栏加入:
#N-C-TerminiConstantForcePulling
当然这只是一个注释,不加也不会影响我们的动力学模拟。
4、在AdjustableParameters一部分进行如下改变,以符合我们本次动力学模拟的实际条件:
structure→structure../common/
coordinates→coordinates../common/
outputNamemyoutput→outputNameubq_ww_pcf
以上各项的含义参见2.3.1配置文件
5、在Input一部分进行如下改变,以符合我们本次动力学模拟的实际条件:
parameters
→parameters../common/
同上一节,我们不需要设置PeriodicBoundaryConditions一部分。
此外Force-FieldParameters,IntegratorParameters和PME三项也不需改变。
6、同上一节,ConstantTemperatureControl一项应该关闭,因为温度控制可能干扰原子的运动:
langevinon→langevinoff
7、ConstantPressureControl不需要进行改变,默认是不启用。
8、FixedAtomsConstraint需要启用。
请对前两行作出如下改变:
if{0}{→if{1}{
fixedAtomsFile→fixedAtomsFile../common/ubqww
9、IMDSettings一项不需要改变,默认是不启用
10、在ExtraParameters一部分输入以下内容:
constantforceyes
consforcefile../common/
上面的内容的作用是:
通知NAMD我们将对SMD原子施加一个恒定的拉力。
拉力的大小就是Occupancy一栏我们设定的值kcal/mol/oA。
拉力的方向不需要在此指定,因为我们刚才已经记录到了文件中。
11、最后,在ExecutionScript部分将动力学模拟时间改为20000步,相当于40ps:
run50000→run20000
然后保存文件,关闭写字板。
我们已经完成了配置文件的设定。
4.3.3动力学模拟
下面我们可以进行动力学模拟了。
为了保证模拟正常进行,请确认3-2-pullcf目录下是否有文件,并确认common目录下有以下文件:
下面,打开terminal,使用cd命令改变当前目录到namd-tutorial/namd目录下(即NAMD所在目录),然后输入:
namd2../3-2-pullcf/>../3-2-pullcf/
实测:
CPU:
PentiumM740,内存:
512M可以在10min之内完成。
结果分析
4.4.1恒速拉伸SMD结果分析
我们将在本节中分析恒速拉伸SMD的结果。
如果读者没有成功完成动力学模拟,可以使用3-1-pullcv/example-output中的结果文件。
4.4.1.1日志文件
首先我们看一下输出的日志文件。
打开写字板,找到日志文件3-1-pullcv/打开它。
向下拖动滚动条,是否发现比我们第一次动力学模拟的日志文件多了一些内容读者可以找到1-2-sphere/对照一下增加的内容(图)。
图输出文件中新增的内容
可以看到,在每次输出ENERGY之后,紧接着增加了以SMD开头的几行文字(图),这是NAMD输出的关于SMD原子(即我们定义的第76氨基酸的α碳)的数据。
图中
(1)记录的是步数,
(2)记录的是输出时SMD原子的坐标,(3)记录的是输出时SMD原子所受拉力的大小(x,y,z三个方向上的分力)。
4.4.1.2轨迹动画
下面我们将看一看动力学模拟生成的原子运动轨迹,直观地感受一下泛素肽链是如何被拉力拉开的。
1、打开VMD,选择File→NewMolecule菜单项,单击按钮Browse找到common目录下的,载入该文件;不要关闭MoleculeFileBrowser窗口,注意Loadfilefor一项应当显示0:
。
再次单击Browse按钮,载入3-1-pullcv目录下的轨迹文件。
关闭MoleculeFileBrowse窗口,在VMD图形窗口中应当可以看到泛素分子。
2、为了更形象的观察蛋白质分子的变化,我们需要改变一下显示模式。
选择Graphics→Representation菜单项,打开显示模式设置,将DrawingMethod一项由Lines改为Cartoon(图)以便直观地观察到二级结构的变化。
然后调节主窗口右下角的速度滑块至中央,单击最右边的播放按钮,就可以看到整个过程的动画了:
注意Cartoon模式下二级结构的表示:
α螺旋为圆柱,β片层为片层箭头,loop为线绳。
但是因为VMD不会每一帧都将二级结构重新渲染,因此我们看到,在动画的整个过程中肽链都是线绳状(图)。
这是因为我们从最后一帧开始渲染。
最后一帧时,整个肽链都处于伸展状态,相当于全是loop;因此VMD在渲染其它帧的时候也认为整条肽链都是l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NAMD 入门教程