| VERSION 4.0_rc1 |
g_analyze reads an ascii file and analyzes data sets. A line in the input file may start with a time (see option -time) and any number of y values may follow. Multiple sets can also be read when they are seperated by & (option -n), in this case only one y value is read from each line. All lines starting with # and @ are skipped. All analyses can also be done for the derivative of a set (option -d).
All options, except for -av and -power assume that the points are equidistant in time.
g_analyze always shows the average and standard deviation of each set. For each set it also shows the relative deviation of the third and forth cumulant from those of a Gaussian distribution with the same standard deviation.
Option -ac produces the autocorrelation function(s).
Option -cc plots the resemblance of set i with a cosine of
i/2 periods. The formula is:
2 (int0-T y(t) cos(i pi t) dt)^2 / int0-T y(t) y(t) dt
This is useful for principal components obtained from covariance
analysis, since the principal components of random diffusion are
pure cosines.
Option -msd produces the mean square displacement(s).
Option -dist produces distribution plot(s).
Option -av produces the average over the sets. Error bars can be added with the option -errbar. The errorbars can represent the standard deviation, the error (assuming the points are independent) or the interval containing 90% of the points, by discarding 5% of the points at the top and the bottom.
Option -ee produces error estimates using block averaging.
A set is divided in a number of blocks and averages are calculated for
each block. The error for the total average is calculated from
the variance between averages of the m blocks B_i as follows:
error^2 = Sum (B_i - <B>)^2 / (m*(m-1)).
These errors are plotted as a function of the block size.
Also an analytical block average curve is plotted, assuming
that the autocorrelation is a sum of two exponentials.
The analytical curve for the block average is:
f(t) = sigma sqrt(2/T ( a (tau1 ((exp(-t/tau1) - 1) tau1/t + 1)) +
(1-a) (tau2 ((exp(-t/tau2) - 1) tau2/t + 1)))),
where T is the total time.
a, tau1 and tau2 are obtained by fitting f^2(t) to error^2.
When the actual block average is very close to the analytical curve,
the error is sigma*sqrt(2/T (a tau1 + (1-a) tau2)).
The complete derivation is given in
B. Hess, J. Chem. Phys. 116:209-217, 2002.
Option -filter prints the RMS high-frequency fluctuation of each set and over all sets with respect to a filtered average. The filter is proportional to cos(pi t/len) where t goes from -len/2 to len/2. len is supplied with the option -filter. This filter reduces oscillations with period len/2 and len by a factor of 0.79 and 0.33 respectively.
Option -g fits the data to the function given with option -fitfn.
Option -power fits the data to b t^a, which is accomplished by fitting to a t + b on log-log scale. All points after the first zero or negative value are ignored.
Option -luzar performs a Luzar & Chandler kinetics analysis on output from g_hbond. The input file can be taken directly from g_hbond -ac, and then the same result should be produced.
option | filename | type | description |
---|---|---|---|
-f | graph.xvg | Input | xvgr/xmgr file |
-ac | autocorr.xvg | Output, Opt. | xvgr/xmgr file |
-msd | msd.xvg | Output, Opt. | xvgr/xmgr file |
-cc | coscont.xvg | Output, Opt. | xvgr/xmgr file |
-dist | distr.xvg | Output, Opt. | xvgr/xmgr file |
-av | average.xvg | Output, Opt. | xvgr/xmgr file |
-ee | errest.xvg | Output, Opt. | xvgr/xmgr file |
-g | fitlog.log | Output, Opt. | Log file |
option | type | default | description |
---|---|---|---|
-[no]h | bool | no | Print help info and quit |
-nice | int | 0 | Set the nicelevel |
-[no]w | bool | no | View output xvg, xpm, eps and pdb files |
-[no]xvgr | bool | yes | Add specific codes (legends etc.) in the output xvg files for the xmgrace program |
-[no]time | bool | yes | Expect a time in the input |
-b | real | -1 | First time to read from set |
-e | real | -1 | Last time to read from set |
-n | int | 1 | Read # sets seperated by & |
-[no]d | bool | no | Use the derivative |
-bw | real | 0.1 | Binwidth for the distribution |
-errbar | enum | none | Error bars for -av: none, stddev, error or 90 |
-[no]integrate | bool | no | Integrate data function(s) numerically using trapezium rule |
-aver_start | real | 0 | Start averaging the integral from here |
-[no]xydy | bool | no | Interpret second data set as error in the y values for integrating |
-[no]regression | bool | no | Perform a linear regression analysis on the data |
-[no]luzar | bool | no | Do a Luzar and Chandler analysis on a correlation function and related as produced by g_hbond. When in addition the -xydy flag is given the second and fourth column will be interpreted as errors in c(t) and n(t). |
-temp | real | 298.15 | Temperature for the Luzar hydrogen bonding kinetics analysis |
-fitstart | real | 1 | Time (ps) from which to start fitting the correlation functions in order to obtain the forward and backward rate constants for HB breaking and formation |
-smooth | real | -1 | If >= 0, the tail of the ACF will be smoothed by fitting it to an exponential function: y = A exp(-x/tau) |
-filter | real | 0 | Print the high-frequency fluctuation after filtering with a cosine filter of length # |
-[no]power | bool | no | Fit data to: b t^a |
-[no]subav | bool | yes | Subtract the average before autocorrelating |
-[no]oneacf | bool | no | Calculate one ACF over all sets |
-acflen | int | -1 | Length of the ACF, default is half the number of frames |
-[no]normalize | bool | yes | Normalize ACF |
-P | enum | 0 | Order of Legendre polynomial for ACF (0 indicates none): 0, 1, 2 or 3 |
-fitfn | enum | none | Fit function: none, exp, aexp, exp_exp, vac, exp5, exp7 or exp9 |
-ncskip | int | 0 | Skip N points in the output file of correlation functions |
-beginfit | real | 0 | Time where to begin the exponential fit of the correlation function |
-endfit | real | -1 | Time where to end the exponential fit of the correlation function, -1 is till the end |