生成小分子力场TOP
自动化工具是非常受欢迎的。对于每一个力场,都有一些方法或软件程序可以提供与各种力场兼容的参数。并不是所有的结果都一样准确。有几个例子,请参考下表:
力场 | 自动化工具 | 备注 |
---|---|---|
AMBER | Antechamber | 借助GAFF参数化分子 |
AMBER | acpype | 连接Antechamber的Python接口,用于编写GROMACS拓扑 |
CHARMM | CGenFF | 官方的CHARMM通用力场服务器(网站化服务) |
GROMOS87/GROMOS96 | PRODRG 2.5 | 用于拓扑生成的自动化服务器(网站化服务) |
GROMOS87/GROMOS96 | ATB | 用于生成适用于GROMOS96 54A7的拓扑的新服务器(网站化服务) |
OPLS-AA | Topolbuild | 将Tripos .mol2文件转换为拓扑 |
OPLS-AA | TopolGen | 一个Perl脚本,将一个全原子的.pdb文件转换为一个拓扑 |
OPLS-AA | LigParGen | 来自Jorgensen课题组的服务器,用于生成OPLS拓扑 |
如果化学键不是按升序排列的,那么在构造具有匹配坐标的正确拓扑时会出现问题。要解决这个问题,下载 sort_mol2_bonds.pl 脚本并运行:
perl sort_mol2_bonds.pl input.mol2 input_fix.mol2
自动加氢脚本
babel -ipdb ligand.pdb -opdb ligand_h.pdb -h ## 加H
sed -i 's/ATOM /HETATM/' ligand_h.pdb
sed -i '/HETATM/!d' ligand_h.pdb
ATB网站
生成基于Amber力场适配gromacs格式TOP文件,
对于使用GaussView 计算resp电荷可以参考: https://blog.csdn.net/weixin_42486623/article/details/129055384
下面我们使用上面是生成的mol2文件来生成基于Amber的力场,适配gromacs
- 检查缺失的参数
parmchk2 -i xx.mol2 -f mol2 -o xx.frcmod
2. 构建tleap.in文件
tleap.in
如下:
source leaprc.gaff
MOL=loadmol2 methane.mol2
loadamberparams methane.frcmod
saveamberparm MOL MOL.prmtop MOL.rst7
savepdb MOL MOL_tleap.pdb
quit
执行tleap.in
文件
tleap -f ./tleap.in
生成两个文件
3. 使用acpype 转化为gromacs的Top文件
acpype -p MOL.prmtop -x MOL.rst7
使用mktop_2.2.1.pl生成OPLS力场
- 下载mktop_2.2.1.pl文件,http://www.aribeiro.net.br/mktop/
- 用vi编辑器打开mktop_2.2.1.pl,修改gromacs的力场目录为自己linux系统安装gromacs的路径,即修改如下红色框里面的内容。(或者在win系统下面先修改好之后再上传上去)
- 创建好自己分子的pdb文件, 可以使用GaussView 6.0软件画分子结构图
- 由于此方法不能生成电荷,所以需要自己准备(可使用高斯等量化软件自己优化生成)按照pdb文件里面的原子顺序准备一个电荷文件(取任意名,比如:charge.txt)。电荷文件的内容仿照如下甲烷的格式编写: (切记,顺序一定要和pdb文件里面的原子顺序一致) 具体方法可以参考:https://blog.csdn.net/weixin_42486623/article/details/129055384
再次核对一下是不是和甲烷的pdb原子对应:
- 把pdb文件转成linux格式的,运行下面代码:https://blog.csdn.net/weixin_42486623/article/details/129055384
dos2unix **.pdb
- 执行命令:
perl mktop_2.2.1.pl -i methane.pdb -c charge.txt -o top.top -ff opls -conect yes
- 若已经有top文件,仅仅是需要生成这个单分子的itp,那么可以修改生成的top.top文件名字为:**.itp,并在已有的top文件里面include即可。但是还需要删除top.top里面的一些内容,需要删除的内容如下图红框所示:
使用LigParGen在线工具生成OPLS力场
地址: http://zarbi.chem.yale.edu/ligpargen/index.html
基于charmm-gui 生成charmm力场
- 登入网站:http://mackerell.umaryland.edu/charmm_ff.shtml#gromacs
- 下载力场文件,注意要适配grimaces版本
- 现在应该有一个 “charmm36-mar2022.ff” 在您的工作目录下的子目录。使用pdb2gmx编写蛋白拓扑:
tar -zxvf charmm36-mar2022.ff.tgz
gmx pdb2gmx -f 3HTB_clean.pdb -o 3HTB_processed.gro
下面是我们下载的力场文件, 选择1
4. 将使用 CGenFF 生成小分子的拓扑,CGenFF 需要一个 xx .mol2
文件作为输入,CHARMM 也是一个全原子力场,这意味着所有的H原子都是明确表示的。晶体结构通常不分配H坐标,所以它们必须内置。通过 Avogadro program 来生成一个.mol2文件并添加H原子。
也可以使用babel加氢和转mol2
babel -ipdb jz4.pdb -omol2 jz4_h.mol2 -h
- 首先需要改变的是分子标题。将 ***** 替换为JZ4分子名称 :
6. 最后,注意 @BOND 部分中奇怪的键序。所有的程序似乎都有其独特的方法来生成这个列表,但并不是所有的程序都是一样的。如果化学键不是按升序排列的,那么在构造具有匹配坐标的正确拓扑时会出现问题。要解决这个问题,下载 sort_mol2_bonds.pl 脚本并运行:
perl sort_mol2_bonds.pl jz4.mol2 jz4_fix.mol2
- 访问 CGenFF 服务器,登录您的账户,点击页面顶部的“Upload molecule”。上传 jz4_fix.mol2 ,随后 CGenFF 服务器将以CHARMM“流(stream)”文件(扩展名.str)的形式快速返回一个拓扑。将其内容从web浏览器中保存到一个名为“jz4.str”的文件中。
- 从 MacKerell 网站下载的 cgenff_charmm2gmx.py 脚本
执行以下转换:
python cgenff_charmm2gmx_py3_nx2.py JZ4 jz4_fix.mol2 jz4_fix.str charmm36-jul2021.ff
请注意转换结束时下面的屏幕输出表示成功:
============ DONE ============
Conversion complete.
The molecule topology has been written to jz4.itp
Additional parameters needed by the molecule are written to jz4.prm, which needs to be included in the system .top
============ DONE ============
生成分子的top、itp和prm文件
这个配体引入了不属于现有的力场的新的键合参数,这些参数将被写入一个名为“jz4. prm”的文件。该文件的格式为GROMACS .itp文件。我们待会就处理这个文件,务必注意它的存在
- 从 cgenff_charmm2gmx.py 获得的 jz4_ini. pdb ,它具有所有必要的H原子,并匹配了JZ4拓扑中的原子名称。使用editconf将这个.pdb文件转换为.gro格式:
gmx editconf -f jz4_ini.pdb -o jz4.gro
-
复制 jz4.gro 的坐标部分,并将其粘贴到 complex.gro 中,蛋白质原子的最后一行下面,box vector的上面, 注意添加原子数量, 这里添加了22个原子
-
在系统拓扑结构中包含JZ4配体的参数是非常容易的。只需在topol.top中插入一行 #include“jz4.itp” 来说明位置约束文件中已完成涵盖。位置约束声明的出现表明了 “Protein” moleculetype 部分的结束。
; Include Position restraint file
#ifdef POSRES
#include "posre.itp"
#endif
; Include ligand topology
#include "jz4.itp"
; Include water topology
#include "./charmm36-mar2019.ff/tip3p.itp"
- 配体引入了新的二面体参数,该参数由 cgenff_charmm2gmx.py 脚本写入“jz4.prm”。在topol.top的顶部,插入 #include 语句来添加以下参数:
; Include forcefield parameters
#include "./charmm36-mar2019.ff/forcefield.itp"
; Include ligand parameters
#include "jz4.prm"
[ moleculetype ]
; Name nrexcl
Protein_chain_A 3
- 最后要做的调整是在[ molecules ]。为了说明 complex.gro 中有一个新分子的事实,我们得把配体的名称加在这里,像这样:
[ molecules ]
; Compound #mols
Protein_chain_A 1
JZ4 1