Next: Biasing and analysis methods
Up: Collective Variable-based Calculations (Colvars)1
Previous: Selecting atoms for colvars:
Contents
Index
Subsections
Collective variable components (basis functions)
Each colvar is defined by one or more components (typically
only one). Each component consists of a keyword identifying a
functional form, and a definition block following that keyword,
specifying the atoms involved and any additional parameters (cutoffs,
``reference'' values, ...).
The types of the components used in a colvar determine the properties
of that colvar, and which biasing or analysis methods can be applied.
In most cases, the colvar returns a real number, which is computed by
one or more instances of the following components:
- distance: distance between two groups;
- distanceZ: projection of a distance vector on an axis;
- distanceXY: projection of a distance vector on a plane;
- distanceInv: mean distance between two groups of atoms (e.g. NOE-based distance);
- angle: angle between three groups;
- dipoleAngle: angle between two groups and dipole of a third group;
- coordNum: coordination number between two groups;
- selfCoordNum: coordination number of atoms within a
group;
- hBond: hydrogen bond between two atoms;
- rmsd: root mean square deviation (RMSD) from a set of
reference coordinates;
- eigenvector: projection of the atomic coordinates on a
vector;
- orientationAngle: angle of the best-fit rotation from
a set of reference coordinates;
- orientationProj: cosine of orientationProj;
- spinAngle: projection orthogonal to an axis of the best-fit rotation
from a set of reference coordinates;
- tilt: projection on an axis of the best-fit rotation
from a set of reference coordinates;
- gyration: radius of gyration of a group of atoms;
- inertia: moment of inertia of a group of atoms;
- inertiaZ: moment of inertia of a group of atoms around a chosen axis;
- alpha:
-helix content of a protein segment.
- dihedralPC: projection of protein backbone dihedrals onto a dihedral principal component.
Some components do not return scalar, but vector values.
They can only be combined with vector values of the same
type, except within a scripted collective variable.
- distanceVec: distance vector between two groups;
- distanceDir: unit vector parallel to distanceVec;
- cartesian: vector of atomic Cartesian coordinates;
- orientation: best-fit rotation, expressed as a unit quaternion.
In the following, all the available component types are listed, along
with their physical units and the limiting values, if any. Such
limiting values can be used to define lowerBoundary and
upperBoundary in the parent colvar.
For each type of component, the available configurations keywords are listed:
when two components share certain keywords, the second component simply references
to the documentation of the first regarding that keyword.
The keywords that are available for all types of components are listed at the end (see
distance: center-of-mass distance between two groups.
The distance {...} block defines a distance component between the two atom groups, group1 and group2.
List of keywords (see also 10.4.4 for additional options):
- group1
First group of atoms
Context: distance
Acceptable Values: Block group1 {...}
Description: First group of atoms.
-
group2: analogous to group1
- forceNoPBC
Calculate absolute rather than minimum-image distance?
Context: distance
Acceptable Values: boolean
Default Value: no
Description: By default, in calculations with periodic boundary conditions, the
distance component returns the distance according to the
minimum-image convention. If this parameter is set to yes,
PBC will be ignored and the distance between the coordinates as maintained
internally will be used. This is only useful in a limited number of
special cases, e.g. to describe the distance between remote points
of a single macromolecule, which cannot be split across periodic cell
boundaries, and for which the minimum-image distance might give the
wrong result because of a relatively small periodic cell.
- oneSiteTotalForce
Measure total force on group 1 only?
Context: angle, dipoleAngle, dihedral
Acceptable Values: boolean
Default Value: no
Description: If this is set to yes, the total force is measured along
a vector field (see equation (53) in
section 10.5.1) that only involves atoms of
group1. This option is only useful for ABF, or custom
biases that compute total forces. See
section 10.5.1 for details.
The value returned is a positive number (in Å), ranging from 0
to the largest possible interatomic distance within the chosen
boundary conditions (with PBCs, the minimum image convention is used
unless the forceNoPBC option is set).
The distanceZ {...} block defines a distance projection
component, which can be seen as measuring the distance between two
groups projected onto an axis, or the position of a group along such
an axis. The axis can be defined using either one reference group and
a constant vector, or dynamically based on two reference groups.
List of keywords (see also 10.4.4 for additional options):
This component returns a number (in Å) whose range is determined
by the chosen boundary conditions. For instance, if the
axis is
used in a simulation with periodic boundaries, the returned value ranges
between
and
, where
is the box length
along
(this behavior is disabled if forceNoPBC is set).
The distanceXY {...} block defines a distance projected on
a plane, and accepts the same keywords as the component distanceZ, i.e.
main, ref, either ref2 or axis,
and oneSiteTotalForce. It returns the norm of the
projection of the distance vector between main and
ref onto the plane orthogonal to the axis. The axis is
defined using the axis parameter or as the vector joining
ref and ref2 (see distanceZ above).
List of keywords (see also 10.4.4 for additional options):
-
main: see definition of main in sec. 10.4.1 (distanceZ component)
-
ref: see definition of ref in sec. 10.4.1 (distanceZ component)
-
ref2: see definition of ref2 in sec. 10.4.1 (distanceZ component)
-
axis: see definition of axis in sec. 10.4.1 (distanceZ component)
-
forceNoPBC: see definition of forceNoPBC in sec. 10.4.1 (distance component)
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The distanceVec {...} block defines
a distance vector component, which accepts the same keywords as
the component distance: group1, group2, and
forceNoPBC. Its value is the 3-vector joining the centers
of mass of group1 and group2.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The distanceDir {...} block defines
a distance unit vector component, which accepts the same keywords as
the component distance: group1, group2, and
forceNoPBC. It returns a
3-dimensional unit vector
, with
.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The distanceInv {...} block defines a generalized mean distance between two groups of atoms 1 and 2, weighted with exponent
:
|
(36) |
where
is the distance between atoms
and
in groups 1 and 2 respectively, and
is an even integer.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
- exponent
Exponent
in equation 36
Context: distanceInv
Acceptable Values: positive even integer
Default Value: 6
Description: Defines the exponent to which the individual distances are elevated before averaging. The default value of 6 is useful for example to applying restraints based on NOE-measured distances.
This component returns a number in Å, ranging from 0
to the largest possible distance within the chosen boundary conditions.
The distancePairs {...} block defines a
-dimensional variable that includes all mutual distances between the atoms of two groups.
This can be useful, for example, to develop a new variable defined over two groups, by using the scriptedFunction feature.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
forceNoPBC: see definition of forceNoPBC in sec. 10.4.1 (distance component)
This component returns a
-dimensional vector of numbers, each ranging from 0
to the largest possible distance within the chosen boundary conditions.
The cartesian {...} block defines a component returning a flat vector containing
the Cartesian coordinates of all participating atoms, in the order
.
List of keywords (see also 10.4.4 for additional options):
- atoms
Group of atoms
Context: cartesian
Acceptable Values: Block atoms {...}
Description: Defines the atoms whose coordinates make up the value of the component.
If rotateReference or centerReference are defined, coordinates
are evaluated within the moving frame of reference.
The angle {...} block defines an angle, and contains the
three blocks group1, group2 and group3, defining
the three groups. It returns an angle (in degrees) within the
interval
.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
group3: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The dipoleAngle {...} block defines an angle, and contains the
three blocks group1, group2 and group3, defining
the three groups, being group1 the group where dipole is calculated.
It returns an angle (in degrees) within the interval
.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
group3: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The dihedral {...} block defines a torsional angle, and
contains the blocks group1, group2, group3
and group4, defining the four groups. It returns an angle
(in degrees) within the interval
. The Colvars module
calculates all the distances between two angles taking into account
periodicity. For instance, reference values for restraints or range
boundaries can be defined by using any real number of choice.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
-
group3: analogous to group1
-
group4: analogous to group1
-
oneSiteTotalForce: see definition of oneSiteTotalForce in sec. 10.4.1 (distance component)
The coordNum {...} block defines
a coordination number (or number of contacts), which calculates the
function
, where
is the
``cutoff'' distance, and
and
are exponents that can control
its long range behavior and stiffness [39]. This
function is summed over all pairs of atoms in group1 and
group2:
|
(37) |
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (distance component)
-
group2: analogous to group1
- cutoff
``Interaction'' distance (Å)
Context: coordNum
Acceptable Values: positive decimal
Default Value: 4.0
Description: This number defines the switching distance to define an
interatomic contact: for
, the switching function
is close to 1, at
it
has a value of
(
with the default
and
), and at
it goes to zero approximately like
. Hence,
for a proper behavior,
must be larger than
.
- cutoff3
Reference distance vector (Å)
Context: coordNum
Acceptable Values: ``(x, y, z)'' triplet of positive decimals
Default Value: (4.0, 4.0, 4.0)
Description: The three components of this vector define three different cutoffs
for each direction. This option is mutually exclusive with
cutoff.
- expNumer
Numerator exponent
Context: coordNum
Acceptable Values: positive even integer
Default Value: 6
Description: This number defines the
exponent for the switching function.
- expDenom
Denominator exponent
Context: coordNum
Acceptable Values: positive even integer
Default Value: 12
Description: This number defines the
exponent for the switching function.
- group2CenterOnly
Use only group2's center of
mass
Context: coordNum
Acceptable Values: boolean
Default Value: off
Description: If this option is on, only contacts between each atoms in group1 and the center of mass of group2 are calculated (by default, the sum extends over all pairs of atoms in group1 and group2).
If group2 is a dummyAtom, this option is set to yes by default.
This component returns a dimensionless number, which ranges from
approximately 0 (all interatomic distances are much larger than the
cutoff) to
(all distances
are less than the cutoff), or
if
group2CenterOnly is used. For performance reasons, at least
one of group1 and group2 should be of limited size or group2CenterOnly should be used: the cost of the loop over all pairs grows as
.
The selfCoordNum {...} block defines
a coordination number similarly to the component coordNum,
but the function is summed over atom pairs within group1:
|
(38) |
The keywords accepted by selfCoordNum are a subset of
those accepted by coordNum, namely group1
(here defining all of the atoms to be considered),
cutoff, expNumer, and expDenom.
List of keywords (see also 10.4.4 for additional options):
-
group1: see definition of group1 in sec. 10.4.1 (coordNum component)
-
group2: analogous to group1
-
cutoff: see definition of cutoff in sec. 10.4.1 (coordNum component)
-
cutoff3: see definition of cutoff3 in sec. 10.4.1 (coordNum component)
-
expNumer: see definition of expNumer in sec. 10.4.1 (coordNum component)
-
expDenom: see definition of expDenom in sec. 10.4.1 (coordNum component)
This component returns a dimensionless number, which ranges from
approximately 0 (all interatomic distances much larger than the
cutoff) to
(all
distances within the cutoff). For performance reasons,
group1 should be of limited size, because the cost of the
loop over all pairs grows as
.
The hBond {...} block defines a hydrogen
bond, implemented as a coordination number (eq. 37)
between the donor and the acceptor atoms. Therefore, it accepts the
same options cutoff (with a different default value of
3.3 Å), expNumer (with a default value of 6) and
expDenom (with a default value of 8). Unlike
coordNum, it requires two atom numbers, acceptor and
donor, to be defined. It returns an adimensional number,
with values between 0 (acceptor and donor far outside the cutoff
distance) and 1 (acceptor and donor much closer than the cutoff).
List of keywords (see also 10.4.4 for additional options):
- acceptor
Number of the acceptor atom
Context: hBond
Acceptable Values: positive integer
Description: Number that uses the same convention as atomNumbers.
-
donor: analogous to acceptor
-
cutoff: see definition of cutoff in sec. 10.4.1 (coordNum component)
Note: default value is 3.3 Å.
-
expNumer: see definition of expNumer in sec. 10.4.1 (coordNum component)
Note: default value is 6.
-
expDenom: see definition of expDenom in sec. 10.4.1 (coordNum component)
Note: default value is 8.
The block rmsd {...} defines the root mean square replacement
(RMSD) of a group of atoms with respect to a reference structure. For
each set of coordinates
, the colvar component rmsd calculates the
optimal rotation
that best superimposes the coordinates
onto a
set of reference coordinates
.
Both the current and the reference coordinates are centered on their
centers of geometry,
and
. The root mean square
displacement is then defined as:
|
(39) |
The optimal rotation
is calculated within the formalism developed in
reference [20], which guarantees a continuous
dependence of
with respect to
.
List of keywords (see also 10.4.4 for additional options):
- atoms
Atom group
Context: rmsd
Acceptable Values: atoms {...} block
Description: Defines the group of atoms of which the RMSD should be calculated.
Optimal fit options (such as refPositions and
rotateReference) should typically NOT be set within this
block. Exceptions to this rule are the special cases discussed in
the Advanced usage paragraph below.
- refPositions
Reference coordinates
Context: rmsd
Acceptable Values: space-separated list of (x, y, z) triplets
Description: This option (mutually exclusive with refPositionsFile) sets the reference coordinates. If only centerReference is on, the list can be a single (x, y, z) triplet; if also rotateReference is on, the list should be as long as the atom group. This option
is independent from that with the same keyword within the
atoms {...} block (see 10.3.2). The latter (and related fitting
options for the atom group) are normally not needed,
and should be omitted altogether except for advanced usage cases.
- refPositionsFile
Reference coordinates file
Context: rmsd
Acceptable Values: UNIX filename
Description: This option (mutually exclusive with refPositions) sets the file name for the reference coordinates to be compared with. The format is the same as that provided by refPositionsFile within an atom group's definition (see 10.3.2).
- refPositionsCol
PDB column containing atom flags
Context: rmsd
Acceptable Values: O, B, X, Y, or Z
Description: If refPositionsFile is a PDB file that contains all the atoms in the topology, this option may be provided to set which PDB field is used to flag the reference coordinates for atoms.
- refPositionsColValue
Atom selection flag in the PDB column
Context: rmsd
Acceptable Values: positive decimal
Description: If defined, this value identifies in the PDB column
refPositionsCol of the file refPositionsFile
which atom positions are to be read. Otherwise, all positions
with a non-zero value are read.
This component returns a positive real number (in Å).
In the standard usage as described above, the rmsd component
calculates a minimum RMSD, that is, current coordinates are optimally
fitted onto the same reference coordinates that are used to
compute the RMSD value. The fit itself is handled by the atom group
object, whose parameters are automatically set by the rmsd
component.
For very specific applications, however, it may be
useful to control the fitting process separately from the definition
of the reference coordinates, to evaluate various types of
non-minimal RMSD values. This can be achieved by setting the
related options (refPositions, etc.) explicitly in the
atom group block. This allows for the following non-standard cases:
- applying the optimal translation, but no rotation
(rotateReference off), to bias or restrain the shape and
orientation, but not the position of the atom group;
- applying the optimal rotation, but no translation
(translateReference off), to bias or restrain the shape and
position, but not the orientation of the atom group;
- disabling the application of optimal roto-translations, which
lets the RMSD component decribe the deviation of atoms
from fixed positions in the laboratory frame: this allows for custom
positional restraints within the Colvars module;
- fitting the atomic positions to different reference coordinates
than those used in the RMSD calculation itself;
- applying the optimal rotation and/or translation from a separate
atom group, defined through fittingGroup: the RMSD then
reflects the deviation from reference coordinates in a separate, moving
reference frame.
The block eigenvector {...} defines the projection of the coordinates
of a group of atoms (or more precisely, their deviations from the
reference coordinates) onto a vector in
, where
is the
number of atoms in the group. The computed quantity is the
total projection:
|
(40) |
where, as in the rmsd component,
is the optimal rotation
matrix,
and
are the centers of
geometry of the current and reference positions respectively, and
are the components of the vector for each atom.
Example choices for
are an eigenvector
of the covariance matrix (essential mode), or a normal
mode of the system. It is assumed that
:
otherwise, the Colvars module centers the
automatically when reading them from the configuration.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
- vector
Vector components
Context: eigenvector
Acceptable Values: space-separated list of (x, y, z) triplets
Description: This option (mutually exclusive with vectorFile) sets the values of the vector components.
- vectorFile
PDB file containing vector components
Context: eigenvector
Acceptable Values: UNIX filename
Description: This option (mutually exclusive with vector) sets the
name of a PDB file where the vector components will be read from the
X, Y, and Z fields.
Note: The PDB file has limited precision and fixed
point numbers: in some cases, the vector may not be
accurately represented, and vector should be
used instead.
- vectorCol
PDB column used to flag participating atoms
Context: eigenvector
Acceptable Values: O or B
Description: Analogous to atomsCol.
- vectorColValue
Value used to flag participating atoms in the PDB file
Context: eigenvector
Acceptable Values: positive decimal
Description: Analogous to atomsColValue.
- differenceVector
The
-dimensional vector is the difference between vector and refPositions
Context: eigenvector
Acceptable Values: boolean
Default Value: off
Description: If this option is on, the numbers provided by vector or vectorFile are interpreted as another set of positions,
: the vector
is then defined as
.
This allows to conveniently define a colvar
as a projection on the linear transformation between two sets of positions, ``A'' and ``B''.
For convenience, the vector is also normalized so that
when the atoms are at the set of positions ``A'' and
at the set of positions ``B''.
This component returns a number (in Å), whose value ranges between
the smallest and largest absolute positions in the unit cell during
the simulations (see also distanceZ). Due to the
normalization in eq. 40, this range does not
depend on the number of atoms involved.
The block gyration {...} defines the
parameters for calculating the radius of gyration of a group of atomic
positions
with respect to their center of geometry,
:
|
(41) |
This component must contain one atoms {...} block to
define the atom group, and returns a positive number, expressed in
Å.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
The block inertia {...} defines the
parameters for calculating the total moment of inertia of a group of atomic
positions
with respect to their center of geometry,
:
|
(42) |
Note that all atomic masses are set to 1 for simplicity.
This component must contain one atoms {...} block to
define the atom group, and returns a positive number, expressed in
Å
.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
The block inertiaZ {...} defines the
parameters for calculating the component along the axis
of the moment of inertia of a group of atomic
positions
with respect to their center of geometry,
:
|
(43) |
Note that all atomic masses are set to 1 for simplicity.
This component must contain one atoms {...} block to
define the atom group, and returns a positive number, expressed in
Å
.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
- axis
Projection axis (Å)
Context: inertiaZ
Acceptable Values: (x, y, z) triplet
Default Value: (0.0, 0.0, 1.0)
Description: The three components of this vector define (when normalized) the
projection axis
.
The block orientation {...} returns the
same optimal rotation used in the rmsd component to
superimpose the coordinates
onto a set of
reference coordinates
. Such
component returns a four dimensional vector
, with
; this quaternion
expresses the optimal rotation
according to the formalism in
reference [20]. The quaternion
can also be written as
, where
is the angle and
the normalized axis of rotation; for example, a rotation
of 90
around the
axis is expressed as
``(0.707, 0.0, 0.0, 0.707)''. The script
quaternion2rmatrix.tcl provides Tcl functions for converting
to and from a
rotation matrix in a format suitable for
usage in VMD.
As for the component rmsd, the available options are atoms, refPositionsFile, refPositionsCol and refPositionsColValue, and refPositions.
Note: refPositionsand refPositionsFile define the set of positions from which the optimal rotation is calculated, but this rotation is not applied to the coordinates of the atoms involved: it is used instead to define the variable itself.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
- closestToQuaternion
Reference rotation
Context: orientation
Acceptable Values: ``(q0, q1, q2, q3)'' quadruplet
Default Value: (1.0, 0.0, 0.0, 0.0) (``null'' rotation)
Description: Between the two equivalent quaternions
and
, the closer to (1.0, 0.0, 0.0,
0.0) is chosen. This simplifies the visualization of the
colvar trajectory when samples values are a smaller subset of all
possible rotations. Note: this only affects the
output, never the dynamics.
Tip: stopping the rotation of a protein. To stop the
rotation of an elongated macromolecule in solution (and use an
anisotropic box to save water molecules), it is possible to define a
colvar with an orientation component, and restrain it throuh
the harmonic bias around the identity rotation, (1.0,
0.0, 0.0, 0.0). Only the overall orientation of the macromolecule
is affected, and not its internal degrees of freedom. The user
should also take care that the macromolecule is composed by a single
chain, or disable wrapAll otherwise.
The block orientationAngle {...} accepts the same base options as
the component orientation: atoms, refPositions, refPositionsFile, refPositionsCol and refPositionsColValue.
The returned value is the angle of rotation
between the current and the reference positions.
This angle is expressed in degrees within the range [0
:180
].
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
The block orientationProj {...} accepts the same base options as
the component orientation: atoms, refPositions, refPositionsFile, refPositionsCol and refPositionsColValue.
The returned value is the cosine of the angle of rotation
between the current and the reference positions.
The range of values is [-1:1].
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
The complete rotation described by orientation can optionally be decomposed into two sub-rotations: one is a ``spin'' rotation around e, and the other a ``tilt'' rotation around an axis orthogonal to e.
The component spinAngle measures the angle of the ``spin'' sub-rotation around e.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
- axis
Special rotation axis (Å)
Context: tilt
Acceptable Values: (x, y, z) triplet
Default Value: (0.0, 0.0, 1.0)
Description: The three components of this vector define (when normalized) the special rotation axis used to calculate the tilt and spinAngle components.
The component spinAngle returns an angle (in degrees) within the periodic interval
.
Note: the value of spinAngle is a continuous function almost everywhere, with the exception of configurations with the corresponding ``tilt'' angle equal to 180
(i.e. the tilt component is equal to
): in those cases, spinAngle is undefined. If such configurations are expected, consider defining a tilt colvar using the same axis e, and restraining it with a lower wall away from
.
The component tilt measures the cosine of the angle of the ``tilt'' sub-rotation, which combined with the ``spin'' sub-rotation provides the complete rotation of a group of atoms.
The cosine of the tilt angle rather than the tilt angle itself is implemented, because the latter is unevenly distributed even for an isotropic system: consider as an analogy the angle
in the spherical coordinate system.
The component tilt relies on the same options as spinAngle, including the definition of the axis e.
The values of tilt are real numbers in the interval
: the value
represents an orientation fully parallel to e (tilt angle = 0
), and the value
represents an anti-parallel orientation.
List of keywords (see also 10.4.4 for additional options):
-
atoms: see definition of atoms in sec. 10.4.1 (rmsd component)
-
refPositions: see definition of refPositions in sec. 10.4.1 (rmsd component)
-
refPositionsFile: see definition of refPositionsFile in sec. 10.4.1 (rmsd component)
-
refPositionsCol: see definition of refPositionsCol in sec. 10.4.1 (rmsd component)
-
refPositionsColValue: see definition of refPositionsColValue in sec. 10.4.1 (rmsd component)
-
axis: see definition of axis in sec. 10.4.1 (spinAngle component)
The block alpha {...} defines the
parameters to calculate the helical content of a segment of protein
residues. The
-helical content across the
residues
to
is calculated by the formula:
|
|
|
(44) |
|
|
|
|
where the score function for the
angle is defined as:
|
(45) |
and the score function for the
hydrogen bond is defined through a hBond
colvar component on the same atoms.
List of keywords (see also 10.4.4 for additional options):
This component returns positive values, always comprised between 0
(lowest
-helical score) and 1 (highest
-helical
score).
The block dihedralPC {...} defines the
parameters to calculate the projection of backbone dihedral angles within
a protein segment onto a dihedral principal component, following
the formalism of dihedral principal component analysis (dPCA) proposed by
Mu et al.[58] and documented in detail by Altis et
al.[2].
Given a peptide or protein segment of
residues, each with Ramachandran
angles
and
, dPCA rests on a variance/covariance analysis
of the
variables
. Note that angles
and
have little impact on chain conformation, and are therefore discarded,
following the implementation of dPCA in the analysis software Carma.[29]
For a given principal component (eigenvector) of coefficients
,
the projection of the current backbone conformation is:
|
(46) |
dihedralPC expects the same parameters as the alpha
component for defining the relevant residues (residueRange
and psfSegID) in addition to the following:
List of keywords (see also 10.4.4 for additional options):
-
residueRange: see definition of residueRange in sec. 10.4.1 (alpha component)
-
psfSegID: see definition of psfSegID in sec. 10.4.1 (alpha component)
-
hBondCoeff: see definition of hBondCoeff in sec. 10.4.1 (alpha component)
-
angleRef: see definition of angleRef in sec. 10.4.1 (alpha component)
-
angleTol: see definition of angleTol in sec. 10.4.1 (alpha component)
-
hBondCutoff: see definition of hBondCutoff in sec. 10.4.1 (alpha component)
-
hBondExpNumer: see definition of hBondExpNumer in sec. 10.4.1 (alpha component)
-
hBondExpDenom: see definition of hBondExpDenom in sec. 10.4.1 (alpha component)
- vectorFile
File containing dihedral PCA eigenvector(s)
Context: dihedralPC
Acceptable Values: file name
Description: A text file containing the coefficients of dihedral PCA eigenvectors on the
cosine and sine coordinates. The vectors should be arranged in columns,
as in the files output by Carma.[29]
- vectorNumber
File containing dihedralPCA eigenvector(s)
Context: dihedralPC
Acceptable Values: positive integer
Description: Number of the eigenvector to be used for this component.
Configuration keywords shared by all components
The following options can be used for any of the above colvar components in order to obtain a polynomial combination or any user-supplied function provided by scriptedFunction (see 10.4.4).
- name
Name of this component
Context: any component
Acceptable Values: string
Default Value: type of component + numeric id
Description: The name is an unique case-sensitive string which allows the
Colvars module to identify this component. This is useful, for example,
when combining multiple components via a scriptedFunction.
- scalable
Attempt to calculate this component in parallel?
Context: any component
Acceptable Values: boolean
Default Value: on, if available
Description: If set to on (default), the Colvars module will attempt to calculate this component in parallel to reduce overhead.
Whether this option is available depends on the type of component: currently supported are distance, distanceZ, distanceXY, distanceVec, distanceDir, angle and dihedral.
This flag influences computational cost, but does not affect numerical results: therefore, it should only be turned off for debugging or testing purposes.
Advanced usage and special considerations
Periodic components.
The following components returns
real numbers that lie in a periodic interval:
- dihedral: torsional angle between four groups;
- spinAngle: angle of rotation around a predefined axis
in the best-fit from a set of reference coordinates.
In certain conditions, distanceZ can also be periodic, namely
when periodic boundary conditions (PBCs) are defined in the simulation
and distanceZ's axis is parallel to a unit cell vector.
The following keywords can be used within periodic components (and are
illegal elsewhere):
Internally, all differences between two values of a periodic colvar
follow the minimum image convention: they are calculated based on
the two periodic images that are closest to each other.
Note: linear or polynomial combinations of periodic components
may become meaningless when components cross the periodic boundary.
Use such combinations carefully: estimate the range of possible values
of each component in a given simulation, and make use of
wrapAround to limit this problem whenever possible.
Non-scalar components.
When one of the following components are used, the defined colvar returns a value that is not a scalar number:
- distanceVec: 3-dimensional vector of the distance
between two groups;
- distanceDir: 3-dimensional unit vector of the distance
between two groups;
- orientation: 4-dimensional unit quaternion representing
the best-fit rotation from a set of reference coordinates.
The distance between two 3-dimensional unit vectors is computed as the
angle between them. The distance between two quaternions is computed
as the angle between the two 4-dimensional unit vectors: because the
orientation represented by
is the same as the one
represented by
, distances between two quaternions are
computed considering the closest of the two symmetric images.
Non-scalar components carry the following restrictions:
- Calculation of total forces (outputTotalForce option)
is currently not implemented.
- Each colvar can only contain one non-scalar component.
- Binning on a grid (abf, histogram and
metadynamics with useGrids enabled) is currently
not implemented for colvars based on such components.
Note: while these restrictions apply to individual colvars based
on non-scalar components, no limit is set to the number of scalar
colvars. To compute multi-dimensional histograms and PMFs, use sets
of scalar colvars of arbitrary size.
Calculating total forces.
In addition to the restrictions due to the type of value computed (scalar or non-scalar),
a final restriction can arise when calculating total force
(outputTotalForce option or application of a abf
bias). total forces are available currently only for the following
components: distance, distanceZ,
distanceXY, angle, dihedral, rmsd,
eigenvector and gyration.
Linear and polynomial combinations of components
To extend the set of possible definitions of colvars
, multiple components
can be summed with the formula:
|
(47) |
where each component appears with a unique coefficient
(1.0 by
default) the positive integer exponent
(1 by default).
Any set of components can be combined within a colvar, provided that
they return the same type of values (scalar, unit vector, vector, or
quaternion). By default, the colvar is the sum of its components.
Linear or polynomial combinations (following
equation (48)) can be obtained by setting the
following parameters, which are common to all components:
Example: To define the average of a colvar across
different parts of the system, simply define within the same colvar
block a series of components of the same type (applied to different
atom groups), and assign to each component a componentCoeff
of
.
Colvars as scripted functions of components
When scripting is supported (default in NAMD),
a colvar may be defined as a
custom function of its components,
rather than a linear or polynomial combination.
When implementing generic functions of Cartesian coordinates rather
than functions of existing components, the cartesian component
may be particularly useful.
An example of elaborate scripted colvar is given in example 10, in the
form of path-based collective variables as defined by Branduardi et al[11].
The required Tcl procedures are provided in the colvartools directory.
- scriptedFunction
Compute colvar as a scripted function of its components
Context: colvar
Acceptable Values: string
Description: If this option is specified, the colvar will be computed as a
scripted function of the values of its components.
To that effect, the user should define two Tcl procedures:
calc_
scriptedFunction
and calc_
scriptedFunction
_gradient,
both accepting as many parameters as the colvar has components.
Values of the components will be passed to those procedures in the
order defined by their sorted name strings. Note that if all
components are of the same type, their default names are sorted in the
order in which they are defined, so that names need only be specified
for combinations of components of different types.
calc_
scriptedFunction
should return one value of
type
scriptedFunctionType
, corresponding to the colvar value.
calc_
scriptedFunction
_gradient should return a Tcl list
containing the derivatives of the function with respect to each
component.
If both the function and some of the components are vectors, the gradient
is really a Jacobian matrix that should be passed as a linear vector in
row-major order, i.e. for a function
:
.
- scriptedFunctionType
Type of value returned by the scripted colvar
Context: colvar
Acceptable Values: string
Default Value: scalar
Description: If a colvar is defined as a scripted function, its type is not constrained by
the types of its components. With this flag, the user may specify whether the
colvar is a scalar or one of the following vector types: vector3
(a 3D vector), unit_vector3 (a normalized 3D vector), or
unit_quaternion (a normalized quaternion), or vector
(a vector whose size is specified by scriptedFunctionVectorSize).
Non-scalar values
should be passed as space-separated lists, e.g. ``1. 2. 3.''.
- scriptedFunctionVectorSize
Dimension of the vector value of a scripted colvar
Context: colvar
Acceptable Values: positive integer
Description: This parameter is only valid when scriptedFunctionType is
set to vector. It defines the vector length of the colvar value
returned by the function.
Next: Biasing and analysis methods
Up: Collective Variable-based Calculations (Colvars)1
Previous: Selecting atoms for colvars:
Contents
Index
http://www.ks.uiuc.edu/Research/namd/