本帖最后由 牧生 于 2021-2-11 14:31 编辑
做表面活性剂,现在也想对比一下全原子和粗粒化。
折腾了很久两种方法,都不能成功地使用脚本对简单的表面活性剂进行粗粒化。
第一种方法:
是martinize.py脚本,对十二烷基三甲基溴化铵的阳离子部分进行粗粒化,使用M$画出pdb结构
在centos下对martinize.py添加执行权限后,运行python martinize.py -h,出现了很多帮助信息
运行命令以及输出
[root@jing jing]# ./martinize.py -f D.pdb -o D.top -x CG.pdb -name DTAB -ff martini22
INFO MARTINIZE, script version 2.6_3
INFO If you use this script please cite:
INFO de Jong et al., J. Chem. Theory Comput., 2013, DOI:10.1021/ct300646g
INFO Chain termini will be charged
INFO Residues at chain brakes will not be charged
INFO The martini22 forcefield will be used.
INFO Local elastic bonds will be used for extended regions.
INFO Read input structure from file.
INFO Input structure is a PDB file.
INFO Found 1 chains:
INFO 1: (), 50 atoms in 1 residues.
INFO Removing HETATM chain consisting of 1 residues.
INFO Total size of the system: 0 residues.
WARNING No secondary structure or determination method speficied. Protein chains will be set to 'COIL'.
INFO Writing coarse grained structure.
INFO (Average) Secondary structure has been determined (see head of .itp-file).
INFO Written 0 ITP file
INFO Output contains 0 molecules:
INFO Written topology files
INFO Note: Cysteine bonds are 0.24 nm constraints, instead of the published 0.39nm/5000kJ/mol.
There you are. One MARTINI. Shaken, not stirred.
He was white and shaken, like a dry martini.
--P. G. Wodehouse
结果只得到空的CG.pdb和空的top文件。。
第二种方法,使用auto_martini:
使用M$画出DTAB的pdb结构,再使用openbable转为smi字符[N+](C)(C)(C)CCCCCCCCCCCC,使用auto_martini进行粗粒化
首先安装Anaconda3,安装后以管理员身份打开命令行窗口,输入: conda create -c rdkit -n my-rdkit-env rdkitpython=2.7 conda activate my-rdkit-env pip install numpy pip install beautifulsoup4 pip install requests pip install lxml 打开程序包中的“auto_martini”文件,注释掉“import subprocess32”这一行 运行python auto_martini -h是没有问题的,出现了很多帮助信息,证明是可以运行了 在conda activate my-rdkit-env环境下,运行命令 python auto_martini --smi "[N+](C)(C)(C)CCCCCCCCCCCC" --mol DTAB --aa DTAB1.gro --cg DTAB2.gro-v > DTAB.itp 结果出错
INFO:__main__:; Max. number of attempts: 765 INFO:__main__:; Atom partitioning: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 1, 6: 1, 7: 2, 8: 2, 9: 2, 10: 3, 11: 3, 12: 3, 13: 4, 14: 4, 15: 4} INFO:__main__:; Bead types: ['Q0', 'C5', 'C3', 'C3', 'C3']
WARNING:__main__:ALOGPS can't predict fragment: [H]C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])[N+](C([H])([H])[H])(C([H])([H])[H])C([H])([H])[H]
如果让程序自动去分配,使用如下命令
python auto_martini --smi [N+]"(C)""(C)""(C)"CCCCCCCCCCCC--mol DTAB --aa DTAB1.gro --cg DTAB2.gro-v > DTAB.itp --fpred #(此处多加了--fpred 选项) 虽然会转化成功,得到tip和gro文件,但是显然是不对的。
INFO:__main__:; Atom partitioning: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 1, 6: 1, 7: 2, 8: 2, 9: 2, 10: 3, 11: 3, 12: 3, 13: 4, 14: 4, 15: 4}
INFO:__main__:; Bead types: ['Q0', 'C5', 'C3', 'C3', 'C3'] (应该为['Q0', 'C1', 'C1', 'C1' ,而且得到文件中的各种参数,角度,显然也都是不对的)
; Warning: bead ID MOL predicted from Wildman-Crippen. Fragment [H]C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])[N+](C([H])([H])[H])(C([H])([H])[H])C([H])([H])[H]
INFO:__main__:; Mapping additivity assumption ratio: 0.1938 (whole vs sum: -6.3327 vs. -5.1052)
得到的文件如下
itp文件
DTAB.itp
(1.04 KB, 下载次数 Times of downloads: 11)
全原子的DTAB,这个是没问题的
DTAB1.gro
(789 Bytes, 下载次数 Times of downloads: 6)
DTABCG,是有问题的
DTAB2.gro
(295 Bytes, 下载次数 Times of downloads: 3)
一直在失败,请教一下,该如何简单方便的将小分子转化粗粒化的参数
或者,帮我提供一下正确的十二烷基三甲基溴化铵,十二烷基硫酸钠的正确的CG的参数。
|