http://www.biohedron.com/msp.html
Introduction
Examples
MSRoll
MSForm
MSDraw
Atom Property Commands
Standard File Formats
My File Formats
The programs are written in ANSI C. A makefile is included with the source
code. Depending upon your make of computer, you may need to change the compiler
name and flags at the macros at the top of the make file. To make all of
the programs, type "make all". The programs share many source
files. It may be necessary to increase some of the limits in the header
files to handle large proteins. You can obtain sample scripts from: http://ftp.biohedron.com.
Please send me E-mail (connolly@best.com) if you run into any difficulties.
In the following examples, the indentations are used to help indicate
the "tree" structure of the script file; they are optional. The
user can choose the molecules to use as ligand.pdb and protein.pdb. However,
the sphere center in the omega.ms file must be modified according to the
molecule of interest. All script files can be found at: ftp.biohedron.com.
% msroll -m protein.pdb -p 1.8 -v protein.vol -a protein.area
% msroll -m protein.pdb -j protein.dot -o dots.iv
% msroll -m protein.pdb -q protein.pqms -o arcs.iv
% msroll -m ligand.pdb -t ligand.vet
% msroll -m protein.pdb -t protein.vet
% msroll -m protein.pdb -f fine.ms -t fine.vet -o protein.iv
% msroll -m protein.pdb -r atoms.radii -a protein.bca bca
where fine.ms is:
atoms angle = 1.5 # angle for most of surface
sphere sph 10.0 80.0 20.0 10.0 # please change center
region = center inside sph # define a set of atoms
region angle = 0.5 # set angle parameters
and where atoms.radii is:
1 | 1.60 | 0.57 | O=C |
2 | 1.70 | 0.66 | OH |
3 | 1.60 | 0.57 | OCO |
4 | 1.65 | 0.70 | NH |
5 | 1.70 | 0.70 | NH2 |
6 | 1.75 | 0.70 | NH3 |
7 | 1.85 | 0.77 | CH |
8 | 1.90 | 0.77 | CH2 |
9 | 1.95 | 0.77 | CH3 |
10 | 1.80 | 0.67 | CAr |
11 | 1.90 | 0.70 | CHAr |
12 | 1.90 | 1.04 | S |
21 | 1.50 | 1.50 | Metal |
31 | 2.00 | 0.77 | CAlNu |
32 | 1.77 | 0.67 | CArNu |
33 | 1.40 | 0.66 | OSuNu |
34 | 1.64 | 0.57 | O=CNu |
35 | 1.64 | 0.57 | OPONu |
36 | 1.55 | 0.65 | NArNu |
37 | 1.86 | 0.70 | NAlNu |
38 | 1.80 | 0.95 | P |
99 | 1.00 | 0.50 | H |
% ivview dots.iv arcs.iv protein.iv
Computing an interfacial surface between two protein densities:
% msform -t protein.vet -w 2.0 -o protein.avs
% msform -t ligand.vet -w 2.0 -o ligand.avs
% msform -d protein.avs -y ligand.avs -r 3.0 -o interface.vet
% msdraw -i cpk.ms -r cpk.rgb
% imgview cpk.rgb
where cpk.ms is:
molecule protein protein.pdb
protein color = green # default, mainly carbons
protein ball = 1.8
oxygens = atom matches O
oxygens color = red
oxygens ball = 1.6
nitrogens = atom matches N
nitrogens color = blue
nitrogens ball = 1.7
sulfurs = atom matches S
sulfurs color = yellow
sulfurs ball = 2.0
ball_and_stick # no sticks since no connect
atom_coloring # use colors specified above
% msdraw -i bas.ms -r bas.rgb -s 600
% imgview bas.rgb
where bas.ms is:
light_source -0.5 1.0 1.0
shading_model 0.2 0.2 0.4 0.2 2.0
molecule protein protein.pdb
tolerance 0.25
elbow 2.5
connect protein # creates sticks
protein color = green
oxygens = atom matches O
oxygens color = red
nitrogens = atom matches N
nitrogens color = blue
sulfurs = atom matches S
sulfurs color = yellow
ball_and_stick
atom_coloring # use colors specified above
Rendering and plotting a shape-colored model of a protein in stereo:
% msform -t protein.vet -r 5.0 -o protein.veto
% msdraw -i omega.ms -r left.rgb -p left.ps -a 6.0
% msdraw -i omega.ms -r right.rgb -p right.ps
% imgview left.rgb & ; imgview right.rgb &
% xpsview left.ps & ; xpsview right.ps &
where omega.ms is:
molecule protein
read_polyhedron protein.veto
contour u 3.0 12.0 ygb # pre-defined color ramp yellow-green-blue
% msdraw -i opacity.ms -r opacity.rgb
% imgview opacity.rgb
where opacity.ms is:
molecule protein protein.pdb
connect protein # creates bonds
protein color = green
oxygens = atom matches O
oxygens color = red
nitrogens = atom matches N
nitrogens color = blue
sulfurs = atom matches S
sulfurs color = yellow
ball_and_stick
atom_coloring # use colors specified above
read_surface protein.pqms
uniform_opacity 0.5 0.5
% msdraw -i component.ms -r component.rgb -s 900
-z 0.4
% imgview component.rgb
where component.ms is:
rotation 45.0 0.0 1.0 0.0
molecule protein protein.pdb
connect protein
protein color = red
ball_and_stick
atom_coloring
read_surface protein.pqms
component_coloring white green blue
component_opacity 0.5 1.0 1.0
The program reads atomic coordinates in Protein Data Bank format. The program computes a piecewise quartic molecular surface envelope surrounding the molecule of interest. The program can write this surface to disk as a binary file that is subsequently read by MSDraw. It also identifies internal cavities and computes analytical areas and volumes. It can print out the contact area, reentrant area, molecular area, accessible area and solvent-excluded volume of the entire molecule and of each interior cavity. The program can also write a disk file giving the areas of each atom. The program uses the binary surface file computed earlier and subdivides each curved face into several flat triangles for display on a three-dimensional interactive graphics display system. This gives a polyhedral surface for a protein molecule, with each internal cavity surrounded by a separate polyhedron. The edges and triangles of the polyhedral surface output disk file are labeled by component (cavity) number (the outer surface is component 1), atom number and color number. The atom coloring and tessellation fineness are determined by the atom-property file given with the -f flag. Polyhedral output can be written in WHATIF, AVS, and SGI Inventor formats. The dot surface component of the program computes a dot surface for a molecule. It is similar to the MS dot surface. The execution time increases linearly with the number of atoms, and as the cube of the probe radius. The flags are:
-a area_file [ bac | bca ]
This command cause a disk file of areas to be written. In the simplest situation,
where there is no second argument for the area command, the output file
contains one line for each atom. This line gives the contact, reentrant,
molecular (contact+reentrant) and accessible areas of the atom. If the third
argument is specified, the areas will be broken down by both atom and component
(outer surface or cavity), with primary and secondary sorting fields determined
by bac (by atom and component) or bca (by component and atom). The two alternative
arguments given above determine whether the record order of the file is
determined mainly by atom and secondarily by component, or vice-versa.
-e filename
The error message file (also contains informative messages).
-f fineness_angle | fineness_file
Either an angle, in radians, or a file name for a file specifying atom-properties,
such as tessellation subdivision angle (fineness). The fineness file can
also restrict which atoms of the pdb file end up in molecule's atom set.
One includes commands such as:
crn -= residue == HOH
This removes that waters from the input molecule crambin. The molecule name
of ../pdb/1crn.pdb is crn. The leading digit is removed, because identifiers
must begin with a letter. The name inferred from the pdb file name can be
overridden with the &endash;n name flag.
-g grid_spacing
This command specifies the fineness of the probe-collision grid; the neighbor
grid is twice this. The purpose of these grids is to speed up neighbor-finding
(cube grid) and probe collision checks (bit grid). It is not possible to
use one grid, but not the other. The grids are optional. If not given, no
grid will be used. There is a certain amount of overhead involved with the
grids, so it is not advisable to use them unless the molecule has at least
one thousand atoms.
-j dot_surface_file name.
All the surface points will be written to the disk file, along with their
normal vectors, if calculated. The records will be in ascending atom number
order. Its format is given below, in the file formats section.
-k dot_area_file_name
This file gives the areas from the dot surface algorithm. Its format
is given below, in the file formats section. The output file consists of
one record per atom, and each record has three fields: contact area, reentrant
area, and molecular area.
-m pdb_file
The atomic coordinates, in pdb format.
-n name
The name of the molecule, overriding the one inferred from the name of the
pdb file.
-o filename
Inventor output file name. Anything written for -d, -j, -q and -t flags
will also be written to this file, but in SGI Open Inventor format.
-p probe_radius
The minimum allowed value is 0.0. This gives a van der Waals surface. Large
values cause the program to be very slow. Default=1.5.
-q binary_surface_file name
The binary surface file is written to disk. Its format is given in the implementation
manual.
-r radii_file
The van der Waals radii (see My File Formats).
-t polyhedral_surface_file name
The polyhedral surface file is computed and written to disk. This file is
read by msdraw. Its format is given below, in the my file formats section.
Currently supported formats are: "vet" (the default), "sgi"
for Silicon Graphics, Inc. Inventor format (ascii), "whatif" (for
Gerrit Vriend's WHATIF program).
-x integer
There is now more user control over cusp trimming. The maximum order of
cusp edge intersections trimmed can be specified by an integer, where the
integer is 0, 1, 2 or 3. Zero is recommended for rerunning large proteins
that generate cusp trimming error messages on the first run.
-v volume_file
This command causes the volume output file to be written. The information
includes the total area and volume of the molecule, plus a table of cavity
areas, volumes and centers. Both analytical and polyhedral volumes and areas
are given. Do not expect the numerical and analytical numbers to match too
closely, unless the triangulation is very fine.
-y pattern file
This program reads atomic coordinate files in protein data bank (PDB) format.
The program selects only those PDB input file records that begin with ATOM
or HETATM. The program also replaces embedded blanks in some atom names
by an underscore. The program has a default set of atomic radii, specified
in the mspattern.h file. Van der Waals radii are assigned by a two-step
procedure. First the residue name and the atom name in the PDB file are
used to determine that atom type, which is an integer, and then the atom
type is used to assign a radius. The defaults in the mspattern.h file can
be overridden in the following way. One prepares two files, a pattern file
and a radius file, and then reads them with the -r and -y flags. For the
formats of these file, see My File Formats.
MSForm
The density code from msroll and the density and solid angle code from msdraw have been removed and used to create a new program: msform. Looking at it another way, msform is made up of the old (version 2.9) msden and omega. The program can convert a polyhedron to a density, an vice-versa. It can also do shape measurement for either the polyhedron or the density. There are many things this program can do, and what it does is determined by which command line flags are present. Typing just the program name will print out all the different usages, but without the explanatory paragraphs below. The flags:
-t polyhedral input file in vet format
-n second polyhedral input file
-h third polyhedral input file
-d density input file
-y second density input file
-o output file (polyhedron or density)
-l density contour level (default = 0.5 for one density)
-x extension or expansion radius
-w density cube width
-r intersection sphere radius
It can compute the curvature of the polyhedral surface by intersecting the polyhedron with spheres where the sphere centers are defined by the polyhedron vertices. By measuring the fraction of the region of each sphere that lies inside the solvent-excluded volume, one can quantitate surface region convexity and concavity. The program can write out the given polyhedral molecular surface with the solid angle written after the vertex coordinates.
msform -t polyhedron -r radius -o polyhedron
msform -t polyhedron -r radius -x increment -o polyhedron
This computes one solid angle for each polyhedron vertex.The purpose of this command is to measure the curvature of protein surfaces. The centers of the evaluation spheres are taken from the vertex coordinates of the polyhedron. The first vertex value field (u) is replaced by the solid angle of the evaluation sphere centered at that point. If the -x parameter is specified, the radius, radius + increment, radius + 2 * increment spheres will generate three values for the vertex (u, v, and w). If the analytical sphere-polyhedron algorithm fails, a numerical algorithm is used to compute omega. The program prints out the number of omegas computed numerically.
msform -t polyhedron -n polyhedron -r radius -o polyhedron
This computes solid angles for two polyhedra at once. This command uses two polyhedra (-t and -n). The first (-t) polyhedron is the one that will have values assigned to its vertices, and will be written as output (-o). The three vertex value fields will contain three solid angles. The first will be the solid angle subtended by the primary polyhedron as measured by a sphere centered at a vertex of the primary polyhedron. The second will be the solid angle subtended by the opposing polyhedron as measured by a sphere centered at this same vertex of the primary polyhedron. The third number will be the sum of the first two. It will be close to four pi steradians for a close fit.
msform -t polyhedron -n polyhedron -r radius -x extension -o polyhedron
This feature is used to identify surface buried in a protein-protein interface. The first (-t) polyhedron is the one that will have values assigned to its vertices. The number specified as the extension is the distance the intersection sphere is moved out along the normal vector. If one specifies for both the radius and extension parameters the same number as the probe radius used to compute the two protein surfaces, then the intersection sphere will have the same center and the same radius as the probe tangent to that vertex. The first (u) and third (w) fields in the primary polyhedron vertices will be given the value zero, and the second field (v) will be the solid angle of the intersection of the sphere with the second (-n) polyhedron. If that value is positive, that indicates that the probe collides with the opposing protein, and so that vertex is buried. The values are written into the value fields of the output (-o) polyhedron.
msform -t polyhedron -n polyhedron -h polyhedron -r radius -o polyhedron
The fifth usage style computes three solid angles, one for one protein, one for another protein, and their sum, as did an earlier style, but differs in that there are now three polyhedra. The first (-t) polyhedron is used solely to define vertices to center intersection spheres at. The second (-n) and third (-h) polyhedra are the ones that are intersected with the sphere. The output polyhedron is the first polyhedron, but with three vertex values set. The purpose of this feature is to use as the first polyhedron not a protein surface polyhedron, but an interfacial surface computed by a previous run of msform (see below).
The program converts a polyhedral molecular surface into a three-dimensional array of cubes, each with a number between 0.0 and 1.0. The cubes entirely within the polyhedron receive a value of 1.0. The cubes entirely outside the polyhedron receive a value of 0.0. Cubes entirely inside the small surfaces bounding internal cavities also have zero densities. Cubes intersecting the polyhedral surface have densities somewhere inbetween 0 and 1. The solvent-excluded density file is written to disk in AVS field format.The density runs between 0.0 (no occupancy) and 1.0 (full occupancy). It is an occupancy density, not an electron density.
msform -t polyhedron -w width -o density [-v inventor_file]
This converts a polyhedron to a density. The density will have the value 1.0 inside the surface and 0.0 outside, with intermediate values at the surface. The density file format is AVS.The program reads a density file in AVS field format.
msform -t polyhedron -d density -r radius -o polyhedron
The program measures the shape of the density in the vicinity of each vertex of the most recent polyhedron. A sphere is constructed centered at each vertex and the cubes partially or entirely within the sphere are summed. The polyhedron is modified, so that the local volume normal vector is written into the normal vector fields, and the amount of two-foldness in the first (u) of the three value fields.
msform -d density [-l level] -o polyhedron
The program computes a polyhedral molecular surface from a density. The density is an occupancy density, not an electron density. The level parameter specifies what level to contour at. The default is 0.5. The radius parameter specifies what radius to use for computing the local volume and normal vector. A sphere is constructed centered at each cube center and the cubes partially or entirely within the sphere are used. The smooth=1 parameter means use smoothed density, where the average value of the density inside the sphere of the specified radius is used. For smooth=0, the value of the density at the sphere center is used as the function to be contoured. By converting a polyhedron to a density, and then converting it back again, but with smoothing, one ends up with a smoothed polyhedron.
msform -d density -y density [-r radius] [-s 0|1] -o polyhedron
The program computes a polyhedral interfacial surface between the two given densities. The two densities need to have the same cube width. A third density is temporarily created. The third density is the first density minus the second density. The contour level is always 0.0. A sphere is constructed centered at each cube center and the cubes partially or entirely within the sphere are used. The radius parameter specifies what radius to use for computing the local volume and normal vector. The smooth=1 parameter means use smoothed density, where the average value of the density inside the sphere of the specified radius is used. For smooth=0, the value of the density at the sphere center is used. The cubes near the interface will have values near 0.0 and vectors that point from the first density to the second. If the interface is not a close fit, or if the cubes are small enough to fit in the gaps between the densities, there will be holes in the interfacial surface, unless smoothing is used. The polyhedral surface created is assigned to the current molecule (which is just a dummy molecule).
msform -d density -y density -t polyhedron -r radius -o polyhedron
The program measures the shape of the two given densities (-d, -y) in the vicinity of each vertex of the given (-t) interface-bisecting polyhedral surface. The values are written in the value fields of the output (-o) polyhedron. The two densities need to have the same cube width. If a molecule has more than one density, the results are unpredictable. A sphere is constructed centered at each vertex and the cubes partially or entirely within the sphere are used. The interface polyhedron is modified, so that the local volume normal vector stored into the normal vector fields, and the shape in the three value fields. The first value (u) is the amount of two-foldness for the first density, the second value (v) is the amount of two-foldness in the second density, and the third value (w) is the local volume of the sum of the two densities. It will be close to 1.0 for regions where the fit is tight. The two-fold amounts should be similar for a close fit. The purpose of this computation is to provide input for a protein docking algorithm under development.
msdraw -i scriptfile -r rasterfile [format] -p plotfile [format] -v vectorfile
The program reads the surface files computed by MSRoll and creates three
kinds of output files: (a) an image file of pixels that shows a smooth surface
with hidden-surface elimination, (b) plots with hidden-line elimination,
and (c) vector files in SGI Open Inventor format. Images can be written
in 3 formats: sgi, sun and avsimage. The default format is "sgi"
image, which is a 24-bit color format. For sun or avsimage formats, add
the word sun or avsimage after the file name. The "sun" format
produces the sun rasterfile format, which can be displayed under X Windows
using the xview or xloadimage utilities. This is an 8-bit color format using
a color lookup table. For AVS image format, use "avsimage" (for
AVS field format, use "avsfield"). Plot output file format is
either PostScript (the default) or "hpgl", which is HP-GL (Hewlett-Packard
Graphics Language). MSDraw reads a script file in order to define the scene.
The script file name is given after the -i flag. Its format and content
are discussed below.
Optional Command Line Arguments
-s image_size
The image is always square, and the integer specifies its width (default
512).
-x plotx
-y ploty
This gives the plot dimensions. The default is 8.5 for plotx and 11.0 for
ploty.
-b border
The argument is a floating-point number in angstroms. The window is expanded
in all four directions (left, right, bottom, top) by the amount given in
the border command. Default border value: 0.0.
-n alignment
Causes the window bounds to be rounded outwards to a multiple of the given
parameter. Default=1.0.
-t title
Affects plotting only. This title will be assigned as a comment in the PostScript
output file. I'm not sure whether embedded blanks are allowed. I'm also
not sure whether embedded is spelled embedded or imbedded.
-h header
The header can be either inventor or vrml. The inventor
option is the default and causes the SGI Open Inventor header to be written,
while vrml causes 3D output files to be written with a VRML header.
-z zclip
The clipping plane is assumed to be parallel to the xy plane, and the argument
must be in the range -1.0 to 1.0. The number is not in angstroms, but represents
a fraction of the z range of the molecules. That is, a value of 1.0 clips
nothing, a value of 0.0 clips through the middle, and a value of -1.0 clips
everything. For plotting and Inventor output, triangles that cross the clipping
plane will be truncated, and the new line that is introduced will be given
the vet file's triangle color, or the polyhedron color, if specified. Bonds
crossing the clipping plane will also be cut. See also the "no_clipping"
command.
-a stereo_angle
This command is used for producing stereo pairs. The molecules, clipping
plane (if present) and the light source will be rotated by the specified
angle. It may be necessary to use a border and perhaps also an
alignment parameter to make sure that the two images are drawn
to the same scale.
-g shading
The argument is flat for flat or faceted triangles, and smooth
for phong shading (default).
-f fineness
This parameter rarely needs to be specified. The argument is a floating
point number in the range 1.0 to 2.0, controlling the fineness of the sampling
in the rendering algorithm. If the fineness is too low, a few pixels will
be vacant; if it is too high, the computation will take longer. Default
fineness: 1.35.
Script (Scene Definition) File
-i script_file
The script file contains more complex information. A command cannot run
to more than one line. There cannot be two commands on one line. Each command
begins with a keyword defining the type of command. The format is free format.
Any characters after a # will be ignored and can be used as comments. Blank
lines are ignored. Keywords must be in lower case and cannot be abbreviated.
All filenames should begin with a letter. In the command descriptions below,
optional command arguments are enclosed in square brackets. When either
of two alternatives are acceptable, they are separated by a pipe (|) symbol.
Global Script Commands
These commands affect the whole picture. There are three commands that,
if present, should appear only at the top of the script file: rotation,
shading_model, and light_source. They are optional.
rotation angle x y z
This specifiea an angle (in degrees) and an axis. The vector need not be
of unit length, but it should never be 0.
shading_model depth ambient diffuse specular exponent
The arguments are all floating-point numbers. The first four numbers must
add up to 1.00. They give the fraction of the intensity (gray) levels to
assign to the relevant function. The last number is the exponent of the
cosine for the specular reflection (highlight). The depth parameter gives
the amount of depth cueing. The ambient parameter gives the brightness of
the object at the regions farthest away from the direction of the light
source. Default:
shading_model 0.0 0.0 0.8 0.2 2.0
light_source vx vy vz
The direction vector of a light source at infinity. The vector does not
need to be of unit length. Default: 0.5 0.5 1.0
After these commands, if present, come the descriptions of each molecule.
Each molecule is introduced with a molecule command, followed by
commands to read surface output files from msroll and to control
how the objects are displayed.
Commands for Reading Molecular and Surface Data
molecule name pdb_file [radii_file]
The name should be less than 40 characters. It becomes the name of the set
of atoms read in from the pdb file, and is used in the connect
command (see below). The radius file is optional; if missing, radii will
be taken from the mspattern.h file. The pdb_file should be specified, except
for special "pseudo-molecules" used to hold interfacial polyhedral
surfaces (see below).
read_surface filename
This command will render the molecular surface in the specified binary surface
file.
read_polyhedron filename
This command will render the polyhedral molecular surface in the specified
vet-format file, which should be an output file from the msroll
program. The msroll output file must be in vet format.
normals length
Vertex normals of the specified length will be drawn. There will be one
vector for each vertex of the polyhedron. Each vertex normal is the average
of the triangle normals of the triangles that meet at the vertex. Short
vectors (around 0.1) will give the look of a dot surface. As always, hidden-line
elimination is performed. The command should occur sometime after the read_polyhedron
command. It affects the plot only, not the rendered image.
ball_and_stick
This command will render a ball and stick model for image output and it
will draw a stick figure for plot output. The atomic coordinates are taken
from the current molecule file, the connectivity from that created by the
prior connect commands for this molecule. The radii of the balls
are determined by the ball field of the atoms of the current molecule, which
in turn is set by the atom-property commands pertaining to the current molecule.
This command will also render a tube model, in some circumstances. If there
are exactly two bonds to an atom, they have equal radii, and the value of
the elbow parameter (default = 2.0) is greater than 1.0, then the atom will
be drawn as an elbow (part of a torus), instead of as a sphere. This will
also occur if there are more than two bonds to the atom, provided that the
two fattest bonds have radii that are equal and larger than the radius of
the third fattest bond to the atom. To disable tubes, so that you always
get only balls for atoms, set elbow to 0.0 (see the elbow command, below).
The color argument affects the plotted output, only. If the color is not
specified, the plotted model will be black. The coloring for the rendered
model is taken from the color fields of the atoms as specified in the atom
property file commands pertaining to the current molecule.
Commands for Defining Object Coloring and Style
The colors below are predefined. The integers are used in ascii polyhedron
(vet) files, while the names are used in the msdraw script files.
number |
red |
green |
blue |
name |
0 | 0.25 |
0.25 | 0.25 |
black |
1 | 1.00 |
1.00 | 1.00 |
white |
2 | 1.00 |
0.00 | 0.00 |
red |
3 | 0.00 |
1.00 | 0.00 |
green |
4 | 0.00 |
0.00 | 1.00 |
blue |
5 | 0.00 |
1.00 | 1.00 |
cyan |
6 | 1.00 |
0.00 | 1.00 |
magenta |
7 | 1.00 |
1.00 | 0.00 |
yellow |
8 | 0.50 | 0.50 | 0.50 | grey |
9 | 0.75 | 0.75 | 0.75 | gray |
10 | 0.40 | 0.20 | 0.10 | brown |
11 | 1.00 | 0.40 | 0.00 | orange |
12 | 0.50 | 0.00 | 0.30 | purple |
13 | 0.00 | 0.00 | 0.30 | navy |
14 | 0.40 | 0.40 | 1.00 | sky |
15 | 1.00 | 0.50 | 0.50 | pink |
16 | 0.80 | 1.00 | 0.00 | yellow_green |
17 | 0.80 | 0.40 | 0.10 | tan |
define_color dark_green 0.0 0.5 0.1
This command defines new colors. The color name can be up to 15 letters.
There can be up to 256 colors.
input_coloring
This command applies only to polyhedral input files. The coloring is taken
from the hue field in the edge and triangle records of the vet file.
This command should occur after the read_surface or read_polyhedron
command.
atom_coloring
This command has no parameters. The hues are taken from the color field
of the atoms, as set by the atom property commands. This command should
occur after the read_surface or read_polyhedron command.
uniform_coloring hue1 [hue2]
The first hue is for the outer side and the second for the inner side, which
is visible only if there is clipping or transluscency. This command should
occur after the read_surface or read_polyhedron command.
component_coloring hue1 hue2 hue3
The first two arguments refer to the outer and inner sides of the outer
surface; the third argument refers to the inner (cavity) surfaces. This
command should occur after the read_surface or read_polyhedron
command.
shape_coloring contact_hue reentrant_hue
shape_coloring convex_hue saddle_hue concave_hue
This command should occur after the read_surface or read_polyhedron
command.
atom_opacity
The atom opacities are set by atom property commands. This command should
occur after the read_surface or read_polyhedron command.
uniform_opacity opacity1 [opacity2]
The uniform opacity argument is in the range 0.0 to 1.0. A value of 0.0
will make the surface invisible, a value of 1.0 will make it opaque. The
values 0.25, 0.50, and 0.75 cause every fourth, every other, and three out
of four pixels to be drawn, respectively. Other values are rounded to the
nearest of these five values. The words transparent (0.0), translucent
(0.5) and opaque (1.0) can also be used instead of numbers. This
command should occur after the read_surface or read_polyhedron
command.
component_opacity outer_surface inner_surface cavity
The component opacities are in the range 0.0 to 1.0. This command should
occur after the read_surface or read_polyhedron command.
shape_opacity contact_opacity reentrant_opacity
The opacity arguments are reals in the range 0.0 to 1.0. This command should
occur after the read_surface or read_polyhedron command.
outer_line_width real
inner_line_width real
cavity_line_width real
bond_line_width real
Affects plotting only. This line width is a factor that multiplies the basic
line width. The basic line width depends upon the output format. It is 0.35
mm for HP-GL, and 1 point for PostScript. The outer and inner parameters
refer to the outer and inner sides of the polyhedral surfaces. The cavity
width applies to internal cavities, and the bond width to the stick figure.
The defaults are 1.0 (outer), 0.2 (inner), 1.5 (cavity) and 1.5 (bond).
These commands should follow the molecule command, but occur before the
read_polyhedron and ball_and_stick commands.
elbow real
The argument is a floating point number in the range 0.0 to 10.0, controlling
the ratio of the elbow torus radius to the bond radius. If the value is
below 1.0, no elbows will be drawn. The purpose of the command is to control
the rendering of the tube model. Default: 2.0. This command should occur
after the molecule command, but before the ball_and_stick
command.
ball_radius real
The argument is a floating point number that specifies the ball radius for
the ball and stick model. It is possible to override this value with atom
property commands assigning values to the atom's ball field (see below).
Default: 0.5. This command should occur after the molecule command,
but before the ball_and_stick command.
bond_radius real
The argument is a floating point number that specifies the cylinder radius
for the ball and stick model. Default: 0.3. This command should occur after
the molecule command, but before the ball_and_stick command.
blank
This command causes the polyhedron edges not to be drawn, but it still hides
lines behind it. It should occur after the read_polyhedron command.
no_clipping
This command refers to just the current object. It should occur after the
molecule command and some of the commands. It will cause the object not
to be clipped by the clipping plane, if specified. It is generally used
to have the chemical model protrude from a clipped surface. The command
should occur after the command defining the object (ball_and_stick,
polyhedron or surface) that is not to be clipped.
Script Commands for Contouring
The program computes contours for the shape function (u, v or w). It will
also contour the x, y or z coordinates, to produce a stack of planar contours.
The contouring can be output in one of three ways: (a) as bands of color
in a rendered image, (b) as contour lines in a plot, or (c) as three-dimensional
contours in an SGI Open Inventor file.
contour function from to ramp
This command replaces the previous contour commands and the vertex_coloring and function commands. The from and to are real numbers (have a decimal point) and the ramp must have been defined by a define ramp command (see below). The only functions currently allowed are: u, v, w, x, y, z. The u, v and w are the first, second and third vertex value fields. The x, y and z are simply the vertex cartesian coordinates. For plotting and vector output, there will be a contour polyline at each ramp level. The ramp specifies the number of values and the color of each, but the contour command specifies the range of values (from -- to). For rendering the polyhedron, there will be a bands of color. The maximum number of contour levels is 255.
define_ramp tramp orange 10 green define_ramp onramp yellow 3 green 2 cyan 2 blue 2 navy
There must be at least two colors mentioned, up to as many as will fit
on a line. The integers are the number of intermediate colors and must be
at least 1. The total number of color levels must be less than 256.
A file of atom-property commands is read by the "-f filename"
argument to MSRoll. These commands are also read after the "molecule"
command of MSDraw and are applied to that molecule. Comments begin with
# and may occur on a command line or on their own line. The fields are the
information that is contained in each atomic record in the program.
Field Name | Type | Examples |
pdb | character string | HETATM |
subunit | character | A |
anumber | integer | 45 |
occupancy | real | 1.0 |
tfactor | real | 3.18 |
center | 3 reals | 3.5 4.2 -8.8 |
atom | character string | CD2 |
residue | character string | ASN |
sequence | character string | 343B |
rnumber | integer | 343 |
suffix | character | B |
element | integer | 7 |
type | integer | 9 |
kind | character string | C3 |
radius | real | 1.75 |
covalent | real | 0.77 |
ball | real | 0.3 |
density | real | 4.0 |
angle | real | 1.1 |
color | integer | 2 |
opacity | real | 0.5 |
sgi (image)
The Silicon Graphics image format is described by the rgb (4) manual page
and the image.h include file. The fact that the header is 512-bytes long
does not seem to be documented.
sun (image)
Sunraster formatFor the format of this file, consult the "rasterfile.h"
#include file of SUN Microsystems. After the header there is a color lookup
table. The color lookup table has 256 entries. The number of shades per
color depends upon the number of colors actually used in the image.
avsimage (image)
avsfield (image)
The first format is a format developed by AVS specifically for images. It
is also possible to write images in their more general field format. The
are three real numbers per pixel, giving the amounts of red, green and blue.
See the AVS documentation.
sgi (vector)
This will produce an ascii file in SGI's Inventor format, which can be viewed
using ivview.
whatif (vector)
This is the .vec format read in by Gerrit Vriend's WHATIF program (G. Vriend,
"WHAT IF: A molecular modeling and drug design program", Journal
of Molecular Graphics 8, pp. 52-56, 1990). There is one line for each edge.
Each line contains seven floating-point numbers, the first six giving the
coordinates of the two vertices, and the seventh giving the line color.
AVS geometry file (vector)
This is a triangle format read by the Advanced Visualization Systems geometry
file input filter polyh.c, which is included in AVS's distribution. Line
1: the word "facet" or "smooth". Line 2: the number
of vertices. Next, the vertices, one per line (x, y and z). After the vertices
come the triangles. Each triangle has three vertex numbers (vertex numbering
begins with 1). The vertices are counter-clockwise, as viewed from the probe.
AVS field file (density)
The MSRoll program writes density in AVS field format, which consists of
an ASCII header, followed by two form-feed characters, and then the binary
data.
binary piecewise quartic surface
The pre-3.5 format of the binary surface file written by MSRoll is given
in the implementation manual. Beginning with version 3.5, the format has
been modified to handle larger molecules. The shorts have been replaced
by longs, and the floats by doubles. However, the new MSDraw program can
still read old pqms files.
atomic area
This file gives the solvent-accessible areas of individual atoms. There
is one line per atom. There are four floating point numbers per line. The
first floating point number is the contact area, the second is the reentrant
area, the third is their sum (molecular area), and the fourth is the accessible
area. The accessible area describes the trace or trajectory of the center
of the probe sphere, and has often been related to physical chemistry. Consult
Fred Richards' publications for a discussion of molecular areas and volumes.
volume
This file gives the total contact, total reentrant, total molecular (contact+reentrant),
and total accessible areas of the molecule, and the solvent-excluded volume
of the molecule. This volume does not include the volumes of any internal
cavities (packing defects large enough to accommodate the probe). These
summary areas and volumes are followed by a table of centroids, volumes,
and areas for each surface component. A surface component is a connected
piece of surface. For small molecules there will be only one component.
For large molecules, such as proteins, the first component is the outer
surface, and the following components are surfaces bounding cavities. The
volume for the outer surface includes the volumes of all the cavities. The
cavity volumes are always negative, which is how they may be distinguished
from a surface bounding a separate, small molecule located a few angstroms
from the protein surface. Thus simply summing the volume column of this
table will give the solvent-excluded volume given at the beginning of the
file. That is, the cavity volume is not considered to be part of the solvent-excluded
volume of the protein. The component areas are molecular areas (contact
area plus reentrant area) followed by accessible areas.
vet
The first record has three integers ("%d %d %d"). The first integer
is the number of vertices, the second integer is the number of edges, and
the third integer is the number of triangles. The vertex coordinates then
follow. Each line has the C format: "%12.6f %12.6f %12.6f %7.4f %7.4f
%7.4f %10.6f %10.6f %10.6f %3d %5d %3d". The first three fields are
the vertex coordinates and the next three fields are a unit normal vector
for the vertex.The next three fields are the function values (default=0.0)
for the vertex. They are there for assigning properties to vertices, for
example shape or electrostatic potential (by some external program). The
next three fields are integers: component number, atom number and color
(hue). Next come the edge records. Each one has C format: "%6d %6d
%3d %5d %3d". The first two numbers specify the vertex numbers, which
start at one. The vertex numbers correspond to the order of the vertex records
earlier in this file. The next three numbers are the component number, the
atom number and the color (hue) number. For edges on the boundary between
different atoms or different colors, one of the two possibilities will be
chosen randomly. Finally come the triangles. Each line has three edge numbers
(the edge numbers start at one and are implicitly given by the order of
the edge records), followed by three vertex numbers, followed by a surface-component
number, an atom number and a color number. The edge numbers are signed;
that is, a negative number means traverse the edge in the reverse direction.
The edges and vertices are in counter-clockwise order when viewed from outside
the molecule. The C format of a triangle line is: "%7d %7d %7d %6d
%6d %6d %3d %5d %3d". The atom and color numbers are determined by
which atom the center of the triangle is closest to. The triangles are sorted
by atom number.
surface point
The surface output file has one line per surface point. The surface points
are in ascending atom number order, with the contact points of each atom
preceding the reentrant points. The output format is similar to that of
MS (QCPE program #429), except that: (a) the second and third atom numbers
of reentrant surface points are not correct, (b) shape number is always
2, even when the probe touches three atoms, (c) contact and reentrant points
are written to a single file, and (d) in atom number order, so there is
no need for sorting or merging.
radius file
11 | 1.90 | 0.70 | CHAr |
12 | 1.90 | 1.04 | S |
21 | 1.50 | 1.50 | Metal |
* | P? | 38 | P |
* | P?? | 38 | P |
* | N | 4 | NH |
* | CA | 7 | CH |
* | FE | 21 | Metal |
ASP | OD2 | 3 | OCO |
CYS | SG | 12 | S |
GLU | CG | 8 | CH2 |