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
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.
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
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.
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!
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.
See INSTALL.
(Specifically, it has been verified with 4.5.3.)
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 toXtOpenApplication' mgmx.o(.text+0x7c): undefined reference to
XtRealizeWidget' /usr/local/gromacs/i686-pc-linux-gnu/lib/libgmx.a(mgmx.o): In functionmk_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