使用Amber进行QM/MM动力学模拟[转]
(2015-11-09 11:25:01)
标签:
amberqm/mm分子模拟 |
使用Amber进行QM/MM动力学模拟
cnDenis,2012年5月11日
分子动力学软件Amber可以进行QM/MM混合模拟,所得到的轨迹也可以用QM/MM混合的方法计算自由能。
由于分子力学(MM)方法是将原子视为一个整体,不考虑核外的电子分布的影响,量子力学(QM)方法考虑了核外电子,看起来给人感觉要高级和准确一些。但并不总是如此,在构像分析的一些性质中,用合适的力子力场所得到的结果可能会比用半经验量化方法做出来的更好。而且QM比MM昂贵得多,一般而言体系中QM部分原子不要超过80-100个,否则运行起来会非常慢。
Amber中内置的QM模块源于Mopac的代码,支持 PM3,AM1,RM1,MNDO,PDDG/PM3,PDDG/MNDO, PM3CARB1和DFTB/SCC-DFTB等半经验量化方法。具体支持的元素类型请参考AmberTool手册。默认的方法为PM3。
Amber手册使用QM/MM模拟的sander输入文件例子如下(括号中的只是注释,实际应用时要去掉):
&cntrl
imin=0, nstlim=10000, (perform MD for 10,000 steps)
dt=0.002, (2 fs time step)
ntt=1, tempi=0.1, temp0=300.0 (Berendsen temperature control)
ntb=1, (Constant volume periodic boundaries)
ntf=2, ntc=2, (Shake hydrogen atoms)
cut=8.0, (8 angstrom classical non-bond cut off)
ifqnt=1 (Switch on QM/MM coupled potential)
/
&qmmm
qmmask=":753" (Residue 753 should be treated using QM)
qmcharge=-2, (Charge on QM region is -2)
qm_theory="PM3", (Use the PM3 semi-empirical Hamiltonian)
qmcut=8.0 (Use 8 angstrom cut off for QM region)
/
在&cntrl中设置ifqnt=1表示使用QM/MM模拟,然后添加&qmmm段,设置QM的各种参数。
qmmask 是设置使用QM的原子,冒号后面表示残基序号。还有其它的表示方法,语法请参考Amber手册ambmask部分。注意如果需要从一个分子中选取部分原子的话,QM原子和MM原子之间最好是非极性键,如C-C键。不可以把相连的C-H原子分别放在两个区。
qmcharge 是QM部分所带的电荷。
qm_theory 是QM计算使用的方法,默认值是PM3,如上所述。
qmcut 是QM原子受MM原子影响的范围,注意这个值是对于QM原子整体而言的,如果一个MM原子与任何一个QM原子的距离小于qmcut,所有的QM原子都会受到它影响。对于GB隐式水体系,设15~20埃,对于周期性显式水体系,一般8~9埃就可了。
目前只有sander支持QM/MM,PMEMD还不支持,所以CUDA加速是没法用的。QM/MM可以使用MPI并行加速,但由于并不是所有代码都支持并行化,手册上说超过8个CPU加速效果就不大了。
动力学轨迹也可以使用QM/MM处理。以下是我用MMPBSA.py计算自由能的一个输入文件。
calculate dG with QM/MM
&general
verbose=2,
/
&gb
ifqnt=1,
qm_residues=1,
qm_theory="PM3",
/
与普通纯MM的计算相比,输入文件在&gb段多了ifqnt、qm_residue和qm_theory,要注意的是qm_residues的表示方法与sander输入文件中不同,在这里不能使用Mask,而是直接写上残基序号,如果有多个残基,要用分号分开。
目前Amber中的QM/MM不支持PB模型,所以MMPBSA.py中的输入只能有gb段,不能有pb段,也就是只能算MM/GBSA,不能算MM/PBSA。
一般来说,模拟时和自由能计算的QM部分设置要一致,否则可能结果会很不合理。
cnDenis,2012年5月11日
分子动力学软件Amber可以进行QM/MM混合模拟,所得到的轨迹也可以用QM/MM混合的方法计算自由能。
由于分子力学(MM)方法是将原子视为一个整体,不考虑核外的电子分布的影响,量子力学(QM)方法考虑了核外电子,看起来给人感觉要高级和准确一些。但并不总是如此,在构像分析的一些性质中,用合适的力子力场所得到的结果可能会比用半经验量化方法做出来的更好。而且QM比MM昂贵得多,一般而言体系中QM部分原子不要超过80-100个,否则运行起来会非常慢。
Amber中内置的QM模块源于Mopac的代码,支持 PM3,AM1,RM1,MNDO,PDDG/PM3,PDDG/MNDO, PM3CARB1和DFTB/SCC-DFTB等半经验量化方法。具体支持的元素类型请参考AmberTool手册。默认的方法为PM3。
Amber手册使用QM/MM模拟的sander输入文件例子如下(括号中的只是注释,实际应用时要去掉):
&cntrl
imin=0, nstlim=10000, (perform MD for 10,000 steps)
dt=0.002, (2 fs time step)
ntt=1, tempi=0.1, temp0=300.0 (Berendsen temperature control)
ntb=1, (Constant volume periodic boundaries)
ntf=2, ntc=2, (Shake hydrogen atoms)
cut=8.0, (8 angstrom classical non-bond cut off)
ifqnt=1 (Switch on QM/MM coupled potential)
/
&qmmm
qmmask=":753" (Residue 753 should be treated using QM)
qmcharge=-2, (Charge on QM region is -2)
qm_theory="PM3", (Use the PM3 semi-empirical Hamiltonian)
qmcut=8.0 (Use 8 angstrom cut off for QM region)
/
在&cntrl中设置ifqnt=1表示使用QM/MM模拟,然后添加&qmmm段,设置QM的各种参数。
qmmask 是设置使用QM的原子,冒号后面表示残基序号。还有其它的表示方法,语法请参考Amber手册ambmask部分。注意如果需要从一个分子中选取部分原子的话,QM原子和MM原子之间最好是非极性键,如C-C键。不可以把相连的C-H原子分别放在两个区。
qmcharge 是QM部分所带的电荷。
qm_theory 是QM计算使用的方法,默认值是PM3,如上所述。
qmcut 是QM原子受MM原子影响的范围,注意这个值是对于QM原子整体而言的,如果一个MM原子与任何一个QM原子的距离小于qmcut,所有的QM原子都会受到它影响。对于GB隐式水体系,设15~20埃,对于周期性显式水体系,一般8~9埃就可了。
目前只有sander支持QM/MM,PMEMD还不支持,所以CUDA加速是没法用的。QM/MM可以使用MPI并行加速,但由于并不是所有代码都支持并行化,手册上说超过8个CPU加速效果就不大了。
动力学轨迹也可以使用QM/MM处理。以下是我用MMPBSA.py计算自由能的一个输入文件。
calculate dG with QM/MM
&general
verbose=2,
/
&gb
ifqnt=1,
qm_residues=1,
qm_theory="PM3",
/
与普通纯MM的计算相比,输入文件在&gb段多了ifqnt、qm_residue和qm_theory,要注意的是qm_residues的表示方法与sander输入文件中不同,在这里不能使用Mask,而是直接写上残基序号,如果有多个残基,要用分号分开。
目前Amber中的QM/MM不支持PB模型,所以MMPBSA.py中的输入只能有gb段,不能有pb段,也就是只能算MM/GBSA,不能算MM/PBSA。
一般来说,模拟时和自由能计算的QM部分设置要一致,否则可能结果会很不合理。