| planeDistPot |
index |
potential term for restraining the distance between atoms and a plane.
Please use the helper function create_PlaneDistPot in the module
planeDistTools to simplify creation of this term.
This term was first described in
Chenqi Xu, Etienne Gagnon, Matthew E. Call, Jason
R. Schnell, Charles D. Schwieters, Christopher V. Carman,
James J. Chou, and Kai W. Wucherpfennig, ``Regulation of T
cell Receptor Activation by Dynamic Membrane Binding of the
CD3epsilon Cytoplasmic Tyrosine-Based Motif,'' Cell 135,
702-713 (2008).
constructor: PlaneDistPot(instanceName,
oAtom, xAtom, yAtom,
restraintList,
sim )
instanceName is a user-specified identifier
oAtom, xAtom, yAtom are atoms defining the plane.
restraintList is an optional XPLOR-style restraint table (string) described
below. The sim argument is an optional simulation.Simulation
specification [which defaults to the current Simulation.]
methods
planeNorm() - the current value of the plane normal.
addRestraints(restraintList) - add the specified XPLOR-style restraints
calcEnergy() - calc energy, returns the energy value.
calcEnergyAndDerivs(derivs) - calc energy, derivs, returns the energy value.
rms() - return the restraint rms violation
numRestraints() - return the number of restraints defined for this term.
violations() - return number of violations
info() - current info about the state of this instance
showRestraints(violated) - return info on restraints. Argument violated is
boolean specifying whether to return only
violated restraints.
showViolations() - return string containing pretty-printed info
on all violated restraints.
The following parameters can be set [defaults in square brackets]
oAtom - the plane-defining atoms
xAtom
yAtom
useSign - whether to consider the sign of the plane-atom distance.
If True, one can specify on which side of the plane the
atoms lay. [False]
nMono - number of monomers [1]
verbose - if true, sporadically spit out info [False]
scale - scale factor [1]
aveExp - exponential to use in sum averaging [6]
dOffset - potential offset [0]
hardExp - exponential in hard region of potential [2]
rSwitch - distance at which to switch from hard form [0.5]
softExp - exponential in soft region of potential [1]
asympSlope - slope in linear asymptotic region of pot [1]
threshold - threshold in violation calculation [0.5]
potType - type of potential: "soft", "hard", "gaussian", or
"sigmoid" [hard]
freedom - topology specification for the plane atoms or pseudo-atoms.
This is described in more detail in
planeDistTools.topologySetup.
The default, "group" allows the restraining plane to
rotate and translate only. "ignore" is appropriate if the
restraining plane is defined using actual atoms, "translate"
will allow the plane to only translate, "rotate" allows only
plane rotation, "fix" will fix the plane in space, and "free"
should normally not be used.
aveType - type of restraint averaging: "average", "center" or "sum" [sum]
showAllRestraints - boolean which changes the behavior of showViolations. If
this parameter is set to True, the behavior of
showViolations is modified such that all restraints are
printed. Violated restraints are indicated by an
asterisk in the first column. [False]
the above quantities may be retrieved using the member function form
quantity(), while they are set using the form setQuantity(value).
The energy function is defined as
if potType=gaussian:
scale * weight * exp( -1/2 * r^2/ hardExp^2 )
if potType=sigmoid:
scale * weight / ( 1 + ( dist / cdist )^hardExp )
if potType=HARD or r<rSwitch:
scale * weight * r^hardExp
potType=SOFT and r>rSwitch:
scale * weight *(a + b / r^softExp + asympSlope * r)
where
b = rSwitch^(softExp+1) *
(asympSlope - hardExp * rSwitch^(hardExp-1)) / softExp
a = rSwitch^hardExp - b * rSwitch^(-softExp) -
asympSlope * rSwitch;
The distance r is related to the calculated restraint distance d by:
if d < cdist - cMinus: r = cdist - d - cMinus
if d > cdist+cPlus-dOffset: r = d - (cdist + cPlus - dOffset )
otherwise, r = 0
The restraint distance d is calculated as
for aveTypes=average,sum:
d = sig(sumPow) [ |sumPow| ] ^(-1/aveExp)
where for aveType=average:
sumPow = sum_i sig(dot(q_i-p1, n)) * | dot(q_i-p1, n) |^(-aveExp) / Ni ]
for aveType=sum:
sumPow = sum_i sig(dot(q_i-p1, n))* | dot(q_i-p1, n) |^(-aveExp) / nMono
q_i is the position of the i-th atom, and Ni is the number
of atoms in the sum. p1 is the position of oAtom, while n is the unit
vector in the direction
(p2-p1) X (p3-p1),
where p2 is xAtom.pos() and p3 is yAtom.pos(). The function sig is
sig(x) = sign(x) if useSign==True
1 if useSign==False
for aveType=center:
d = | dot(sum_i q_i/Ni - p1, n) | * sig(dot(sum_i q_i/Ni - p1, n))
PlaneDist restraint table format:
ASSIgn <selection> <cDist> <cMinus> <cPlus> ! optional comment
where cDist is the nominal distance the the selection to the plane,
and cMinus and cPlus are lower and upper bounds, respectively.
The statement can be split across muliple lines, but the comment, if
specified, should be on the same line at cPlus.
WEIGHT <value>
Change the the per-restraint energy scale value from the default value
of 1 for restraints subsequently added.
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | ||
| ||