FISST
This is part of the fisst module
It is only available if you configure PLUMED with ./configure –enable-modules=fisst . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list.

Compute and apply the optimal linear force on an observable to enhance sampling of conformational distributions over a range of applied forces.

This method is described in [62]

If the system's Hamiltonian is given by:

\[ H(\vec{p},\vec{q}) = \sum_{j} \frac{p_j^2}{2m_j} + U(\vec{q}), \]

This bias modifies the Hamiltonian to be:

\[ H'(\vec{p},\vec{q}) = H(\vec{p},\vec{q}) - \bar{F} Q \]

where for CV \(Q\), a coupling constant \({\bar{F}}\) is determined adaptively according to the FISST algorithm.

Specifically,

\[ \bar{F}(Q)=\frac{ \int_{F_{min}}^{F_{max}} e^{\beta F Q(\vec{q})} \omega(F) F dF}{\int_{F_{min}}^{F_{max}} e^{\beta F Q(\vec{q})} \omega(F) dF}, \]

where \(\vec{q}\) are the molecular coordinates of the system, and \(w(F)\) is a weighting function that is learned on the fly for each force by the FISST algorithm (starting from an initial weight distribution, uniform by default).

The target for \(w(F)=1/Z_q(F)\), where

\[ Z_q(F) \equiv \int d\vec{q} e^{-\beta U(\vec{q}) + \beta F Q(\vec{q})}. \]

FISST also computes and writes Observable Weights \(W_F(\vec{q}_t)\) for a molecular configuration at time \(t\), so that averages of other quantities \(A(\vec{q})\) can be reconstructed later at different force values (over a trajectory with \(T\) samples):

\[ \langle A \rangle_F = \frac{1}{T} \sum_t W_F(\vec{q}_t) A(\vec{q}_t). \]

Examples

In the following example, an adaptive restraint is learned to bias the distance between two atoms in a system, for a force range of 0-100 pN.

Click on the labels of the actions for more information on what each action computes
tested on master
UNITS 
LENGTH
the units of lengths.
=A
TIME
the units of time.
=fs
ENERGY
the units of energy.
=kcal/mol b1: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=1 b2: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=12 dend: DISTANCE
ATOMS
the pair of atom that we are calculating the distance between.
=b1,b2 #The conversion factor is 69.4786 pN = 1 kcal/mol/Angstrom #0 pN to 100 pN f: FISST
MIN_FORCE
compulsory keyword Minimum force (per CV) to use for sampling.
=0
MAX_FORCE
compulsory keyword Maximum force (per CV) to use for sampling.
=1.44
PERIOD
compulsory keyword Steps corresponding to the learning rate
=100
NINTERPOLATE
compulsory keyword Number of grid points on which to do interpolation.
=31
ARG
the input for this action is the scalar output from one or more other actions.
=dend
OUT_RESTART
Output file for all information needed to continue FISST simulation.If
=pull.restart.txt
OUT_OBSERVABLE
Output file putting weights needed to compute observables at different force values.If
=pull.observable.txt
OBSERVABLE_FREQ
How often to write out observable weights (default=period).
=1000 PRINT
ARG
the input for this action is the scalar output from one or more other actions.
=dend,f.dend_fbar,f.bias,f.force2
FILE
the name of the file on which to output these quantities
=pull.colvar.txt
STRIDE
compulsory keyword ( default=1 ) the frequency with which the quantities of interest should be output
=1000
Glossary of keywords and components
Description of components

By default this Action calculates the following quantities. These quantities can be referenced elsewhere in the input by using this Action's label followed by a dot and the name of the quantity required from the list below.

Quantity Description
bias the instantaneous value of the bias potential
force2 squared value of force from the bias.
_fbar For each named CV biased, there will be a corresponding output CV_fbar storing the current linear bias prefactor.
Compulsory keywords
PERIOD Steps corresponding to the learning rate
NINTERPOLATE Number of grid points on which to do interpolation.
MIN_FORCE Minimum force (per CV) to use for sampling. Units: [Energy]/[CV] (can be negative).
MAX_FORCE Maximum force (per CV) to use for sampling.
CENTER ( default=0 ) The CV value at which the applied bias energy will be zero
Options
NUMERICAL_DERIVATIVES ( default=off ) calculate the derivatives for these quantities numerically
FREEZE

( default=off ) Fix bias weights at current level (only used for restarting).

ARG the input for this action is the scalar output from one or more other actions. The particular scalars that you will use are referenced using the label of the action. If the label appears on its own then it is assumed that the Action calculates a single scalar value. The value of this scalar is thus used as the input to this new action. If * or *.* appears the scalars calculated by all the proceeding actions in the input file are taken. Some actions have multi-component outputs and each component of the output has a specific label. For example a DISTANCE action labelled dist may have three components x, y and z. To take just the x component you should use dist.x, if you wish to take all three components then use dist.*.More information on the referencing of Actions can be found in the section of the manual on the PLUMED Getting Started. Scalar values can also be referenced using POSIX regular expressions as detailed in the section on Regular Expressions. To use this feature you you must compile PLUMED with the appropriate flag. You can use multiple instances of this keyword i.e. ARG1, ARG2, ARG3...
RESET_PERIOD Reset the learning statistics every time this number of steps comes around.
KBT The system temperature in units of KB*T. If not provided will be taken from MD code (if available)
INITIAL_WEIGHT_DIST Starting distribution for the force weights (options: UNIFORM, EXP, GAUSS).
INITIAL_WEIGHT_RATE Rate of decay for exponential and gaussian distributions. W(F)~exp(-r |F|^d).
RESTART_FMT the format that should be used to output real numbers in FISST restarts.
OUT_RESTART Output file for all information needed to continue FISST simulation.If you have the RESTART directive set (global or for FISST), this file will be appended to.Note that the header will be printed again if appending.
IN_RESTART Read this file to continue an FISST simulation. If same as OUT_RESTART and you have not set the RESTART directive, the file will be backed-up and overwritten with new output.If you do have the RESTART flag set and it is the same name as OUT_RESTART, this file will be appended.
OUT_OBSERVABLE Output file putting weights needed to compute observables at different force values.If you have the RESTART directive set (global or for FISST), this file will be appended to. Note that the header will be printed again if appending.
OBSERVABLE_FREQ How often to write out observable weights (default=period).
RESTART allows per-action setting of restart (YES/NO/AUTO)