WHAT IF allows you to work with maps. Maps are a crystallographic invention.
Normally maps contain information about the electron density distribution in
space. The crystallographer tries to interpret this density in terms
of atomic positions. However, WHAT IF does not limit the use of maps to
electron densities. It is possible to put any space dependent property into
a map. For example, electrostatic potentials through space can be calculated
and shown at the screen; neighbour atom probabilities can be dispayed,
spatial probabilities for side-chain conformations can be represented as
a 3-D map, etc. A 3-D contouring subroutine takes care that these
maps can be contoured and shown at the screen.
The command MAP brings you in the MAP menu.
If you want to feed WHAT IF a map, then that map should of course have a
certain format. As a basis
I used the Groningen style MFF. There is a map conversion program in the CCP4
library that among others can create MFF-style maps.
The following is a description of the MFF:
The MFF is an unformatted file starting with eight introductory records
followed by the (electron) density records.
U, V, and W are defined as follows:
U = direction of first variable of three dimensional array.
V = direction of second variable of three dimensional array.
W = direction of the sections (U,V) in the whole map/array.
The following records should be present in fixed order:
1) TITLE (character*80)
2) A,B,C,ALPHA,BETA,GAMMA (In Angstroms and degrees)
3) STEPU,STEPV,STEPW (In Angstroms)
4) IDIRU,IDIRV,IDIRW
5) NDIVA,NDIVB,NDIVC
6) NU,NV,NW
7) UVWORG(3)
8) ((UVWMAT(I,J),I=1,3),J=1,3)
Thereafter NW times:
((DENSITY(I,J),I=1,NU),J=1,NV)
STEPU, STEPV and STEPW are the stepsize in respectively the U, V, and W
direction in Angstroms.
IDIRU = 1, 2, 3, when U along X, Y, Z;
IDIRV = 1, 2, 3, when V along X, Y, Z;
IDIRW = 1, 2, 3, when W along X, Y, Z;
NDIVA, NDIVB, and NDIVC are indicative of the step size with which this map
was calculated. Normally Fourier maps are calculated in steps of A/NDIVA,
B/NDIVB, and C/NDIVC along the three axes.
NU, NV, and NW are the number of points in the U, V, and W direction respectively.
These are the dimensions of the array in the program that is going to hold the
map.
UVWORG(3) contains the fractional coordinates of the first point in the first
section of the map (density(1,1,1)).
UVWMAT(3,3) holds the matrix that converts grid points into fractional
coordinates.
(Xfrac) = (UVWORG) + [UVWMAT] * (Ngrid-1)
in which Ngrid(i,j,k) is the (i,j)-th point of the k-th section of the map.
WHAT IF can read two kinds of formatted maps. 1) XPLOR maps. 2) The type
described below. This file format I invented just to allow everybody to
write a simple conversion program for his own file system. Also you can
locally change the routine MAP020 to make it read your file format rather
than mine.
The formatted maps have a header that must hold some basic information as
described ABOVE FOR THE (UNFORMATTED) MFF.
Header records have a format thAT consists of a 10 character record type
identifier, followed by the required data.
The minimal required header records are:
The number of steps along each of the three directions in the map.
This record has `STEPS` as record identifier.
The stepsize in these three directions. This record has `STEPSIZE` as
record identifier.
The position of the first point in the map (the lower-left-bottom point)
in fractional coordinates. This record has `ORIGIN` as record identifier.
The above parameters all refer to the map as it is in the file, if you
do not have your map organized such that A, B, and C run along the fastest,
medium and slowest running index in the map, you need to indicate how the map
is organized. This record has as record indentifier `ORDER`. Thereafter
to have to give X, Y, and Z in the order FASTEST, MEDIUM, SLOWEST running
index in the map. So for example if you have plates of density with A as
fastest running index (horizontal on the page if you read it), C as medium
index (vertical on the page if you read it), and the map has plates of density
along B, then you would give XZY.
If the coordinate file does not hold celldimensions, or the map does not belong
to the read coordinates, you can add a celldimension record. This record
Has as record identifier `CELL` and holds A, B, C, Alpha, Beta, Gamma
respectively.
Title records have as record identifier `TITLE` but are neglected by WHAT IF.
There should be an empty line between the header records and the data.
The data has to be written at per plate of density. For every plate the
plate number should be written as one line with format I6. The data
of that plate will be read like:
READ ((PLATE(I,J),I=1,NI),J=1,NJ)
where:
Plate is the density for one value of the slowest index.
J runs over the medium index
I runs over the fastes index
The data should be given as as many lines with format 6F12.0 as is needed
to cover all points in one plate.
The top of a formatted map could for example look like:
TITLE WHAT IF-X
CELL 36.18100 30.25300 35.80200 90.00000 90.00000 90.00000
STEPSIZE 2.01006 1.89081 1.98900
ORDER XYZ
STEPS 18 16 18
ORIGIN -0.20721 -0.16250 -0.33021
1
0.00000E+00 0.00000E+00 0.86000E+02 0.10000E+03 0.10000E+03 0.71000E+02
0.10000E+03 0.10000E+03 0.10000E+03 0.10000E+03 0.10000E+03 0.92000E+02
0.62000E+02 0.47000E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.14000E+02 0.67000E+02 0.10000E+03 0.94000E+02
0.10000E+03 0.10000E+03 0.97000E+02 0.88000E+02 0.10000E+03 0.10000E+03
0.10000E+03 0.10000E+03 0.93000E+02 0.68000E+02 0.44000E+02 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.72000E+02 0.10000E+03
etc.
Crystallographers will probably understand the above section on the format
of maps. Normal scientists do not have to worry about that, if you only use
WHAT IF generated maps, then WHAT IF will do all the worrying for you.
The first time a map is read, this takes a few seconds, especially if
a formatted map is read. You will
see that the second time you use the same map, it will have been converted to
internal WHAT IF format, and reading it will take almost no time at all.
The command GETMFF will cause WHAT IF to read a map of the MFF type (see above).
WHAT IF will read the map, figure out the scale factors, and then write the map
out in internal format. Every next time you read this same map, reading will
then only take a few seconds. To read maps you will only be prompted for
the map name.
This command writes the present default map out as a file according to
the above described MFF format. The file name will be suggested to you,
but you can overrule that. Also you will be prompted for the orientation
of the map (1,2,3 or 1,3,2). These are the aforementioned parameters
IDIRU,IDIRV,IDIRW. If you do not know what you are doing, give 1,2,3.
The 1,3,2 option is mainly added for crystallographers (who understand
this anyway) and for the not yet ready R2D2 option.
The command GETFMP will cause WHAT IF to read a formatted map.
WHAT IF will read the map, figure out the scale factors, and then write the map
out in internal format. Every next time you read this same map, reading will
then only take a few seconds. To read maps you will only be prompted for
the map name.
The command MAKFMP writes the present default map out as a file according to
the format above described. The file name will be suggested to you, but you
can overrule that.
The command GETXPF will cause WHAT IF to read a formatted XPLOR-style electron
density map.
WHAT IF will read the map, figure out the scale factors, and then write the map
out in internal format. Every next time you use this same map, reading will
only take a few seconds. To read maps you will only be prompted for
the map name.
This command can be used to change map associated parameters. These parameters
are:
the center of the part of the map to be contoured
the extend of this part
the contour levels (maximally 5 at present)
the colour per level
PARMAP allows for two ways to input the center of the block of gridpoints
to be contoured. You will first see the question: Do you want
to center on a residue. If you answer YES you will be prompted for a residue,
and the alpha carbon of this residue will then become the new center (in case
you give something without an alpha carbon in it, just the first atom of that
residue will be used). If you
answer with NO, you will be prompted for orthogonal (cartesian)
coordinates of the center of the part of the map that you want to contour.
You will also be prompted for the extend of the map. If you want to see
everything, just give rediculously large numbers (eg 1000, 1000, 1000 Angstrom),
WHAT IF will automatically check that you do not end up outside the map
boudaries.
As explained above, WHAT IF can deal with many (10) maps at the same time. However,
only one map can be active at a time. Because of the very fast way of
reading maps by WHAT IF, this is not such a problem, but the user needs to be
able to decide which map resides in memory. The command DEFMAP will prompt
you for the number of the map which should be in common. (The command SHOMAP
gives a numbered list of available maps).
This command makes WHAT IF forget about a map. You will be prompted
for its number.
The command INIMAP will remove all map information from WHAT IF's memory.
You might want to use SAVMAP before you do this.
SHOMAP will cause WHAT IF to show you which maps are presently available, and
what map header parameters and contouring parameters go with these maps.
The command SAVMAP will cause WHAT IF to prompt you for a file name. All
information related to maps will then be written in this file. You can later
restore the present situation with RESMAP.
The command RESMAP will cause WHAT IF to prompt you for a file name. If you
give it a file you earlier created with the SAVMAP command, then the
situation with respect to maps will be set to what it was at the moment
of that SAVMAP command. This include setting and reading of the default map.
The command SRFMAP will cause WHAT IF to create a map in which every grid point
has a value corresponding to the distance to the nearest atom. This is very
handy because contouring such a map at the proper level will create contours
that correspond with the accessible surface for a certain probe size. You
will be prompted for the ranges to use in the map generation. Thereafter
you will be prompted for a probe size. This does not have to be the size of the
probe of your interest, because every probe size between zero and the value
you give are later available to WHAT IF. The CPU time needed to generate the
map goes a bit worse than linear with the probe size. WHAT IF will then you a
little table with probe sizes and the corresponding contour level. You can
interpolate in this table in case your desired probe size is not in there.
You will be prompted for the resolution.
See Voorintholt et. al. J. Mol. Graph (1989) 7, 243-245 for an extensive
description of the algorithm used.
If you want to try to fill cavities in your molecule by mutating residues
into bulkier residues, or you want to see where you could try to dock a drug,
it is nice to know where large enough space is available to put in extra atoms
or drugs. The CAVITY option will create a density map
in which all non-zero points are inside small cavities. You will be propted for
the probe size. For drug docking, choose this a bit bigger than half
the diameter of the cavity you want top look for. For protein engineering (e.g.
predicting a val->ile mutation, set the probe radius at 1.0 if you want to play it
save, use 0.75 if you are a dare-devil.
Cavities with a diameter larger than twice the probesize will
not be detected. If you choose the probe size large (e.g. 5.0 Angstrom), you should
be prepared to go for a coffee while WHAT IF struggles with your problems.
After execution of the CAVITY option you should contour the map at level=1.
The holes that are indicated are such that it is likely that a drug will fit or
an atom that
has the right orientation with respect to the cavity volume can get a
carbon attached to it. In other words, if a valine C-gamma is placed with
the correct geometry towards this cavity, the valine could be mutated
into an isoleucine.
You will be asked if you also want to see caves. Caves are more or less tunnels
into the molecule, or surface dents. The probe can freely swim from the bulk
into a cave, but this same water can never reach a cavity. The parameters
TGHCAV and RELCAV determine how much of a dent or tunnel will be called
cave. If you use the option RELCAV a couple of times, even swallow dents
will be called caves, but if you use TGHCAV only deep tunnel will be called
caves.
Be aware that the resolution and the depth and width of dents/tunnels are
coupled. At a higher resolution only narrower, deeper tunnels are called
caves. At lower resolution also swallow surface dents will be called caves.
The default parameters are set to be reasonable for drug design purposes.
The option CAVVOL should be used shortly after the CAVITY option. It will contour
all cavities and caves, and it will put crosses inside these contoured areas.
These crosses are pickable and upon picking the cavity volume will be displayed.
Be aware that the volume indicated is a rough estimate of the real volume. This algorithm
simply counts the grid points that fall within the cavity, and multiplies that
number with the volume of one elementary cube in the grid.
The pickability of the crosses is adimistrated in the so-called second pick list.
Use the general command NOPIC2 to get rid of this pickability (needed when you get
sick of picking something you did not intend to pick).
The command AACAVI has to be use (shortly) after the command CAVITY.
AACAVI will list all atoms and put a value (the so called atomic value)
in the last column of the output if this atom touches
a cavity. If this last number on the atoms lines of the output is non-zero
then that does not yet mean that you can start mutating here, but rather,
if the value is zero, you can forget mutating at this position. There is a weak
correlation between the value listed and the degree of prominence with which
this atom points into the cavity or cave. The command COLVAL in the COLOUR
menu colours atoms as function of the atomic value that this option calculates.
The command SMLCAV does essentially the same as the command CAVITY. The
difference is that SMLCAV will prompt you for a (little) box in space
and it will then only calculate the cavities that fall within this little box.
This way, a cavity found with the CAVITY option can be calculated with
greater precission. Make sure that the whole cavity is contained in this
little box. I personally think this is a useless option, unless you want
to publish a figure in an article or so.
WHAT IF maps are cubically organised sets of grid points. The distance between
adjacent grid points is called the resolution. The shorter this distance the
higher the resolution, and the more precise the calculation based on the map.
CPU time of most options runs up linearly with the number of grid points, and thus
with the third power of one over the resolution.
WHAT IF normally estimates the highest resolution that can savely be used for
the option you requested. With the RESOLU command you can put an upper limit
on the resolution (e.g. RESOLU 1.0 will ensure that the distance between
adjacent gridpoints is never smaller than 1.0 Angstrom).
Use the RESOLU option again, and the resolution will be set at 0.0, indicating
to WHAT IF that it should use its own calculated values again.
In the paragraphs above the probe radius is mentioned several times. One can envisage
this as if a probe with this radius roles along the molecule and through all cavities
while labelling all gridpoints where it could come. This similar, but definitely not
identical to the Connolly or Ridchards way of roling spheres around molecules.
The default probe is water, which has a radius of 1.4 Angstrom.
With the PRBRAD command you can change the default probe radius.
Caves are more or less tunnels
into the molecule, or surface dents. A water can freely swim from the bulk
into a cave, but this same water can never reach a cavity. The parameters
TGHCAV and RELCAV determine how much of a dent or tunnel will be called
cave. If you use the option RELCAV a couple of times, even swallow dents
will be called caves, but if you use TGHCAV only deep tunnel will be called
caves.
Caves are more or less tunnels
into the molecule, or surface dents. A water can freely swim from the bulk
into a cave, but this same water can never reach a cavity. The parameters
TGHCAV and RELCAV determine how much of a dent or tunnel will be called
cave. If you use the option RELCAV a couple of times, even swallow dents
will be called caves, but if you use TGHCAV only deep tunnel will be called
caves.
GRAMAP will start the contouring process, and send the contours
to a MOL-item. If
there are too many vectors generated, intermediate results will be written to
a MOL-item, and contouring will be continued. Be aware that you will have to
use the PARMAP command first in order to get any sensible results.
If you use multiple contour levels, you will be prompted for one MOL-item
per contour level while contouring progresses.
If you display a map, you can choose to either give the contour lines
one selected colour, or give every line the same colour as the nearest atom.
The option GRACOL is a toggle switch that toggles between these two options.
Be aware, if you ask the maps to be coloured as function of the colour
of the nearest atom, most map display options will still ask you for a map
colour. This colour will than not be used. But stored so that if you
use GRACOL again to continue displaying maps in one single colour,
you dont have to go through the whole PARMAP procedure again.
With GRAXYZ you can contour in only one of the three orthogonal directions.
You will be prompted for the primary direction (X, Y or Z) orthogonal
to which the contouring will be done.
GRAXYZ will start the contouring process, and send the contours
to a MOL-item. If
there are too many vectors generated, intermediate results will be written to
a MOL-item, and contouring will be continued. Be aware that you will have to
use the PARMAP command first in order to get any sensible results.
If you use multiple contour levels, you will be prompted for one MOL-item
per contour level while contouring progresses.
The option CONMAP will prompt you for two residue ranges. It will generate
a map as described for the SRFMAP or CAVITY option. The difference is that in the
map generated by CONMAP the density is a function of the closeness of the
contacts between the two ranges. So, high density will be generated where-ever
atoms from the two separate ranges come close to each other, or where several pairs
of atoms from the two ranges contact each other in a small three dimensional
area.
Use PARMAP and GRAMAP to display the map. Zero as density value indicates no contacts.
100 is the upper limit that occurs only if the atoms more or less bump into each other.
The command AXMAP will cause WHAT IF to put a little axis system just outside
the orrigin of the present default map. This option does something, but that
is not what I intended that it should do.
Not all commands are immediately active in the MAP menu. By typing
MORE, more commands will be activated. (Use LESS to deactivate the
extra commands again).