g_count

g_count and g_flux are simple Gromacs tools that are primarily useful to characterize movement of water inside a cylindrical region. This can be the pore of an ion channel or a carbon nanotube. g_count returns statistics about how many atoms of a certain type (for instance, water oxygens) occupied the region of interest. g_flux calculates the flux through a cylindrical region. g_zcoord is a dumb piece of code that just prints z-coordinates of atoms in a cylindrical region; it should be easy enough to add additional functionality. g_flux is more sophisticated than g_count and gives more detailed information but you are encouraged to check that the reported results agree with what you can see in your system. For instance, get the indices of translocating particles and then track them in a trajectory viewer such as VMD. Detailed documentation can be found in the help functions for each program (run it with -h). Background information (slighly outdated for the current g_count-gmx4.5 release) can be found in the appendix (pdf) of my thesis. When you use g_flux/g_count please cite * O. Beckstein and M. S. P. Sansom, The influence of geometry, surface character and flexibility on the permeation of ions and water through biological pores, Phys. Biol. 1 (2004), 42–52. doi:10.1088/1478-3967/1/1/005

OTHER License

Stars
7

==============
README g_count


UNSUPPORTED AND DEPRECATED

Development and support for this tool has been discontinued. If you have questions/bugs please put them in the issue tracker https://github.com/orbeckst/g_count/issues to keep a record.

If you are fixing bugs please send PULL REQUESTS.

For more modern/universal approaches to accomplishing similar
analysis look at https://www.mdanalysis.org and there are now
also some Gromacs tools that do similar things.

Analysis of permeation events: g_count and g_flux

Copyright (c) 2001-2011 Oliver Beckstein [email protected] Published under the GNU Public Licence, version 2. See LICENCE.

Contributors: Marc Baaden (xpm output in g_zcoord)

The latest sources can be found in the git repository at

https://github.com/orbeckst/g_count

Please report bugs and feature requests through the Issue tracker https://github.com/orbeckst/g_count/issues

Introduction

g_count simply counts the molecules within a cylinder aligned with a coordinate axis.

g_flux calculates fluxes by analyzing the trajectories of molecules passing through a cylinder.

g_zcoord simply writes out the z-coordinate of atoms in a cylindrical region or makes a xpm matrix for quick visualization. You may be able to do pretty much the same with g_traj and some post-processing.

Citing

When you use g_flux or g_count in published work please cite

O. Beckstein and M. S. P. Sansom, The influence of geometry, surface character and flexibility on the permeation of ions and water through biological pores, Phys. Biol. 1 (2004), 42--52. doi:10.1088/1478-3967/1/1/005

Thank you!

Required software

You must have a compiled version of Gromacs 4.5.3 (or probably later) with all libraries and include files, and the appropriate C-compiler. If you compiled Gromacs with X11 support see the end of this README if you have problems.

Note that this software now requires at least Gromacs 4.5.3 to compile. This version is NOT backwards compatible (although 4.5.x might work). Use an older tar ball for previous versions of Gromacs.

Installation

See INSTALL.


THIS VERSION OF g_count ONLY COMPILES AGAINST GROMACS 4.5.x

(Specifically, it has been verified with 4.5.3.)

Problems, Questions

  • A water molecule is reported as crossing but in VMD I can see that this is not the case. What is going on?

    There appears to be a subtle problem when linking gflux gmx4.4 against Gromacs 4.0.4. It works for 4.0.2. Sorry, this is all that's known at the moment.

  • Gromacs 4.x: Versions of g_flux and g_count for 3.x were able to handle molecules; the current code base can only handle atoms. Use water oxygens when analysing water.

  • Do I need the [Gromacs] CVS version somewhere? Would it be better to reinstall gromacs 3.1.4 too?

    No, you don't need the sources to compile, only libraries and include files. Just make sure that you point GMX_LIB_DIR to the directory where the libmd.a (or libmd.so) and libgmx.a (or .so) files are. The GMX_INCLUDE_DIR must point to the directory with the *.h files.

  • Missing X libraries, indicated by errors similar to the following:

    gcc -o g_count g_count.o utilgmx.o xmgr.o count.o -lm -L/usr/local/gromacs/i686-pc-linux-gnu/lib -lmd -lgmx /usr/local/gromacs/i686-pc-linux-gnu/lib/libgmx.a(mgmx.o): In function gmx_gui': mgmx.o(.text+0x29): undefined reference to applicationShellWidgetClass' mgmx.o(.text+0x4c): undefined reference to XtOpenApplication' mgmx.o(.text+0x7c): undefined reference to XtRealizeWidget' /usr/local/gromacs/i686-pc-linux-gnu/lib/libgmx.a(mgmx.o): In function mk_gui': mgmx.o(.text+0x1d5): undefined reference to _XmStrings' mgmx.o(.text+0x1f6): undefined reference to `XmCreateFileSelectionDialog' [...]

    However, the errors you get look to me as if your gromacs libraries are also linked against X-Windows/Motif. I tend to switch it off on compilation, something --without-x (X is more hassle than help and ngmx doesn't get used anymore since vmd...).

    You might have to add the include path for X includes to CPPFLAGS, eg (no idea if it works)

    CPPFLAGS += -I/usr/X11R6/include

    and X libs to LDFLAGS

    LDFLAGS += -L/usr/X11R6/lib -lX11 -lXm -lXaw -lXpm

  • If compilation fails and error messages mention 'fatal.h' then you are compiling against the wrong version of Gromacs. Please see the top of this file for the compatible versions.

  • Compiling/linking fails with messages such as

    libgmx.a(vmddlopen.o): In function vmddlopen': vmddlopen.c:(.text+0x43): undefined reference to dlopen' ... collect2: ld returned 1 exit status

    This indicates that you also have to link against the dynamic loader library, libdl. In the Makefile, add `-ldl' to LDFLAGS so that it looks like

    LDFLAGS += -lm -L$(GMX_LIB_DIR) -lmd -lgmx -ldl

  • Compiling/linking fails with messages such as

    libgmx.a(pthreads.o): In function tMPI_Thread_key_delete': pthreads.c:(.text+0x64d): undefined reference to pthread_key_delete' ... collect2: ld returned 1 exit status

    This indicates that you also have to link against the parallel threads library, libpthread. In the Makefile, add `-lpthread' to LDFLAGS so that it looks like

    LDFLAGS += -lm -L$(GMX_LIB_DIR) -lmd -lgmx -lpthread