van Hove Correlation Functions (TRRDFs)
van Hove function G(r,t)
Provides functions to calculate the vanhove dynamic correlation function G(r,t) between two groups of particles. Groups can also consist of single particles.
vanhove
vanhove(
traj,
g1,
g2,
top=None,
pbc="ortho",
n_windows=100,
window_size=200,
overlap=False,
skip=1,
stride=10,
r_range=(0.0, 2.0),
nbins=400,
self_only=False,
)
Calculate \(G(r,t)\) for two groups given in a trajectory. \(G(r,t)\) is calculated for a smaller time frame (typically 2 ps). \(G(r,t)\) is then averaged over the whole trajectory supplied.
\(G(r,t)\) is calculated as:
following the formulation by Shinohara, Y. et al. [1]
The function was originally published by Léon van Hove in 1954. [2]
PARAMETER | DESCRIPTION |
---|---|
traj |
MDTraj trajectory, or Generator of trajectories (obtained using mdtraj.iterload).
TYPE:
|
g1 |
List of numpy arrays of atom indices representing the group to calculate \(G(r,t)\) for.
TYPE:
|
g2 |
List of numpy arrays of atom indices representing the group to calculate \(G(r,t)\) with.
TYPE:
|
top |
Topology object. Needed if trajectory given as a path to lazy-load.
TYPE:
|
pbc |
String representing the periodic boundary conditions of the simulation cell. Currently, only 'ortho' for orthogonal simulation cells is implemented.
TYPE:
|
n_windows |
Number of windows in which to split the trajectory (if a whole trajectory is supplied).
TYPE:
|
window_size |
Number of frames in each window.
TYPE:
|
overlap |
Positive integer number of frames between overlapping windows.
TYPE:
|
skip |
Number of frames to skip at the beginning if giving a path as trajectory.
TYPE:
|
stride |
Number of frames in the original trajectory to skip between each calculation. E.g. stride = 10 means calculate distances only every 10th frame.
TYPE:
|
r_range |
Tuple over which r in \(G(r,t)\) is defined.
TYPE:
|
nbins |
Number of bins (points in r to consider) in \(G(r,t)\)
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
r
|
bin centers of \(G(r,t)\)
TYPE:
|
G_self
|
averaged function values of \(G_{s}(r,t)\) for each time from t=0 considered
TYPE:
|
G_distinct
|
averaged function values of \(G_{d}(r,t)\) for each time from t=0 considered
TYPE:
|
Examples:
First, import both MDTraj
and SPEADI
together.
Then, point to a particle simulation topology and trajectory (e.g. a Molecular Dynamics Simulation using Gromacs
).
Next, load the topology file using MDTraj
and start defining reference and target groups.
>>> top = md.load_topology(topology)
>>> na = top.select('name NA')
>>> cl = top.select('name CL')
>>> protein_by_atom = [top.select(f'index {ix}') for
>>> ix in top.select('protein and not type H')]
Finally, run the van Hove Function (VHF) by calling vanhove()
.
>>> r, g_s, g_d = sp.vanhove(trajectory, protein_by_atom, [na, cl], top=top,
>>> n_windows=1000, window_size=500, skip=0,
>>> pbc='general', stride=1, nbins=400)
The outputs are
-
the centre points of the radial bins
r
-
the \(G_s(r,t)\) self part of the correlation function with shape \(N\)(reference groups)\(\times N\)(\tau windows)\(\times N\)(radial bins)
-
the \(G_s(r,t)\) self part of the correlation function with shape \(N\)(reference groups)\(\times N\)(target groups)\(\times N\)(\tau windows)\(\times N\)(radial bins)
References
[1] Shinohara, Y., Matsumoto, R., Thompson, M. W. et al., "Identifying water-anion correlated motion in aqueous solutions through van Hove functions," The Journal of Physical Chemistry Letters, 10(22), 7119–7125 (2019). http://dx.doi.org/10.1021/acs.jpclett.9b02891
[2] van Hove, L., "Correlations in space and time and Born approximation scattering in systems of interacting particles", Physical Review, 95(1), 249–262 (1954). http://dx.doi.org/10.1103/physrev.95.249
Source code in speadi/vanhove/vanhove.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
|