| VERSION 3.2.0 |
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(pi t/i) 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 BA is:
BA(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 BA(t) to the calculated block
average.
When the actual block average is very close to the analytical curve,
the error is sigma*sqrt(2/T (a tau1 + (1-a) tau2)).
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 -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 | 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 | 19 | Set the nicelevel |
-[no]w | bool | no | View output xvg, xpm, eps and pdb files |
-[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 |
-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 |