This is part of the mapping module |
Compute path collective variables that adapt to the lowest free energy path connecting states A and B.
The Path Collective Variables developed by Branduardi and co-workers [28] allow one to compute the progress along a high-dimensional path and the distance from the high-dimensional path. The progress along the path (s) is computed using:
\[ s = i_2 + \textrm{sign}(i_2-i_1) \frac{ \sqrt{( \mathbf{v}_1\cdot\mathbf{v}_2 )^2 - |\mathbf{v}_3|^2(|\mathbf{v}_1|^2 - |\mathbf{v}_2|^2) } }{2|\mathbf{v}_3|^2} - \frac{\mathbf{v}_1\cdot\mathbf{v}_3 - |\mathbf{v}_3|^2}{2|\mathbf{v}_3|^2} \]
In this expression \(\mathbf{v}_1\) and \(\mathbf{v}_3\) are the vectors connecting the current position to the closest and second closest node of the path, respectfully and \(i_1\) and \(i_2\) are the projections of the closest and second closest frames of the path. \(\mathbf{v}_2\), meanwhile, is the vector connecting the closest frame to the second closest frame. The distance from the path, \(z\) is calculated using:
\[ z = \sqrt{ \left[ |\mathbf{v}_1|^2 - |\mathbf{v}_2| \left( \frac{ \sqrt{( \mathbf{v}_1\cdot\mathbf{v}_2 )^2 - |\mathbf{v}_3|^2(|\mathbf{v}_1|^2 - |\mathbf{v}_2|^2) } }{2|\mathbf{v}_3|^2} - \frac{\mathbf{v}_1\cdot\mathbf{v}_3 - |\mathbf{v}_3|^2}{2|\mathbf{v}_3|^2} \right) \right]^2 } \]
Notice that these are the definitions of \(s\) and \(z\) that are used by PATH when the GPATH option is employed. The reason for this is that the adaptive path method implemented in this action was inspired by the work of Diaz and Ensing in which these formula were used [82]. To learn more about how the path is adapted we strongly recommend reading this paper.
The input below provides an example that shows how the adaptive path works. The path is updated every 50 steps of MD based on the data accumulated during the preceding 50 time steps.
d1: DISTANCE ATOMSthe pair of atom that we are calculating the distance between. =1,2 COMPONENTS( default=off ) calculate the x, y and z components of the distance separately and store them as label.x, pp: ADAPTIVE_PATH TYPEcompulsory keyword ( default=OPTIMAL-FAST ) the manner in which distances are calculated. =EUCLIDEAN FIXEDcompulsory keyword the positions in the list of input frames of the two path nodes whose positions remain fixed during the path optimization =2,5 UPDATEcompulsory keyword the frequency with which the path should be updated =50 WFILEfile on which to write out the path =out-path.pdb WSTRIDEfrequency with which to write out the path =50 REFERENCEcompulsory keyword a pdb file containing the set of reference configurations =mypath.pdb PRINT ARGthe input for this action is the scalar output from one or more other actions. =d1.x,d1.y,pp.* FILEthe name of the file on which to output these quantities =colvar
In the case above the distance between frames is calculated based on the \(x\) and \(y\) components of the vector connecting atoms 1 and 2. As such an extract from the input reference path (mypath.pdb) would look as follows:
REMARK ARG=d1.x,d1.y d1.x=1.12 d1.y=-.60 END REMARK ARG=d1.x,d1.y d1.x=.99 d1.y=-.45 END REMARK ARG=d1.x,d1.y d1.x=.86 d1.y=-.30 END REMARK ARG=d1.x,d1.y d1.x=.73 d1.y=-.15 END REMARK ARG=d1.x,d1.y d1.x=.60 d1.y=0 END REMARK ARG=d1.x,d1.y d1.x=.47 d1.y=.15 END
Notice that one can also use RMSD frames in place of arguments like those above.
REFERENCE | a pdb file containing the set of reference configurations |
TYPE | ( default=OPTIMAL-FAST ) the manner in which distances are calculated. More information on the different metrics that are available in PLUMED can be found in the section of the manual on Distances from reference configurations |
FIXED | the positions in the list of input frames of the two path nodes whose positions remain fixed during the path optimization |
HALFLIFE | ( default=-1 ) the number of MD steps after which a previously measured path distance weighs only 50% in the average. This option may increase convergence by allowing to forget the memory of a bad initial guess path. The default is to set this to infinity |
UPDATE | the frequency with which the path should be updated |
TOLERANCE | ( default=1E-6 ) the tolerance to use for the path updating algorithm that makes all frames equidistant |
FMT | ( default=f ) the format to use for output files |
NUMERICAL_DERIVATIVES | ( default=off ) calculate the derivatives for these quantities numerically |
SERIAL | ( default=off ) do the calculation in serial. Do not use MPI |
LOWMEM | ( default=off ) lower the memory requirements |
TIMINGS | ( default=off ) output information on the timings of the various parts of the calculation |
DISABLE_CHECKS | ( default=off ) disable checks on reference input structures. |
WFILE | file on which to write out the path |
WSTRIDE | frequency with which to write out the path |