|
|
没有给log信息,也没有给grompp的warnning信息。个人经验觉得这是grompp生成MD的tpr那一步,输入的PDB/gro里的小分子顺序和itp(力场)文件里的对应不上。我这里有一个简单的sort PDB原子顺序的脚本:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import sys
- # Usage: python script.py LIG_GMX.itp LIG_old.pdb LIG_new.pdb
- COM = [line for line in open(sys.argv[2], 'r') if line.split()[0] in ['ATOM', 'HETATM']]
- RES = COM[0].split()[3]
- ITP = [[x for x in line.split()] for line in open(sys.argv[1], 'r') if RES in line and len(line.split()) > 8]
- OUT = open(sys.argv[3], 'w')
-
- ITP_ATM = [x[4] for x in ITP]
- COM_ATM = [x.split()[2] for x in COM]
-
- if len(ITP_ATM) != len(COM_ATM):
- print('Number of atoms not match!')
- exit(1)
- NEW = [COM[COM_ATM.index(ITP_ATM[x])] for x in range(0, len(ITP_ATM))]
- OUT.write(''.join([x for x in NEW]))
复制代码
lig_old.pdb 可以这样获得:
- gmx editconf -f com_solv_ions.gro -o com_solv_ions.pdb
- grep "$LIG_residue_name" com_solv_ions.pdb > lig_old.pdb
复制代码
然后用lig_new.pdb里的内容去替换com_solv_ions.pdb里的对应内容。
最后重新跑grompp:
- gmx grompp -f md.mdp -c com_solv_ions.pdb -r com_solv_ions.pdb -n index.ndx -p topol.top -o md.tpr
复制代码
如果grompp那一步没有任何warnnings请忽略我的回答 |
|