MOLMOL was first developed under the name COSMOS, but it had to be renamed due to a name collision with a different program.
It was tried to keep the program as general as possible. However, there are some functions that make it especially useful for studying structures of macromolecules obtained by NMR.
The program is freely available by anonymous ftp from one of the following servers, the corresponding directories are given in parentheses:
The latest information about the program can always be found on the following web page:
This document is also stored as DVI (
manual.dvi) and PostScript (
manual.ps) file in the
man subdirectory of the installation directory. The reference manual (online manual pages) is stored as
ref.ps in the same directory, as well as a tutorial in HTML format
It is assumed that the user has a basic familiarity with UNIX for installing the program. For using the program with this manual, the user should be familiar with the basic concepts of using applications with graphical user interfaces.
READMEfor installation instructions.
|give list of options|
|TTY interface (no graphics)|
|alternate input/output device|
|stereo mode (OpenGL only)|
|display all atoms instead of backbone|
|superimpose complete backbone|
|superimpose backbone of given range|
| execute macro file (|
|files||DG, PDB, Angle or Dump files|
If the program is started without names of structure files, it will recover the saved state of the last invocation and neglect all options but
Besides the listed options, the program will also recognize standard Xt options, like
-bg color for setting the background color.
You can switch most of these elements with the
UserInterface command to adapt the interface to your personal preferences.
UserInterfacecommand to open it if it is closed), you can repeat previous commands by clicking on them in there.
HelpCmdcommand puts the program into help mode. The next command that is activated, either from the command line or in a menu, will not be executed, but its help text will be displayed instead.
HelpAproposcommand to locate it.
There are two ways to make selections:
DialSelectcommand. All these commands take expressions that specify whether an item is selected or not. See chapter "Expressions" on page 13 for a description of the expression syntax.
Some properties have a special meaning to the program. The user should not try to use them for anything else but for the intended purpose:
all Always set for all items. The user should never try to modify this property, otherwise there may be unpredictable effects.
visible True for all atoms, bonds, distances and primitives that have their display attributes set in a way to make them visible. It is maitained by the program, and should not be modified by the user. It is convenient for selecting only visible items.
selected Set for all selected items. This property is modified by the methods explained in chapter "Selection" on page 12 , most commands act on items that have this property set.
displayed Only items that have this property set will be visible. Setting it to false can be used to make items invisible.
movable Only molecules that have this property set will be modified by interactive manipulations. Setting this property to false for part of the molecules can be used for moving molecules relative to each other.
Some properties are predefined and are calculated whenever a molecule is loaded. They are stored in the file
setup/PropDef of the MOLMOL installation directory.
The user can define additional properties by using the
DefProp* (e. g.
DefPropAtom) commands. This is useful for simplifying the expressions used for selections. Also some commands take property names as arguments, the user can either use one of the predefined properties there, or one defined with
DefProp*. Consult the online manual page of the
DefProp* commands for examples of defining and using properties.
eis also supported. The decimal point is optional for numbers with exponent. Since integer values are automatically converted to floating point values wherever a floating point value is expected, the user can also use integer constants.
\(backslash). If a string is used inside a command argument, single quotes also have to be escaped by using
\'because they are used for enclosing each argument.
|float||chemical shift of atom|
|float||B factor of atom|
|float||van der Waals radius of atom|
|float||partial charge of atom|
|float||charges on heavy atoms|
|float||averaged charges on heavy atoms|
|float||simple charges from setup file|
|float||distance from reference atom(s)|
|float||limit of constraint|
|float||violation of constraint|
|bool||true if distance is upper limit|
|bool||true if distance is lower limit|
|bool||true if distance is H-bond|
|integer||graphics attribute index|
|integer||graphics attribute index|
|integer||graphics attribute index|
|integer||graphics attribute index|
Values of an item can be referenced by just using their name. It is also possible to access values of items that are higher in the data hierarchy. This is done in the form item.value, e. g.
res.name in an expression that is evaluated for an atom. The following figure shows the data hierarchy:
Not all primitives belong to a molecule. For the ones that do not (titles), accessing molecule values will result in null values (
0 for the number, empty string for the name).
For bonds, distances and angles, it is also possible to access the values of the atoms involved. For bonds this is done by using the items
atom2, for dihedral angles the 4 atoms defining it can be accessed over
For bonds and distances, it is also possible to access the values of both residues involved. This is done by using the items
For distances, it is also possible to access the values of both molecules involved. This is done by using the items
notis used for logical negation. It is only valid for boolean values.
The minus sign (
-) is used for numerical negation. It is valid for integer and floating point values.
sqrt is used for the calculation of square roots. It is valid for floating point values. If an integers is used, it is converted to floating point.
log is used for the calculation of natural logarithms. It is valid for floating point values. If an integers is used, it is converted to floating point.
/(division) are defined for integer and floating point values. The type of the result is the same as the type of the operators. If integer and floating point values are mixed, the integer value is converted to floating point and the calculation is done in floating point.
For integers, the operator
% gives the remainder of the division.
res.num + 2
3 * bfactor
<=(less or equal),
>=(greater or equal) can be used to compare numerical values. The result is of type boolean.
!= can also be used to compare strings. It is possible to use the wildcards
? (matches one character) and
* (matches any number of characters) for string comparison.
res.num > 30
name != "Q*"
or) can be used to combine boolean values, with a boolean value as result.
res.num > 30 & bfactor > 3.2
name = "N" or name = "CA" or name = "C"
name = "CB" & visible
The evaluation order can be changed by using parantheses. Subexpressions enclosed in parantheses are evaluated first.
2.3 * (bfactor + 1.8)
(res.num < 10 | res.name = "ARG") & name = "C"
#followed by a list of molecule names and numbers
:followed by a list of residue names and numbers
@followed by a list of atom names
Expressions in the short notation can be used within expressions in the full notation, they have a boolean value.
heavysc & :13-27
|read DIANA dihedral angle file|
|read list of DIANA dihedral angle files|
|read DG file|
|read list of DG files|
|read PDB file|
|read list of PDB files|
|read SYBYL Mol2 file|
|read dump file|
|read file with lower limits|
|read file with upper limits|
|read file with angle constraints|
|read file with chemical shifts|
|read potentials for surface coloring|
|replace with DG file|
|replace with list of DG files|
|replace with PDB file|
|replace with list of PDB files|
|read and error check residue library|
|write DIANA dihedral angle file|
|write DG file|
|write dump file|
|write PDB file|
|write entries for residue library|
|write current rotation|
|write macro with secondary structure|
|create new molecule|
|create mean molecule|
|add residue to molecule|
|change residue type|
|add new atom|
|add new pseudo atom|
|flip atoms for better superposition|
|add bond between two atoms|
|add distance between two atoms|
|add H-bond between two atoms|
|add lower limit between two atoms|
|add upper limit between two atoms|
|add dihedral angle|
|rotate dihedral angles|
|rotate dihedral angles|
|add angle constraints|
|remove angle constraints|
|add 2D text annotation|
|add 3D text annotation|
|edit text annotation|
|add line, rectangle or circle|
|move draw object|
|set display style of draw objects|
|set sheet neighbours of residues|
|add ribbons (schematic drawing)|
|set type of ribbons|
|set display style of ribbons|
|set sizes of ribbons|
|set coloring style of ribbons|
|add plates for rings|
|set sizes of plates|
|set coloring style of surfaces|
|add isosurface of potential|
|set display style of trajectories|
|add circles around atoms|
|add cylinder for schematic drawing|
|add sheet for schematic drawing|
|add solid for schematic drawing|
|change color of primitives|
|change secondary color of primitives|
|set style and width of primitive lines|
|set shading of primitives|
|set radius of primitives|
|set length of primitives|
|switch fullscreen display on and off|
|set size of drawing area|
|set stereo mode|
|choose bond display mode|
|change background color|
|set position of clipping planes|
|set distance of clipping planes|
|set view angle|
|setup of light source|
|setup of fog (depth cueing)|
|set rendering options|
|set drawing delay|
|set drawing precision|
|set path names|
|change rotation center|
|calculate structure superpositions|
|move molecule in X direction|
|move molecule in Y direction|
|move molecule in Z direction|
|undo all rotations|
|rotate molecule around X axis|
|rotate molecule around Y axis|
|rotate molecule around Z axis|
|switch elements of user interface|
|switch selection dialog on and off|
|switch molecule dialog on and off|
|switch color dialog on and off|
|switch style dialog on and off|
|define molecule property|
|define residue property|
|define atom property|
|define bond property|
|define angle property|
|define distance property|
|define primitive property|
|list all molecule properties|
|list all residue properties|
|list all atom properties|
|list all bond properties|
|list all angle properties|
|list all distance properties|
|list all primitive properties|
|set reference atoms|
|set color of atoms|
|set color of bonds|
|set color of distances|
|set secondary color of distances|
|set format of atom label|
|choose label of distances|
|set style and width of atom lines|
|set style and width of bond lines|
|set style and width of distance lines|
|set radius of atoms|
|set radius of bonds|
|set radius of distances|
|set material properties of atoms|
|set material properties of bonds|
|set material properties of distances|
|set material properties of primitives|
|set texture of atoms|
|set texture of bonds|
|set texture of distances|
|set texture of primitives|
|set shading of atoms|
|set shading of bonds|
|set shading of distances|
|set display style of atoms|
|set display style of bonds|
|set display style of distances|
|list attributes of atoms|
|list attributes of bonds|
|list attributes of distances|
|list attributes of primitives|
|set unit of plot parameters|
|set plot parameters|
|make a PostScript plot|
|make a FrameMaker 3 plot|
|make a FrameMaker 4 plot|
|make a TIFF plot|
|make a JPEG plot|
|make a PNG plot|
|make a POV-Ray plot|
|make a VRML plot|
|calculate secondary structure|
|calculate RMSDs and displacements|
|calculate best matching structure parts|
|reduce number of structures|
|calculate solvent accessible surface|
|calculate electrostatic potential|
|calculate ring current shifts|
|calculate missing atom coordinates|
|calculate bonds between close atoms|
|find Van der Waals violations|
|find short distances between atoms|
|calculate angular order parameters|
|calculate angles between helix axes|
|calculate lengths of principal axes|
|check number of bonds|
|check upper limits|
|check lower limits|
|check angle constraints|
|show angle distribution bars|
|show angle distribution circles|
|show distance vs. structure number|
|show contact map|
|show map of distance constraints|
|switch from figure to normal display|
|define molecule groups|
|locate commands by keyword|
|get help on command|
|show help text about using the mouse|
|show definition of buttons|
|show definition of standard properties|
|set the number of possible undos|
|undo effect of last command|
|execute standard macro|
|execute user macro|
|open macro recorder|
|delete and initialize everything|
|execute operating system command|
|register as MOLMOL user|
|quit the program|
macrosof the MOLMOL installation directory. They are partly used by the buttons, but can also be executed with the
XMacStandcommand, or be used as instructive examples.
color_atom.mac Set color of selected atoms to "standard" colors (red for O, yellow for S, etc.), e. g. for CPK model.
cpk.mac Display currently selected parts as CPK model.
ball_stick.mac Display currently selected structure parts as ball and stick model.
ribbon.mac Make ribbon drawing of currently selected residues.
sausage.mac Draw spline with variable radius for bundle of structures.
schem_dna.mac Schematic display of selected DNA residues.
temper.mac Set color of selected atoms and bonds depending on B-factor.
black_white.mac Set material properties for good looking black and white plot.
P: Program crashes on startup.
S: You might have a corrupted
dump file. Remove the file
molmol/dump in your home directory and try again.
P: Program starts up, but no menu bar is visible.
MOLMOLHOME is not properly set. Check the startup script.
MOLMOLHOME must be set to the name of the directory where the program was installed.
MOLMOLDEV defines the output device (graphics system). This should be set to
Motif/GL when running the program locally on an older SGI machine (e. g. Personal Iris), to
Motif/OpenGL when running on newer SGI machines, to
Motif/XGL when running the program on a Sun, and to
Motif/X11 for other configurations. When running the program on an SGI and displaying remotely on another SGI, you can also use
Motif/OpenGL, but in this case you might get better performance with using
Motif/OpenGLD. Note that it is much better to run the program locally in most cases. For running the program without graphics, the variable must be set to
TTY/NO, which is most conveniently done by giving the
-t switch on the command line.
If you want to use a value different from the default for
MOLMOLDEV, you can give an alternate value with the
-o switch on the command line, or you can set the environment variable before calling the startup script.
molmolin the home directory of the user, and stores some files there:
history The command history of the last session. This can be executed as macro (command
dump A binary file that describes the complete program state. This file is written whenever the user quits the program, and it is automatically read on startup. It is recommended to remove
dump (or move it to a different name) before starting work with different molecules.
par Contains values of some program parameters. These values are also stored in the
dump file, so it is redundant if a
dump exists. It is used to maintain preferred parameter values of the user when the
dump is removed.
setupof the MOLMOL installation directory. The system admistrator can make site specific changes in these files.
PathNames command, each user can select files different from the default ones. For doing this, it is recommended to copy the default file to a place in the home directory and make the desired changes.
The following is a list of configuration files:
|names and mnemonics of all pulldown menus|
|entries of all pulldown menus|
|entries in the popup menu|
|definition of buttons|
|entries in the valuator box|
|translation table for PDB atom names|
|data for the commands |
|AtomCharge||charges referenced in expressions by |
|data for the command |
|data for the command |
|list of colors for color dialog|
If there is a macro with the name
startup.mac in the subdirectory
molmol of the home directory of the user, it is automatically executed when the program is started up.