[gmx-users] gmx gangle in the development version of gromacs

Eric Smoll ericsmoll at gmail.com
Wed Mar 5 00:30:56 CET 2014

Hello gromacs users,

I want to analyze a liquid interface by producing a series of histograms
that profile different slices of my simulation along the cartesian z axis.
In each histogram, I want to bin the angles between the z-axis and the
normal vector defined by a plane of three atoms in a flat molecular ring. I
have many of these rings in my simulation.

I downloaded the development version of gromacs and read the documentation
associated with g_select and gmx gangle.

As I understand it, my index file should select the atoms that define each
normal vector. To properly profile a slice, the selection should be
dynamic. Atoms *defining the plane* that drift into a slice during a
simulation must be selected. Atoms *defining the plane* that drift out of a
slice must be deselected. Also, it would be nice to make this spatial
dynamic selection based on the center of geometry of the *atoms that define
the plane* or some other sensible molecular substructure.

My index file looks something like this...

[ a_plane ]
1 2 3
10 11 12

...where each row lists that ring atoms that define the plane in exactly
the same way.

Assuming I define a given slice to be between 0 and 1 on the z axis, I
believe the command that will produce what I want is:

gmx gangle -f file.trr -s file.tpr -n  file.ndx -g1 plane -group1 'z 0 to 1
and group a_plane' -g2 z -oh file.xvg -binw 1.0

A few questions/comments:

1.) I am unsure how I should set the '-selrpos' option. The gangle program
requires all three atoms to compute the angle so I suspect that the prefix
'whole_' is necessary. What is the difference between the "res_" and "mol_"
infix?  I was hoping the index file would restrict the computation of the
reference position so that 'whole_res_cog' would work but it seems to
compute the cog for the whole residue, not that atoms that define the
plane.  For clarity, if the cog of the three atoms that define the plane
lie within the slice, I want all three atoms that define the plane to be

2.) Is it possible to use a custom set of atoms for computation of the cog
that differs from the atoms I want selected if this cog is within the
slice?  For example, consider benzene. The program gangle requires three
benzene atoms to define a plane but the cog of these atoms is not the cog
of the ring.  I suspect this is not possible with the gromacs tools.

2.) It seems the flag '-oall' outputs the angles for all the normal vectors
defined by the atoms in my index file.  Is this want most users will want
from this tool?  If I have selection like 'z 0 to 1 and group a_plane', it
makes more sense for '-oall' to print all the selected angles, correct?


More information about the gromacs.org_gmx-users mailing list