Problem with PreProcessorError: EOF: Unterminated #if(def)

116 views
Skip to first unread message

Pedro

unread,
Apr 18, 2021, 1:41:32 PM4/18/21
to gmx_MMPBSA
Hi Mario,

I’ve been able to successfully run gmx_MMPBSA on three of my systems, which all have protein-ligand complexes where the protein is a monomer. However, I have another system in which the protein is a dimer and the topology (.top) file calls two position restraint files (.itp), one for each chain (A and B) but I get the following error.

$ gmx_MMPBSA -O -i mmpbsa.in -cs md_9_1.tpr -ci index.ndx -cg 1 13 -ct md_10ns1.xtc -cp topol.top

[INFO ] Starting
[WARNING] protein_forcefield and ligand_forcefield variables are deprecate since version 1.4.1 and will be remove in the next version. Please, use forcefield instead.
[INFO ] Checking external programs...
[INFO ] cpptraj found! Using /home/xxxx/amber20/bin/cpptraj
[INFO ] tleap found! Using /home/xxxx/amber20/bin/tleap
[INFO ] parmchk2 found! Using /home/xxxx/amber20/bin/parmchk2
[INFO ] sander found! Using /home/xxxx/amber20/bin/sander
[INFO ] Using GROMACS version > 5.x.x!
[INFO ] gmx found! Using /usr/local/gromacs/bin/gmx
[INFO ] Checking external programs...Done.

[INFO ] Building AMBER Topologies from GROMACS files...
[INFO ] Checking if supported force fields exists in Amber data...
[INFO ] Get PDB files from GROMACS structures files...
[INFO ] Making gmx_MMPBSA index for complex...
[INFO ] Running command: echo name 1 GMXMMPBSA_REC\n name 13 GMXMMPBSA_LIG\n 1 | 13\n q\n | /usr/local/gromacs/bin/gmx make_ndx -n index.ndx -o _GMXMMPBSA_COM_index.ndx
[INFO ] Normal Complex: Saving group 1_13 in _GMXMMPBSA_COM_index.ndx file as _GMXMMPBSA_COM.pdb
[INFO ] Running command: echo GMXMMPBSA_REC_GMXMMPBSA_LIG | /usr/local/gromacs/bin/gmx editconf -f md_9_1.tpr -o _GMXMMPBSA_COM.pdb -n _GMXMMPBSA_COM_index.ndx
[INFO ] No receptor structure file was defined. Using ST approach...
[INFO ] Using receptor structure from complex to generate AMBER topology
[INFO ] Normal Complex: Saving group 1 in _GMXMMPBSA_COM_index.ndx file as _GMXMMPBSA_REC.pdb
[INFO ] Running command: echo 1 | /usr/local/gromacs/bin/gmx editconf -f md_9_1.tpr -o _GMXMMPBSA_REC.pdb -n _GMXMMPBSA_COM_index.ndx
[INFO ] No ligand structure file was defined. Using ST approach...
[INFO ] Using ligand structure from complex to generate AMBER topology
[INFO ] Normal ligand: Saving group 13 in _GMXMMPBSA_COM_index.ndx file as _GMXMMPBSA_LIG.pdb
[INFO ] Running command: echo 13 | /usr/local/gromacs/bin/gmx editconf -f md_9_1.tpr -o _GMXMMPBSA_LIG.pdb -n _GMXMMPBSA_COM_index.ndx
[INFO ] Building Normal Complex Amber Topology...
File "/home/xxxx/amber20/miniconda/bin/gmx_MMPBSA", line 8, in <module>
sys.exit(gmxmmpbsa())
File "/home/xxxx/amber20/miniconda/lib/python3.8/site-packages/GMXMMPBSA/app.py", line 97, in gmxmmpbsa
app.make_prmtops()
File "/home/xxxx/amber20/miniconda/lib/python3.8/site-packages/GMXMMPBSA/main.py", line 579, in make_prmtops
self.FILES.mutant_receptor_prmtop, self.FILES.mutant_ligand_prmtop) = maketop.buildTopology()
File "/home/xxxx/amber20/miniconda/lib/python3.8/site-packages/GMXMMPBSA/make_top.py", line 112, in buildTopology
tops = self.gmxtop2prmtop()
File "/home/xxxx/amber20/miniconda/lib/python3.8/site-packages/GMXMMPBSA/make_top.py", line 313, in gmxtop2prmtop
com_top = self.cleantop(self.FILES.complex_top, self.indexes[0] + self.indexes[1])
File "/home/xxxx/amber20/miniconda/lib/python3.8/site-packages/GMXMMPBSA/make_top.py", line 591, in cleantop
rtemp_top = parmed.gromacs.GromacsTopologyFile(ttp_file.as_posix())
File "/home/xxxx/amber20/lib/python3.8/site-packages/parmed/gromacs/gromacstop.py", line 251, in __init__
self.read(fname, defines, parametrize)
File "/home/xxxx/amber20/lib/python3.8/site-packages/parmed/gromacs/gromacstop.py", line 289, in read
for line in f:
File "/home/xxxx/amber20/lib/python3.8/site-packages/parmed/gromacs/_gromacsfile.py", line 44, in __iter__
for line in self._handle:
File "/home/xxxx/amber20/lib/python3.8/site-packages/parmed/gromacs/_cpp.py", line 178, in __iter__
for line in self._includefile:
File "/home/xxxx/amber20/lib/python3.8/site-packages/parmed/gromacs/_cpp.py", line 193, in __iter__
raise PreProcessorError('EOF: Unterminated #if(def)')
PreProcessorError: EOF: Unterminated #if(def)
Exiting. All files have been retained.


Does this have anything to do with my input files and the fact that the protein is a dimer?

Your help is greatly appreciated

Pedro

Mario Sergio Valdes

unread,
Apr 18, 2021, 2:19:14 PM4/18/21
to gmx_MMPBSA
Hi Pedro.
This error is related to the topology. As the error describes one of the definitions #if (def) is incomplete

This is an example of how it should be defined:

#ifdef POSRES_WATER
; Position restraint for each water oxygen
[position_restraints]
; i funct fcx fcy fcz
    1 1 1000 1000 1000
#endif
Probably the #endif is missing from some of the definitions. Check if all the definitions you have are correct. 
In any case, gmx_MMPBSA does not use any of these definitions in its calculations, however, the topology must be consistent for parmed to understand it correctly.

Best!
Mario S.

Pedro

unread,
Apr 18, 2021, 3:03:00 PM4/18/21
to gmx_MMPBSA
Hi Mario,
Thank you so much! The problem was actually in one of the files describing my water model - I added the #endif and the problem was solved.
Best!
Pedro

Mario Sergio Valdes

unread,
Apr 18, 2021, 3:05:10 PM4/18/21
to gmx_MMPBSA
Excellent!
Reply all
Reply to author
Forward
0 new messages