参考1:GROMACS非标准残基教程1:修改力场与增加残基
参考2:GROMACS非标准残基教程2:芋螺毒素小肽实例
参考3使用AmberTools+ACPYPE+Gaussian创建小分子GAFF力场的拓扑文件
前言
先看上面的参考资料,下面的介绍仅为参考资料的补充。
pdb2gmx在生成拓扑结构时按照以下顺序:r2b->hdb->rtp->tdb
aminoacids.c.tdb和aminoacids.n.tdb是对端基的处理,在amber力场中均为空。(大概因此amber力场无-ter)
下面以amber99sb-ildn力场为例介绍端基残基的生成:
实现自定义氨基酸残基要处理的文件主要有4个:
- top/residuetypes.dat
- top/amber99sb-ildn_m.ff/aminoacids.r2b
- top/amber99sb-ildn_m.ff/xxx.hdb
- top/amber99sb-ildn_m.ff/xxx.rtp
xxx为自定义残基的名字,为了不污染原有的aminoacids.hdb和aminoacids.rtp而将其独立出来。
步骤
生成top文件
- 片段结构的获取:若为端基残基,则用另一中性氨基酸配成酰胺键后用H将外加氨基酸的C端加氢(或N端减氢),实现中性化封端。若为中间氨基酸,则两端用其它氨基酸分别配成酰胺键后用H将外加氨基酸C端加氢(或N端减氢),实现中性化封端。
- 生成mol2文件,现发现VMD生成的mol2文件不能用,gaussian view生成的可以。
- 利用acpype生成含有自定义残基的片段结构的拓扑文件,生成的同时确定好带电情况,因为两端均做中性化,所以带电量为自定义残基带电量。检查生成的gro文件结构合理性。acpype要用sf版,sf版中二面角默认类型为9或4,可通过-z改变;github版中为3或1。(见参考3)
xxx.rtp文件的生成
- 拓扑文件中只保留下列部分的内容后另存为rtp格式: [ atoms ], [ bonds ], [ angles ], [ dihedrals ] ; propers, [ dihedrals ] ; impropers。
- 调整电荷。如果采用AM1-BCC电荷, 简单的处理方法是将相邻残基的净电荷加到相应的连接原子上。RESP电荷看参考资料。
- acpype生成的拓扑文件的原子类型均为小写,将其改为大写,其中C3改写为CT,HN改写为H。
- 效仿自带库中的氨基酸修改原子名称,可参考氨基酸在PDB文件中的原子命名规则
- rtp文件主要内容如下,其中XXX为自定义残基名,处理方式见参考资料,文件内容样式可参考力场自带的aminoacids.rtp但内容比其要多。
[ bondedtypes ]
;
1 1 9 4 1 3 1 0
[ XXX ]
[ atoms ]
...
[ bonds ]
...
[ angles ]
...
[ dihedrals ] ; propers
...
[ impropers ]
...
xxx.hdb文件的生成
参照参考资料和力场自带的aminoacids.hdb的内容自行编写,原子名称一定要与前面写的xxx.rtp文件一致。注意:如果一个原子上要加多个H时会按照xxx.hdb里的H原子名+序号的顺序生成,比如要加3个名为“HA”的氢原子,则会在位点生成名为“HA1”“HA2”“HA3”的3个H原子,如果这3个原子名称在xxx.rtp文件中没有定义则会报错,所以一定要在xxx.rtp中做好相应的定义。
生成文件的放置位置
将生成的xxx.rtp和xxx.hdb添加到自定义力场top/amber99sb-ildn_m.ff/中,在top/residuetypes.dat中添加自定义残基的名称。
检查
找一个包含自定义残基的pdb文件并将其中的自定义残基名与xxx.rtp调成一致。
用 gmx pdb2gmx -f xxx.pdb -ignh
检查能否正常运行。
Q&A
- 之前试过用gaussian view画出来的pdb结构跑不通(会包其他残基的错误)但从网上下载的pdb可以跑通,还不清楚原因。
- Warning:”Residue 1 named MET of a molecule in the input file was mapped to an entry in the topology database, but the atom H used in an interaction of type angle in that entry is not found in the input file. Perhaps your atom and/or residue naming needs to be fixed.”是个废话警告,参见:链接1或链接2。此情况出现,可能因为有多个同种H虽在[atom]里做了区分但在后面的[bond][angle]等里未区分,将其区别表示后即可解决,不解决也可能得到正确结果,因为参数一样。
- WARNING: “Duplicate line found in or between hackblock and rtp entries.” 说明rtp有问题,比如没有设定键长和力常数。参考链接
附录
自己写过的几个自定义残基:
中性的C端LEU:clec.rtp
中性的C端LEU:clec.hdb
中性的N端VAL:nvan.rtp
中性的N端VAL:nvan.hdb
中性的C端LYN:clyn.rtp
中性的C端LYN:clyn.hdb
中性的N端PHE:nphn.rtp
中性的N端PHE:nphn.hdb
手机版“神探玺洛克”请扫码