The Calculate menu contains options for spock to calculate various
Spock has the ability to calculate the distance between sets of atoms
(and/or surfaces) and store the results in the ``distance'' parameter for
each atom. (For details on spock's atom parameters, see §
5.2.4). The user must provide two selection strings
(§5.3). These strings define two groups of points (Set 1
and Set 2) for the distance calculation. For each member of Set 1 (call
it point ``A''), spock will then find the member of Set 2 closest to
point ``A'', and call it point ``B''. The distance to point B is stored
in the distance property for point A, and the identity of point B is
stored in the ``distance partner'' property of point A. Note that the
calculation is not two-way by default. As just described, only the
properties of members of Set 1 are effected, the properties of Set 2 are
unchanged. An example will hopefully clarify what all this means:
Suppose you have a structure with two chains A and B. You wish to know
how far each atom in chain A is from chain B. You would do an ``Atom to
Atom'' distance calculation, and enter ``ch=a'' (chain A) as the
first set and ``ch=b'' (chain B) as the second set. For each atom
in chain A, spock will then find the smallest distance to chain B. This
distance will be stored in the distance property for the atom (of chain
A), and the identity (atom number) of the atom on chain B will be stored
in the distance partner property. Note that nothing has been done to the
atom properties of chain B. If you wish to find the closest pair of
interacting atoms, you can use the Statistics feature of the ``Calculate
Properties Math'' menu (§6.6.2) to
find the minimum value of the distance property for chain A. If that
minimum value is X, the ``list,d=X'' command will then tell the
identity of the atom that is closest to B.
Several of the calculations may take a while, so spock displays a progress
dialog which will allow you to stop the calculation. Be aware that
stopping a calculation in this manner will leave the distance property in
an indeterminate state.
- Atom to Atom: Prompts for Set 1 and Set 2, both of
which are sets of atoms. Calculates the distance as described
- Atom to Atom (inter-residue): This option also
calculates the distance between two sets of atom, but makes the
calculation ignores atoms in the same residue. Without this
option, if Set 1 and Set 2 contain overlapping sets of atoms, the
minimum distance for the atoms both sets share would be zero,
because the distance from an atom to itself is zero. Enabling
this option prevents comparison of the distance for atoms in the
- Atom to Surface: This option expects Set 1 to be
atoms, and Set 2 to be surfaces. The distance is returned in the
distance property. The distance partner is the distance partner
of the atom associated with the surface point. (See
- Surface to Surface: Set 1 and Set 2 are surfaces.
Distance partners are the associated atoms.
- Surface to Atom: Set 1 is a surface and Set 2 is an
atom. Distance partners are the associated atoms.
- Atom Center: and Van der Waal's Surface: These
options determine if the distance calculated is from the center of
the atom or the surface of it. Set 1 and Set 2 can be specified
independently, so that you can calculate the distance from the
center of Set 1 to the surface of Set 1, for example.
- Bi-Directional: By default, calculations are not
two-way, that is to say that a distance calculation of Set 1 to
Set 2 only sets the distance property for Set 1. Occasionally,
you may wish a distance calculation to be run both directions.
Selecting this check box will first find the minimum distance for
Set 1 to Set 2, and set the distance properties of Set 1, and then
run the calculation in the opposite direction to find the minimum
distances from Set 2 to Set 1 and set the distance properties for
This menu provides options for running a variety of calculations on atomic
properties, surface properties and maps. The options are grouped into
several categories based on how many properties are involved, or how if
the calculation is to be done on a per-residue basis. It is also possible
to perform calculations on a sliding window of sequential residues.
Calculations can be limited to a specific set of atoms or vertices via
entering a new selection string (the last option on the menu).
Selecting an option on this menu will lead to a series of menus and
prompts where the properties to be used are requested, as are any
Many of these features are also available via the command-line calculator,
- Add a constant: Displays a pop-up menu asking which to
which property a constant should be added. Next displays a prompt
asking for the constant. Finally, asks for the destination
property in which to store the result. The destination may be the
same as the source, but need not be. This allows for copying a
property array (by adding 0 and storing the result in a different
property) or clearing a property (multiply by 0 and store in the
- Multiply by a constant: Same as above, except for
- Apply a function: This option prompts for a function
to apply to the property. The function is passed to the command-
line calculator. This option is slightly different from the
standard command-line calculator in that the selection string is
applied, so the command only operates on selected atoms or
vertices. See the §5.5 for a full description of
the command-line calculator.
- Normalize property: Prompts for a property and then
prompts for one of ``Maximum, Minimum, Mean, Median, Sum, or
Entered Value''. The property is then normalized by dividing by
the specified value, and the result stored in the destination
- Simple Statistics: This option does
not change any values, but will calculate and print some simple
statistics on the property specified. Statistics include the
Mean, Median, Standard Deviation, Maximum, Minimum, Q1, Q3, IQR,
and Sum. Q1 and Q3 are the first and third quartiles,
respectively (25% of the data is above Q1 and 25% is below Q3.
IQR is the inter-quartile range, or Q3-Q1.) Calculating
statistics on a property or map also sets the following
environment variables for use in command files or with the
command-line calculator: $SP_N, the number of items in the
property; $SP_MEAN, the mean; $SP_MEDIAN, the
median; $SP_SD, the standard deviation; $SP_MAX,
the maximum value; $SP_MIN, the minimum value;
$SP_Q1, the first quartile; $SP_Q3, the third quartile;
$SP_IQR, the inter-quartile range; and $SP_SUM,
the sum of the data values.
- Stats on nonzero values: Same as above, but ignore values
The math on one property functions will apply to either atom properties,
vertex properties or potential or density maps. However, both the source
and destination properties must be of the same size. It is not allowed,
for instance, to do math on a vertex property and store the result in an
atom property or vice versa. The only exception to this is the ``Map Atom
Property to Surface'' option described below.
Unsurprisingly, these options add, subtract multiply or divide two
properties. The results are stored in a third property field which may be
the same as any of the other two properties, but need not be. The only
item here which needs explanation is ``Use DP's Property Two''. Enabling
this option will cause spock to use the property two of the distance
partner of the atom, instead of the atom itself. For instance if you
want to find the sum of the charges of an atom, and the closest atom to
it, you can calculate the distance (see §6.6.1),
enable ``Use DP's Property Two'', and then choose ``Add two properties''.
Select ``charge'' for each of property 1 and property 2, and any property
for the destination. Spock will then add the charge of each atom to the
charge of it's distance partner and store the result in the selected
Like their single-property counterparts, the math on two properties
functions will apply to either atom properties, vertex properties, or maps
and both properties or maps must be of the same size.
NOTE: The ``Divide two properties'' calculation will place ``-9999.999''
in the destination property for a given atom or vertex if a division by
zero was attempted at that atom or vertex.
The ``Swap'' menu option deserves special mention. As the name implies
this will swap the value of the two properties in memory for the
selected atoms. This could also be accomplished in more roundabout ways
by copying a property to a temporary property, etc., but the swap option
has the advantage of being easier to use and not destroying any other
When surfaces are created, each vertex is flagged as being ``owned'' by a
particular atom, and each atom has a list of vertices that are associated
with it. This option allows users to ``promote'' an atom property to a
surface property, and copy the atom property to all the vertices that are
owned by that atom. This option will first prompt for the atom property
to copy, and then prompt for the vertex property in which to store the
Be aware that he selection string applies to this mapping. The selection
string is used to delimit atoms not vertices, and then the mapping
is done only for the selected atoms. Vertices whose atoms were not
selected will not have any of their property values changed. For example
if the selection string is set to an=1, and atom charges are mapped
to surface charges, only vertices belonging to atom 1 (if there are any
such vertices) will have any charge changed. All other vertices will
These options allow users to average
or sum over residues, or find the maximum and or minimum over the residue.
All the atoms in the residue are set to the same value on exit. For
example, to average over a glycine residue, the destination property for
all atoms in the residue are set to the average of the source property.
These options are similar to the
Per-residue calculations, but a sliding window of ``N'' residues is used
to calculate the average, sum, max or min. ``N'' can be set via the
``Enter sliding window size'' option. These options are most useful for
smoothing a property. These options are particularly useful with the
selection string option (recall only selected atoms are used in
calculations). You could, for instance, calculate the average alpha
carbon b-factor of a sliding window of 10 residues.
This option prompts for the selection string that should be used to
determine which atoms or vertices are used in all calculations. If an
atom or vertex is not selected, its property values are not used in the
calculation, and its property values are not set by the calculation. This
includes using the property values to calculate averages, etc. If the
atom is not selected it's not included in the average computation. The
only exception to this rule is the ``Use DP'' option, where the
calculation is still performed if the distance partner is not selected.
If an atom's distance partner is 0 (not set), however, the computation is
not performed for that atom.
Spock uses several different algorithms for calculating surface areas and
volumes, which break down into two classes. The first class are
``atom-based'' surface areas and volumes, which are the surface area or
volume of a group of atoms. The second class is ``surface-based'' area or
volume. These are the area and volume of a pre-defined 3D surface as
constructed by the ``Alter surfaces'' menu.
For the atom-based surface area calculations, spock uses a variant
of the method of Shrake and Rupley  to calculate surface
areas. Simply put, this method involves constructing a test sphere that
has the radius equal to an atom's radius plus the probe radius (set to 1.4
Ångstroms, the radius of a water molecule for the accessible surface
area calculation, or 0 for the Van der Waal's surface). The test sphere
is constructed of a number (80, 320, or 1280) of equally-distributed
points. Each of these points is then queried to determine if it lies
within the expanded radius of any other atom. If so, the point is buried;
otherwise it's accessible. Each point on the probe sphere has an
associated area (a fraction of the area of the sphere). The surface area
is calculated as the sum of all of the accessible point areas.
For the surface calculations, the user is prompted for the atom selection,
the context atoms, and the color. The color is the single color used for
the display if ``Surface area dots'' is on in the Display menu. The atom
selection specifies the atom to surface. Finally, the context atoms are
atoms for which no surface is calculated, but which still cause collisions
and bury their neighbors. For example, if you have two neighboring
molecules, and you wish to know the area of the interface, you would 1)
first calculate the surface area of just the first molecule, and leave the
context set to none and 2) then calculate the surface area of the
first molecule, but set the context atoms to m=2, which will not
calculate the surface area of the second molecule, but molecule 2 will
still bury surface on the first molecule. The difference between the
reported areas is area buried on the first molecule by the interaction.
You could then reverse the calculations and determine how much area was
buried on molecule 2 in a similar manner.
A note on radii: surface area calculations are by their very nature,
highly dependent on the atomic radii on which they are based. You may
wish to read in the default.siz file via the File Open
Radius file menu option if you wish to compare results
between spock and other programs. Do this before constructing any
surfaces, or you'll just have to build the surface again. In my
experience, surface area calculations between different programs (even
different implementations of the same algorithm) always has about a 5%
error. Therefore, I feel it's best to compare only numbers generated with
the same program.
For the atom-based volume calculations, a grid approach is used.
A grid is constructed that covers the specified atoms, and each grid point
is flagged if it's inside the radius of an atom (or the expanded radius in
the case of the accessible volume). The total number of buried grid
points is multiplied by the volume represented by a single grid point to
give an estimate of the volume.
The menu options for atom-based areas and volumes are:
- Van der Waal's surface area: Shrake-and-Rupley surface area
with a zero probe radius. Just the sum of the areas of the atoms.
- Accessible surface area: Shrake-and-Rupley surface area with
an expanded probe radius (1.4Åby default). The sum of the
accessible surface area of the specified atoms.
- Van der Waal's volume: The volume occupied by the atoms.
- Molecular volume: This is the volume occupied by the atoms
and any reentrant volume. This should be roughly the same as the
volume of a molecular surface, as opposed to the
- Accessible volume: This is the volume of the atoms and the
excluded volume. This should be roughly the same as the volume of
an accessible surface.
For the surface-based calculations, spock requires a pre-defined surface.
The surface area is simply the sum of all the triangle areas of this
surface, while the volume is the sum of the volume of all tetrahedra
formed by the each surface triangle and the center of mass of the selected
surface points. Any interior cavities are accounted for in this method
because the orientation of vertices in a cavity is backwards which would
give a negative volume for that region. Note that calculated volumes will
be wildly inaccurate if you've selectively applied the ``Swap faces''
option of the ``Alter Surface'' menu. Also note that
calculating the volume of an interior cavity will report a negative volume
for the region. This is perfectly normal, and the volume inside the
cavity is the absolute value of the reported volume.
The relevant menu options:
- Area of constructed surface: This will prompt for a surface
selection string, and then sum the area of all triangles that are
completely included by the selection.
- Volume of constructed surface: This also prompts for a
vertex selection string and then reports the volume of the
The final options of the Volume/surface menu are parameter settings:
Spock has the ability to calculate electrostatic potential fields, called
phimaps. There are options for nonlinear calculations, non-linear
calculations using the perturbation method, different boundary conditions
and more. The number of options may be overwhelming at first, but the
calculations are actually quite easy to do, and reasonable defaults are
chosen, so that a simple calculation is a one-step process! There's a
tutorial on electrostatics calculations in §8.7.
The menu options are described here.
- Probe Radius: This option prompts
for the value to use for the probe water radius for the surface
area calculations. There is only one probe radius in spock,
although as a convenience, it may be set from several locations,
including the Alter Surfaces menu §6.4.5.
- Probe Resolution: This option specifies the number of
times that the test probe should be decimated for the accessible
surface calculation. The default of 1 is usually sufficient, but
2 or 3 can be entered as well. This will significantly slow the
accessible surface area calculation.
- Run PB solver: This option runs spock's
Poisson-Boltzmann equation solver to determine the electrostatic
potential on the current grid. Spock uses a finite difference
algorithm to solve the PB equation. If you already have a charged
system (either from manually setting the charges §
5.2.4 or from reading a charge file §
6.1.1) this is the only option you actually
need to use. Press it, and spock will calculate the potential.
- Interpolate to atoms/surfaces: If you've done an
electrostatic calculation, this option will determine (by
trilinear interpolation) the potential at each atom and place it
in the potential (p) property for the atom. If any surfaces are
defined, spock will also interpolate the surface potential at each
vertex and store it in the vertex potential (vp) surface
property. When this interpolation is done, if the current
surface or worm spectrum property is the potential, the spectrum
properties are re-calculated based on the new potential.
- Electrostatic parameters: This option displays a
dialog box where the parameters for the electrostatic calculation
may be set. The individual parameters are discussed below.
- Nonlinear calculation: This option toggles the
nonlinear calculation, where additional (nonlinear) terms are
added to the equation. This option increases the calculation time
quite a bit. The nonlinear flag is ignored if the salt
concentration is zero.
- Perturbation method for nonlinear: This option
approaches the nonlinear calculation by first solving the
linearized PB equation, and then iteratively adding in an
increasing fraction of the nonlinear term. This option may speed
convergence of the nonlinear equation.
- Interpolate final map (fast) vs. Calculate final
map (accurate): These options determine how spock completes the
electrostatics calculations. Spock uses a multi-grid method to
solve the PB equation, first on a 3x3x3 coarse grid, and then on
successively finer grids. The default final grid size 65x65x65,
although that can be changed. The Interpolate final map option
tells spock not to iterate on the final grid, but simply to use
the interpolated values. Calculate final map, however,
indicates that spock should iterate the PB equation on the final
grid, which will be slow, but it will give a more accurate final
- Map 1 vs. Map 2: There are two slots for phimaps
in spock. This setting determines the current map. New
calculations are always done in the current map. Recall that it's
possible to load electrostatic maps from programs like DelPhi and
do direct comparisons between the maps (§6.1.1).
You should select which map slot you want the phimap to go into
before reading a map.
- Delete map 1 and Delete map 2: Electrostatic
potential maps may take large amounts of memory. Theses options
will delete the specified map and reclaim the memory.
- Boundary conditions: These options specify how the
grid boundary is to be charged when performing PB calculations.
Zero indicates that the boundary is to be uncharged.
Dipolar means that the charge on the boundary points estimated
from the distance from each grid point to the centers of
positive and negative charge on in the grid (i.e. only two
points). Coulombic indicates that boundary charges are
calculated by summing over all charges at each boundary point.
Focusing, not yet available, indicates that the boundary
charge should be taken from a larger potential grid.
The various electrostatic parameters are:
This option prompts for a selection string and calculates the total mass
for all atoms in the selected set by looking up the atomic masses in the
internal periodic table. If no hydrogen atoms are included in the
selection, a warning will be printed that the calculated mass may not be
what you want.
option prompts for a selection string and calculates the mass for all
residues that have any atom in the selected set by looking up the
residue mass in an internal table. This mass includes hydrogen atoms.
This option prompts for a selection string and then calculates the radius
of gyration for the selected atoms by the formula: where
is the distance from atom i to atom j and n is the number of atoms
in the selection.
This option prompts for two atom selections, which should each contain the
same number of atoms. The user is also prompted for a destination atom
property where the calculated deviation should go. The deviation
(distance) between corresponding atoms in each set are calculated, and the
result stored in the selected destination property (e.g. distance). The
total RMS deviation is also displayed. Of course, for comparing two
structures, it's probably a good idea to superimpose them first with the
Superimpose option of the Modeling menu.
This option will compute the geometric center of the coordinates for the
selected atoms. The mass of the atoms is not used.
This option will compute the center-of-mass of the coordinates for the
selected atoms. The mass of the atoms is taken from the internal periodic
table and the atom type that was assigned when the PDB file was read.
- Temperature: the temperature of the calculation in Kelvin.
- Interior dielectric: The dielectric constant to use for the
interior of the protein.
- Exterior dielectric: The dielectric constant to use for the
exterior of the protein.
- Water radius: The water radius is used to determine interior
vs. exterior of the protein.
- Stern radius: This is the ion-exclusion radius. It
influences the local Debye factor in the vicinity of the protein
if the salt concentration is not zero.
- Ionic strength: This is the salt concentration to use in
- Grid dimension: The cubic dimensions of the finest grid.
This value should be a power of 2 + 1 (i.e. ). If another
value is entered the nearest value is used instead.
Unless you have extraordinary amounts of memory and time, 129 is
the maximum value you should use here, although that's not a
hard-coded limit. However, if you think you want to go higher
than this, think again!
- Cutoff value: This value specifies (in parts per million)
the agreement necessary for spock to stop iterating for a
particular grid size.
- Smoothing weight: During the interpolation process, spock
performs a smoothing step where the potential of the center point
is averaged with its 6 neighbors. The smoothing weight is the
weight to be applied to the center point. The default of 6 gives
the current point a weight equal to all of its neighbors, 12
would weight the center point twice as heavily as the neighbors
and, 1 would weight the center point the same as each neighbor.
- SOR parameter: This is the successive overrelaxation
parameter. Spock uses successive overrelaxation to optimize speed
of the PB calculation. The timing is very sensitive to this
parameter. Don't change it unless you really know what you're doing.
Here's a hint: I wrote the code, and I don't change this. 'Nuff
- Maximum iterations: This is the maximum number of
iterations to run a PB calculation on any given grid size. When
this number of iterations has been reached, the calculation
terminates even if the specified cutoff value has not been
Tue Sep 14 16:44:48 CDT 1999