[gmx-users] correct processing of #define statements by grompp in gromacs 4.0.2 requires exactly one space after #define

Daniel Seeliger dseelig at gwdg.de
Wed Nov 26 11:06:40 CET 2008


Hi, 
I also encoutered a strange behaviour of gmxcpp when using B-states.

When I set up up a free energy simulation (gromacs 4.0.2) with amber03 
(ffamber from Sorin & Pande), I define a dihedral angle, e.g. like

[ dihedrals ]
.
511  515  517  513     3     aromatic_prop_5a    aromatic_prop_5
.
If I process this topology with grompp it claims that there is no B-state 
defined.

In the original ffamber03bon.itp there were comments in the define lines, e.g.

#define  aromatic_prop_5      41.84000     0.00000   -41.84000     0.00000     
0.00000     0.00000 ;  X-CR-NB-X (HIX)

These were already removed since this causes grompp to cut the line after the 
first ";" and, hence it ignores the B-values.

Now the strange thing:
This works for all defined dihedrals except for those that end with an "a".
So:
1    2     3     4      aromatic_prop_4      aromatic_prop_5        
works fine, but
1    2     3     4      aromatic_prop_5a      aromatic_prop_5
doesn't work. 
 
If I look into the processed topology, grompp has converted the first define, 
but not the second one.
If I exchange the two dihedrals, like
1    2     3     4      aromatic_prop_5      aromatic_prop_5a
it works again.

I get the error only when these dihedrals are in the A-state:
aromatic_prop_4a
aromatic_prop_5a
aromatic_prop_6a

If I preprocess my topology with cpp -traditional all defines are nicely 
converted, so I guess there must go sth. wrong in gmxcpp.
I also tried the fixed version from Berk as pointed out before, but this 
didn't do the job.

Thanks,
Daniel

On Tuesday 25 November 2008 23:34:24 Berk Hess wrote:
> Hi,
>
> That  is an annoying bug.
> I fixed it for 4.0.3.
> If you want it fixed now, the diff is below.
>
> Berk
>
>
> RCS file: /home/gmx/cvs/gmx/src/kernel/gmxcpp.c,v
> retrieving revision 1.9
> diff -r1.9 gmxcpp.c
> 121,122c121,122
> <   sscanf(define,"%s",name);
> <   ptr = define + strlen(name);
> ---
>
> >   sscanf(define,"%s%n",name,&i);
> >   ptr = define + i;
> >
> >
> > Date: Tue, 25 Nov 2008 16:32:57 -0500
> > From: chris.neale at utoronto.ca
> > To: gmx-users at gromacs.org
> > Subject: [gmx-users] correct processing of #define statements by grompp
> > in gromacs 4.0.2 requires exactly one space after #define
> >
> > When two spaces are included the #define KEYWORD is incompletely removed
> > from the file.
> > In case my conclusion about the exact nature of the error is incorrect,
> > here is more information.
> >
> > I have a ffcharmbon.itp file that contains:
> >
> > [ dihedraltypes ]
> > #define  improper_NC2_X_X_C_  180.00000  83.68000  2
> >
> > And an .itp file that contains:
> >
> > [ dihedrals ]
> >     1     2     5     8     1             improper_NC2_X_X_C_
> >
> > where grompp -pp returns
> >
> > [ dihedrals ]
> >     1     2     5     8     1             _  180.00000  83.68000  2
> >
> > and the floating '_' character causes the error message:
> >
> > ERROR 1 [file my.itp, line 77]:
> >   No default Proper Dih. types
> >
> > I tried to fix this by removing the trailing underscore character from
> > my defined string in both files,
> > but now I get a trailing 'C'
> >
> > [ dihedrals ]
> >     1     2     5     8     1             C  180.00000  83.68000  2
> >
> > So it appears that the define statement is simply not being entirely
> > removed.
> >
> > When I then replaced
> > #define  improper_NC2_X_X_C_  180.00000  83.68000  2
> > by
> > #define improper_NC2_X_X_C_  180.00000  83.68000  2
> > (only one space between '#define' and 'improper...')
> > it works correctly.
> >
> > Note that cpp handled this original define statement properly in gromacs
> > 3.3.1.
> >
> > Chris.
> >
> >
> >
> >
> >
> > _______________________________________________
> > gmx-users mailing list    gmx-users at gromacs.org
> > http://www.gromacs.org/mailman/listinfo/gmx-users
> > Please search the archive at http://www.gromacs.org/search before
> > posting! Please don't post (un)subscribe requests to the list. Use the
> > www interface or send it to gmx-users-request at gromacs.org.
> > Can't post? Read http://www.gromacs.org/mailing_lists/users.php
>
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



-- 
Dr. Daniel Seeliger
Computational Biomolecular Dynamics Group
Max-Planck-Institute for Biophysical Chemistry	
Am Fassberg 11
37077 Goettingen, Germany
Tel: +49 551 201 2310
Fax: +49 551 201 2302
email: dseelig at gwdg.de
www.mpibpc.mpg.de/groups/de_groot/dseelig/index.html



More information about the gromacs.org_gmx-users mailing list