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 [21] 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 [62]. To learn more about how the path is adapted we strongly recommend reading this paper.

Compulsory keywords
 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
Options
 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
Examples

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 ATOMS=1,2 COMPONENTS
pp: ADAPTIVE_PATH TYPE=EUCLIDEAN FIXED=2,5 UPDATE=50 WFILE=out-path.pdb WSTRIDE=50 REFERENCE=mypath.pdb
PRINT ARG=d1.x,d1.y,pp.* FILE=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.