Author: Reto Koradi1. IntroductionInstitut für Molekularbiologie und Biophysik
ETH-Hönggerberg
CH-8093 Zürich
E-mail: molmol@mol.biol.ethz.chSpectrospin AG
Industriestr. 26
CH-8117 Fällanden
E-mail: molmol@spectrospin.ch
3. Starting
Main Window Elements5. Selection
Interactive Selection6. Command List
Input/Output7. Standard Macros
8. User Macros
9. Configuration and Customization
10. Features
11. MOLMOL Tutorial
MOLMOL Tutorial - Example 1
MOLMOL runs on UNIX and Windows NT/95/98 and is freely available. Copyright conditions are included in the distribution, all users are required to carefully read and follow them.
The latest information about the program is always available on the MOLMOL Web Site. Links and instructions for downloading and installing the software can also be found there.
Questions and problem reports should normally be sent to the
MOLMOL mailing list, subscription information and archives
are available on the web site. Since the author has moved to
a new job, mail sent to the address on the title page may not
be answered.
2. Documentation Overview
This manual gives an introduction into using MOLMOL, and
explains the basic concepts. The user is encouraged to use the
online help system of the program. A
list of commands can be found towards the
end of this manual, the tables in that section contain links
to the online help pages.
Users who prefer to learn from tutorials may want to skip to the tutorial section before reading through the complete manual. Even after completing the tutorials successfully, it is still recommended to come back to the remaining parts of the manual later, a good understanding of of the basic concepts will help you to use MOLMOL more efficiently.
The collection of online manual pages is also available as
a PostScript file named ref.ps in the man
subdirectory of the installation directory. All other
documentation is distributed in HTML format only. For easier
printing of the manual, it is available as
one single file as well as as
set of separate files. The contents
of the two forms is identical.
Besides the listed options, the program will also recognize
standard Xt options, like -bg color for setting the
background color.
The following command line options are recognized:
You can also start MOLMOL by defining it as program to be started
for files with a certain exptension (like .pdb), and
then double-clicking a file with this extension.
MOLMOL also supports drag and drop for some common molecule
file types. If a file with one of the following extensions is
dropped into the main window of the running program, the file
is loaded with the corresponding command:
3. Starting
UNIX
MOLMOL is supplied with a shell script (molmol in
the top level installation directory) that processes options
and arguments and sets the necessary environment variables.
The following options are recognized by this shell script:
If the program is started without names of structure files, it
will recover the saved state of the last invocation (if available)
and ignore all options but -f macro.
argument
description -h
give list of options -t
TTY interface (no graphics) -o name
alternate input/output device -2
stereo mode (OpenGL only) -a
display all atoms (not backbone only) -s
superimpose complete backbone -r range
superimpose given backbone range -f file
execute macro file (- for standard input) files
DG, PDB, Angle or Dump files Windows
Under Windows, you will normally start MOLMOL by double-clicking
its icon (a capital M in cyan and red). You may want to create a
shortcut on your desktop. Right-click on the icon e. g. in
Windows Explorer, select "Create Shortcut" in the menu, and drag
the shortcut to a convenient location on your desktop.
If you want to use one of these options, you can either start
the executable from a command prompt, or define a shortcut,
and then set the argument in the properties of the shortcut
(right click on icon, select "Properties", click on "Shortcut"
tab, and add the argument after the executable in the "Target:"
field).
argument
description -stereo
stereo mode file
execute macro file
extension
description .pdb
ReadPdb .ent
ReadPdb .cor
ReadDg .mol2
ReadSybyl .ml2
ReadSybyl .xyz
ReadXyz .ang
ReadAng .seq
ReadSeq other
ReadDump 4. User Interface
This section describes how to use the most important parts
of the MOLMOL user interface. We assume that you are familiar
with the basic concepts of using applications with graphical
user interfaces. Here you will learn about:
Main Window Elements
The following image shows a screen dump of the MOLMOL main
window, with annotations for its elements. Each of them
will be briefly explained in the following sections.
Drawing Area
All graphical display of molecules (and other items)
will appear here. You also use this area for interactive
mouse manipulations, like zooming and
rotating.
These dialogs always have three buttons:
These dialogs can remain open as long as you need them, commands are executed by clicking buttons within the dialog. They have two buttons at the bottom:
The usual terms will be used to describe mouse input:
Selected items do not look visually distinct in the graphical display. When you perform a selection operation, the status line will give you information about the items that were selected. You can also choose to only see the currently selected items by clicking the Show Sel. button on the right side of the main window. Use the Show All button to get back to displaying all visible items.
The following sections explain various aspects of how to make selections:
For text annotations there is a difference between the function of the left and middle mouse buttons: the left mouse button only selects texts if their bottom-left corner is the nearest item, while the middle mouse button gives priority to texts and selects them whenever the position is within the text.
See the section on Mouse Manipulations
for a more detailed description on how to use the mouse.
Using Expressions
When you want to select a number of items,
interactive selection can be very
cumbersome, especially in large molecules. MOLMOL allows
you to select items using a powerful expression syntax.
You can interpret these expressions as rules that an
item has to satisfy to get selected.
You can use commands like SelectAtom to select items, but it is normally much more convenient to use the Selection Dialog that can be opened by clicking the Selection button on the right side of the main window.
This section gives an informal introduction into selection expressions, a more complete and precise description can be found in the section Expression Syntax.
The following are some examples of this short notation used for selecting atoms:
The following are some examples of the full notation used for selecting atoms:
You can access values of related data items by using the corresponding prefix, e. g. in an expression for atoms, you can refer to the residue number by res.num.
item value type explanation mol num integer molecule number mol number integer molecule number res num integer residue number res number integer residue number prim num integer primitive number prim number integer primitive number mol name string molecule name res name string residue name atom name string atom name angle name string angle name atom shift float chemical shift of atom atom bfactor float B factor of atom atom vdw float van der Waals radius of atom atom charge float partial charge of atom atom heavycharge float charges on heavy atoms atom avgcharge float averaged charges on heavy atoms atom simplecharge float simple charges from setup file atom d float distance from reference atom(s) bond len float bond length angle val float angle dist val float distance dist limit float limit of constraint dist viol float violation of constraint dist upl bool true if distance is upper limit dist lol bool true if distance is lower limit dist hbond bool true if distance is H-bond atom attr integer graphics attribute index bond attr integer graphics attribute index dist attr integer graphics attribute index prim attr integer graphics attribute index
The following table lists predefined properties. Predefined properties are properties whose definitions are read from a file (by default setup/PropDef in the installation directory) and evaluated whenever new data is added, e. g. a new molecule loaded.
item name description any all Always set for all items. Do not modify! any selected Set for selected items. Most commands operate on items that have this property set. any displayed Only items with this property set are displayed. Can be useful for making items (especially molecules) temporarily visible/invisible, use the Molecule Dialog for a convenient way of setting it. mol movable Only molecules with this property set are affected by interactive manipulations and commands that transform molecules. Useful for moving molecules relative to each other, use the Molecule Dialog for a convenient way of setting it. atom visible Set for all atoms that have a display style that makes them visible. Convenient to restrict a selection to only visible items. bond visible Set for all bonds that have a display style that makes them visible. dist visible Set for all distances that have a display style that makes them visible. prim visible Set for all primitives that have a display style that makes them visible.
item name description atom bb Backbone atoms of a protein or nucleic acid. bond bb Backbone bonds of a protein or nucleic acid. atom sc Side chain atoms of a protein or nucleic acid. bonds sc Side chain bonds of a protein or nucleic acid. atom heavy Heavy atoms. bond heavy Bonds between two heavy atoms. atom heavysc Heavy side chain atoms of a protein or nucleic acid. bond heavysc Bonds between two heavy side chain atoms of a protein or nucleic acid. atom phos Atoms in phosphate group of a nucleic acid. bond phos Bonds in phosphate group of a nucleic acid. atom sugar Atoms in sugar group of a nucleic acid. bond sugar Bonds in sugar group of a nucleic acid. atom base Atoms in base of a nucleic acid. bond base Bonds in base of a nucleic acid. atom proton Hydrogen atoms. atom ca Atoms with name CA. atom pseudo Pseudo atoms (name starting with Q). atom lonepair Lone pair (name starting with LP).
A table of available values was given in a previous section.
A table of predefined properties was given in a previous section.
Note that the string comparison operators support wildcards, ? matches one character, *matches any number of characters.
operator kind precedence operand result description - unary 6 integer integer numerical negation - unary 6 float float numerical negation sqrt unary 6 float float square root log unary 6 float float natural logarithm ! unary 6 bool bool logical negation not unary 6 bool bool logical negation * binary 5 integer integer multiplication * binary 5 float float multiplication / binary 5 integer integer division / binary 5 float float division % binary 5 integer integer remainder + binary 4 integer integer addition + binary 4 float float addition - binary 4 integer integer subtraction - binary 4 float float subtraction = binary 3 integer bool equal = binary 3 float bool equal = binary 3 string bool equal (with wildcards) != binary 3 integer bool not equal != binary 3 float bool not equal != binary 3 string bool not equal (with wildcards) < binary 3 integer bool less < binary 3 float bool less <= binary 3 integer bool less or equal <= binary 3 float bool less or equal > binary 3 integer bool greater > binary 3 float bool greater >= binary 3 integer bool greater or equal >= binary 3 float bool greater or equal & binary 2 bool bool logical and and binary 2 bool bool logical and | binary 1 bool bool logical or or binary 1 bool bool logical or
When traversing the currently selected items, the program will also use this hierarchy, and only traverse deeper into selected items. Because of the automatic selection of items higher in the hierarchy, this is normally transparent to the user. However, if you e. g. first select an atom, and then deselect the corresponding residue, the atom will effectively be deselected.
One way of looking at this mechanism is that selection proceeds upwards in the hierarchy (selects items that are higher), while deselection proceeds downwards (deselects items that are lower).
The hierarchy also affects how values and properties can be accessed in expressions. When an expression is evaluated for an item, the values and properties of items higher in the hierarchy can be accessed with the syntax item.name. For bonds, distances and angles, it is also possible to access the values of the atoms involved. The following table gives a full list of which related items can be accessed from a given kind of item.
item related description res mol molecule of residue atom res residue of atom atom mol molecule of atom bond res residue of bond bond mol molecule of bond bond atom1 first atom of bond bond atom2 second atom of bond bond res1 residue of first atom of bond bond res2 residue of second atom of bond angle res residue of dihedral angle angle mol molecule of dihedral angle angle atom1 first atom of dihedral angle angle atom2 second atom of dihedral angle angle atom3 third atom of dihedral angle angle atom4 fourth atom of dihedral angle dist mol molecule of distance dist atom1 first atom of distance dist atom2 second atom of distance dist res1 residue of first atom of distance dist res2 residue of second atom of distance dist mol1 molecule of first atom of distance dist mol2 molecule of second atom of distance prim mol molecule of primitive (except for title)
If the item type after the predicate is lower in the hierarchy than the current item, the evaluation will traverse downwards in the hierarchy, and evaluate the expression in parantheses for each of the desired items. E. g. if an expression for a residue is evaluated, and exists atom(expression) is encountered, this expression will be evaluated for all atoms of the residue. It must have a boolean result, the whole expression will be true if at least one of the partial expressions evaluated for the atoms yields true.
If the item type after the predicate is higher in the hierarchy than the current item, the evaluation will traverse upwards in the hierarchy until the parent of the item is encountered. From there on, the evaluation will be performed as described in the previous chapter. E. g. if an expression for an atom is evaluated, and exists bond(expression) is encountered, this expression will be evaluated for all bonds that the atom is part of. The whole expression will be true if all of the partial expressions evaluated for the bonds yield true.
The standard macros contain a few examples of using predicates. mean_sc.mac contains the following commands:
The first command is used to define the property well_def for well defined residues, specified as residues that have no heavy atoms with B factors larger than 1.0. The second command then uses this property to select the CA and heavy side chain atoms of all these well defined residues.DefPropRes 'well_def' '! exists atom(heavy & bfactor > 1.0)' SelectAtom 'res.well_def & (ca | heavysc)'
The following command in pdb_charge.mac selects all ASP residues that do not have an HD2 atom:
SelectRes 'name = "ASP" & ! exists atom(name = "HD2")'
The commands are listed in several groups:
ReadAng read DIANA dihedral angle file ReadListAng read list of DIANA dihedral angle files ReadDg read DG file ReadListDg read list of DG files ReadPdb read PDB file ReadListPdb read list of PDB files ReadSybyl read SYBYL Mol2 file ReadXyz read XYZ file ReadSeq read sequence ReadDump read dump file ReadLol read file with lower limits ReadUpl read file with upper limits ReadAco read file with angle constraints ReadShift read file with chemical shifts ReadOmap read O electron density map ReadPot read potentials for surface coloring ReplaceDg replace with DG file ReplaceListDg replace with list of DG files ReplacePdb replace with PDB file ReplaceListPdb replace with list of PDB files ReadLib read and error check residue library WriteAng write DIANA dihedral angle file WriteDg write DG file WriteSeq write sequence WriteDump write dump file WriteLol write file with lower limits WriteUpl write file with upper limits WriteLib write entries for residue library WriteTransform write current transformation WriteSecondary write macro with secondary structure
NewMol create new molecule MeanMol create mean molecule NameMol change molecule name FirstMol move molecules to front of molecule list RemoveMol remove molecules AddRes add residue to molecule ChangeRes change residue type RemoveRes remove residues AddAtom add new atom AddPseudo add new pseudo atom FlipAtom flip atoms for better superposition RemoveAtom remove atoms AddBond add bond between two atoms RemoveBond remove bonds AddDist add distance between two atoms AddHbond add H-bond between two atoms AddLol add lower limit between two atoms AddUpr add upper limit between two atoms RemoveDist remove distances AddAngle add dihedral angle RotateAngle rotate dihedral angles SetAngle rotate dihedral angles RemoveAngle remove angles AddAco add angle constraints RemoveAco remove angle constraints
AddTitle add 2D text annotation AddText add 3D text annotation EditText edit text annotation SizeText resize text AddDrawobj add line, rectangle or circle MoveDrawobj move draw object StyleDrawobj set display style of draw objects SetNeigh set sheet neighbours of residues AddRibbon add ribbons (schematic drawing) SplitRibbon split ribbons TypeRibbon set type of ribbons StyleRibbon set display style of ribbons SizeRibbon set sizes of ribbons PaintRibbon set coloring style of ribbons AddPlates add plates for rings SizePlate set sizes of plates AddSurface add surface TrimSurface cut away part of a surface PaintSurface set coloring style of surfaces AddIsosurface add isosurface of potential AddTrajec add trajectories StyleTrajec set display style of trajectories AddCircles add circles around atoms AddCylinder add cylinder for schematic drawing AddDipole add arrow showing dipolar moment StyleCylinder set display style of cylinders AddSheet add sheet for schematic drawing AddSolid add solid for schematic drawing StyleMap set display style of density map ColorPrim change color of primitives TintPrim change secondary color of primitives LinePrim set style and width of primitive lines ShadePrim set shading of primitives RadiusPrim set radius of primitives NearPrim set near clipping plane of primitives MovePrim move primitive LengthPrim set length of primitives RemovePrim remove primitive
ZoomAbs zoom absolute ZoomRel zoom relative Fullscreen switch fullscreen display on and off DrawSize set size of drawing area Stereo set stereo mode StartRock start rock StopRock stop rock StartAnim start animation StopAnim stop animation BondMode choose bond display mode BackColor change background color Projection choose projection ClipPos set position of clipping planes ClipSize set distance of clipping planes ViewAngle set view angle Light setup of light source Fog setup of fog (depth cueing) Rendering set rendering options DrawDelay set drawing delay DrawPrec set drawing precision
Center change rotation center Fit calculate structure superpositions MoveInit undo all translations MoveX move molecule in X direction MoveY move molecule in Y direction MoveZ move molecule in Z direction RotateInit undo all rotations RotateX rotate molecule around X axis RotateY rotate molecule around Y axis RotateZ rotate molecule around Z axis AutoScale scale/translate molecules to window size
UserInterface switch elements of user interface DialSelect switch selection dialog on and off DialMol switch molecule dialog on and off DialColor switch color dialog on and off DialStyle switch style dialog on and off DialMeasure switch measurement dialog on and off
SelectMol select molecules SelectRes select residues SelectAtom select atoms SelectBond select bonds SelectAngle select angles SelectDist select distances SelectPrim select primitives DefPropMol define molecule property DefPropRes define residue property DefPropAtom define atom property DefPropBond define bond property DefPropAngle define angle property DefPropDist define distance property DefPropPrim define primitive property ListSelectedMol list selected molecules ListSelectedRes list selected residues ListSelectedAtom list selected atoms ListSelectedBond list selected bonds ListSelectedAngle list selected angles ListSelectedDist list selected distances ListPropMol list all molecule properties ListPropRes list all residue properties ListPropAtom list all atom properties ListPropBond list all bond properties ListPropAngle list all angle properties ListPropDist list all distance properties ListPropPrim list all primitive properties SetRef set reference atoms UndefProp undefine property
ColorAtom set color of atoms ColorBond set color of bonds ColorDist set color of distances ColorInit set initial color TintDist set secondary color of distances TintInit set initial secondary color LabelAtom set format of atom label LabelDist choose label of distances LabelInit set initial format of labels LineAtom set style and width of atom lines LineBond set style and width of bond lines LineDist set style and width of distance lines LineInit set initial style and width of lines RadiusAtom set radius of atoms RadiusBond set radius of bonds RadiusDist set radius of distances RadiusInit set initial radius MaterialAtom set material properties of atoms MaterialBond set material properties of bonds MaterialDist set material properties of distances MaterialPrim set material properties of primitives MaterialInit set initial material properties TextureAtom set texture of atoms TextureBond set texture of bonds TextureDist set texture of distances TexturePrim set texture of primitives TextureInit set initial texture ShadeAtom set shading of atoms ShadeBond set shading of bonds ShadeDist set shading of distances StyleAtom set display style of atoms StyleBond set display style of bonds StyleDist set display style of distances StyleInit set initial display styles AttrAtom list attributes of atoms AttrBond list attributes of bonds AttrDist list attributes of distances AttrPrim list attributes of primitives AttrInit list initial attributes
PlotUnit set unit of plot parameters PlotPar set plot parameters PlotPs make a PostScript plot PlotFm3 make a FrameMaker 3 plot PlotFm4 make a FrameMaker 4 plot PlotMeta make a Windows enhanced metafile plot PlotTiff make a TIFF plot PlotJpeg make a JPEG plot PlotPng make a PNG plot PlotBmp make a BMP (Windows bitmap) plot PlotPov make a POV-Ray plot PlotMpov make a MegaPov plot PlotRib make a RenderMan plot PlotVrml1 make a VRML 1.0 plot PlotVrml2 make a VRML 2.0 (VRML97) plot
CalcSecondary calculate secondary structure CalcRmsd calculate RMSDs and displacements CalcMatch calculate best matching structure parts CalcCluster reduce number of structures CalcSurface calculate solvent accessible surface CalcPot calculate electrostatic potential CalcShift calculate ring current shifts CalcAtom calculate missing atom coordinates CalcBond calculate bonds between close atoms CalcHbond find H-bonds CalcVdw find Van der Waals violations CalcDist find short distances between atoms CalcAngle calculate angular order parameters CalcHelix calculate angles between helix axes CalcAxis calculate lengths of principal axes CheckBond check number of bonds CheckUpl check upper limits CheckLol check lower limits CheckAco check angle constraints
FigRamach Ramachandran plot FigAngles show angle distribution bars FigCircles show angle distribution circles FigDist show distance vs. structure number FigContact show contact map FigLimit show map of distance constraints FigOff switch from figure to normal display
Group define molecule groups LengthBond set length of bonds for display HelpViewer set viewer for help files HelpApropos locate commands by keyword HelpCmd get help on command HelpMouse show help text about using the mouse HelpButton show definition of buttons HelpProp show definition of standard properties HelpManual show manual in web browser HelpTutorial show tutorial in web browser HelpIndex show HTML command index HelpTip show "Tip of the Day" HelpAbout show program version and copyright SetUndo set the number of possible undos Undo undo effect of last command XMacStand execute standard macro XMacUser execute user macro RecordMac open macro recorder PathNames set path names InitAll delete and initialize everything System execute operating system command Register register as MOLMOL user Quit quit the program
A more convenient way to build macros is using the macro recorder available in MOLMOL. You can start the macro recorder with the RecordMac command. It allows you to execute commands in the normal environment (using menus and dialog boxes), record them selectively, and then save the resulting macro.
A history of your session is kept in the file molmol/history of your home/profile directory. It can also serve as starting point for macros.
define CommandNameThe name of the new command is specified after the <define keyword. This is normally followed by a short help message, introduced with the help keyword. An arbitrary number of arguments can be given, each followed by (optional) default values and prompt strings. The arguments are followed by a series of commands that define the functionality of the new command. Arguments are referenced in the form $argName or ${argName}.
help one-line-help
$arg1 = default1 prompt1
..
$argN = defaultN promptN
Command1
..
CommandN
end
The following example defines a new command for adding a partial surface:
When such a definition is encountered, the commands used for the definition are not executed, the only effect is that the definition is added to the MOLMOL command list. It can then be used like one of the builtin commands.define AddPatch help create partial surface for selected atoms $rad = 1.4 "Solvent Radius" DefPropAtom 'surf' 'selected' SelectAtom 'mol.selected' AddSurface (vdw) contact $rad shaded 0 SelectAtom 'mol.selected & ! surf' TrimSurface ($rad + 0.1) SelectAtom 'surf' end
If you want to extend the program with your own set of commands, it is especially useful to have the macro definining them be automatically executed each time you start up the program. See the section on Configuration for a description of how to do that.
Another set of commands that is very useful for startup macros are the commands for setting default graphics attributes, like ColorInit and StyleInit. So if you would like new graphics elements to be displayed in red instead of the default blue, you can put the following command into one of your startup macros:
ColorInit 1 0 0
SelectAtom 'mol.new' SelectBond 'mol.new' XMacStand cpk.mac
The location of the following files can be changed directly with the PathNames command:
When a small molecule is read with the ReadSybyl or ReadXyz command , MOLMOL will either take the connectivity information from the input file, or add the bonds automatically. Entries in the residue library are not necessary in this case, only the ATOMTYPES section of the residue library is used.
The format of the residue library corresponds to the one used by the program DYANA, it is documented in the manual which is accessible from the web page. Three libraries are distributed with MOLMOL, all of them contain standard amino acids and nucleic acids.
If you need to add entries to the residue library, the WriteLib command of MOLMOL can help you doing this. After you modify the library, it is a good idea to check it with the ReadLib command.PathNames '' '' '' '' '0' '' '/usr/local/molmol/setup/pdb.lib' '' ''
Whenever a command appears in the text, it can be used as link to the corresponding online manual page.
ReadPdb 1pit.pdb
(File->Read Mol->PDB)
Read the structures from the given file in PDB format.
DialStyle on
(Button:style)
Open the style dialog.
StyleBond invisible
(Dialog:Style)
When you want to show only part of the bonds, it's often
most convenient to make everything invisible first and
then "build up" the visible parts piece by piece. Everything
is selected by default, so this will make all bonds invisible.
DialSelect on
(Button:selection)
Open the selection dialog.
SelectBond 'bb'
(Dialog:Select)
Now we select all bonds in the backbone. bb is a
shortcut for that, a so called "predefined property".
Activate the HelpProp (Help->Prop)
command for getting a list of all predefined properties.
The definitons will also give you an impression of how
the full MOLMOL expression syntax looks, in this tutorial
we will mostly use shortcuts.
StyleBond line
(Dialog:Style)
Now we see only the backbone drawn with lines.
SelectAtom ':2-56 & bb'
(Dialog:Selection)
Fit to_first
(Edit->Fit)
The structures in the example file were already superimposed, but
for demonstration purposes we do it again. We just use the backbone
atoms of residues 2 to 56 for superposition, & is
short for and.
You can now also try to rotate and zoom the structure. See HelpMouse (Help->Mouse) for a description on how to use the mouse.
DefPropRes 'inter' ':2,4,6,8,9,11,16,18,19,21-25,27,30,32-35,38,40,43,45,47,48,51,54'
(Prop->Define->Res)
We will display the well-defined (interiour) sidechains different
from the other ones. We could select them with the residue numbers
each time, but we can also define our own shortcut (property) that
we can use each time we want to select these.
SelectBond 'res.inter & heavysc'
(Dialog:Select)
We now select the bonds to heavy atoms in the well-defined sidechains
using the inter property that we just defined (since we
defined it for residues, we have to write res.inter if we
want to use if for bonds) and the predefined property heavysc
(for heavy sidechain).
DialColor on
(Button:color)
Open the color dialog.
StyleBond line
(Dialog:Style)
ColorBond 1 0 0
(Dialog:Color)
Draw the selected bonds as red lines. The commands take
colors as RGB (Red-Green-Blue) values, the color dialog
allows you to choose the most common colors by name.
SelectBond '! res.inter & heavysc'
(Dialog:Select)
Select the rest of the sidechains. ! is short for
not.
StyleBond line
(Dialog:Style)
ColorBond 0 1 0
(Dialog:Color)
Draw the selected bonds as green lines.
SelectBond 'visible'
(Dialog:Select)
So far we just displayed bonds as lines, mainly because it makes
the display much faster. We now select all visible bonds...
StyleBond neon
(Dialog:Style)
... and display them as neon (cylinder with round ends).
RadiusBond 0.15
(Button:bond rad)
Make the cylinders somewhat thinner.
PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75
(Options->Plot->Parameters)
Adapt the plot paramters to our needs. Read the online manual
page carefully, understanding these parameters is very important
for using the program successfully!
PlotTiff example1.tif
(File->Plot->TIFF)
Create a TIFF plot. External tools were used for the conversion
to GIF used for this page.
WriteDump example1.mml
(File->Write Dump)
Save the current state for later use.
Quit no
(File->Quit)
Quit the program. Because we already saved a dump file, there is
no need for saving the program state again.
UserInterface 0 0 1 1 1 1 ReadPdb 1pit.pdb DialStyle on StyleBond invisible DialSelect on SelectBond 'bb' StyleBond line SelectAtom ':2-56 & bb' Fit to_first DefPropRes 'inter' ':2,4,6,8,9,11,16,18,19,21-25,27,30,32-35,38,40,43,45,47,48,51,54' SelectBond 'res.inter & heavysc' DialColor on StyleBond line ColorBond 1 0 0 SelectBond '! res.inter & heavysc' StyleBond line ColorBond 0 1 0 SelectBond 'visible' StyleBond neon RadiusBond 0.15 PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75 PlotTiff example1.tif WriteDump example1.mol Quit no
ReadPdb 1pit.pdb
(File->Read Mol->PDB)
Read the structures from the given file in PDB format.
DialSelect on
(Button:selection)
Open the selection dialog.
SelectMol 'num > 1'
(Dialog:Select)
We only want to make a schematic drawing of the first of the
20 structures, so we select all but the first...
RemoveMol
(Edit->Structure->Remove Mol)
... and remove them.
SelectAtom ''
(Dialog:Select)
The standard orientation for BPTI is the one where the pricipal
axes are aligned to the coordinate axes. So we select all atoms...
Fit to_axes
(Edit->Fit)
... and do the alignment.
XMacStand ribbon.mac
(File->Macro->Execute Standard)
Use the standard macro for creating a ribbon display. If you are
interested in the detailed commands used to do all of the steps
manually, have a look at this macro. We could have used
Button:ribbon instead, but this would have done an
automatic determination of the secondary structure first, while we
preferred to use the definitions from the PDB file in this case.
DialColor on
(Button:color)
Open the color dialog.
BackColor 0 0 0
(Dialog:Color)
Change the background color to black.
SelectPrim 'num = 10'
(Mouse)
The second helix seems to be defined too long. So we select it
by clicking on it with the mouse...
LengthPrim 46 55
(Prim->Length)
... and make it half a residue shorter at each end.
You could now use commands like SplitRibbon, StyleRibbon, SizeRibbon and ColorPrim to modify the display, but for the moment we are happy with the default.
PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75
(Options->Plot->Parameters)
Adapt the plot paramters to our needs. Read the online manual
page carefully, understanding these parameters is very important
for using the program successfully!
PlotTiff example2.tif
(File->Plot->TIFF)
Create a TIFF plot. External tools were used for the conversion
to GIF used for this page.
WriteDump example2.mml
(File->Write Dump)
Save the current state for later use.
Quit no
(File->Quit)
Quit the program. Because we already saved a dump file, there is
no need for saving the program state again.
UserInterface 0 0 1 1 1 1 ReadPdb 1pit.pdb DialSelect on SelectMol 'num > 1' RemoveMol SelectAtom '' Fit to_axes XMacStand ribbon.mac DialColor on BackColor 0 0 0 SelectPrim 'num = 10' LengthPrim 46 55 PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75 PlotTiff example2.tif WriteDump example2.mol Quit no
ReadPdb 1pit.pdb
(File->Read Mol->PDB)
Read the structures from the given file in PDB format.
The structures have to be superimposed for the next step. In our example they are already, otherwise we would do that here as explained in Example 1
XMacStand sausage.mac
(File->Macro->Execute Standard)
Use the standard macro for creating a sausage display. If you are
interested in the detailed commands used to do all of the steps
manually, have a look at this macro.
DialSelect on
(Button:selection)
Open the selection dialog.
SelectMol 'name != "mean"'
(Dialog:Select)
The macro created a mean structure. We can get rid of the original
20 structures now, so we select all but the mean structure...
RemoveMol
(Edit->Structure->Remove Mol)
... and remove them.
DialStyle on
(Button:style)
Open the style dialog.
SelectBond ''
(Dialog:Select)
StyleBond invisible
(Dialog:Style)
The bonds of the mean structure are still visible, select
all bonds and make them invisible
SelectAtom ''
(Dialog:Select)
The standard orientation for BPTI is the one where the pricipal
axes are aligned to the coordinate axes. So we select all atoms...
Fit to_axes
(Edit->Fit)
... and do the alignment.
We now have the basic sausage display. Now you will learn how to use "variable color", i. e. a separate color for each residue. We will use the secondary structure type for determining the color, it is also common to use physical properties like exchange rates.
CalcSecondary
(Calc->Secondary)
So we calculate the secondary structure first.
PaintRibbon atom
(Prim->Ribbon->Paint)
This causes the color of each sausage part to be taken from the
atom that was used to define it. Because atoms also have a blue
default color, there is no visible change yet.
DialColor on
(Button:color)
Open the color dialog.
SelectAtom '@CA'
(Dialog:Selection)
ColorAtom 0.7 0.7 0.7
(Dialog:Color)
The macro that we used took the CA atoms to define the sausage,
so we have to set the color of the CA atoms. We first select all
CA atoms and color them grey.
SelectAtom '@CA & res.helix'
(Dialog:Selection)
ColorAtom 1 0 0
(Dialog:Color)
Then we select all CA atoms within helices and color them red.
SelectAtom '@CA & res.sheet'
(Dialog:Selection)
ColorAtom 0 1 1
(Dialog:Color)
In the same way we color all CA atoms within a sheet cyan.
BackColor 0 0 0
(Dialog:Color)
Change the background color to black.
PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75
(Options->Plot->Parameters)
Adapt the plot paramters to our needs. Read the online manual
page carefully, understanding these parameters is very important
for using the program successfully!
PlotTiff example3.tif
(File->Plot->TIFF)
Create a TIFF plot. External tools were used for the conversion
to GIF used for this page.
WriteDump example3.mml
(File->Write Dump)
Save the current state for later use.
Quit no
(File->Quit)
Quit the program. Because we already saved a dump file, there is
no need for saving the program state again.
UserInterface 0 0 1 1 1 1 ReadPdb 1pit.pdb XMacStand sausage.mac DialSelect on SelectMol 'name != "mean"' RemoveMol DialStyle on SelectBond '' StyleBond invisible SelectAtom '' Fit to_axes CalcSecondary PaintRibbon atom DialColor on SelectAtom '@CA' ColorAtom 0.7 0.7 0.7 SelectAtom '@CA & res.helix' ColorAtom 1 0 0 SelectAtom '@CA & res.sheet' ColorAtom 0 1 1 BackColor 0 0 0 PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75 PlotTiff example3.tif WriteDump example3.mol Quit no
ReadPdb 1pit.pdb
(File->Read Mol->PDB)
Read the structures from the given file in PDB format.
DialSelect on
(Button:selection)
Open the selection dialog.
SelectMol 'num > 1'
(Dialog:Select)
We only want to plot of the surface of the first of the
20 structures, so we select all but the first...
RemoveMol
(Edit->Structure->Remove Mol)
... and remove them.
SelectAtom ''
(Dialog:Select)
The standard orientation for BPTI is the one where the pricipal
axes are aligned to the coordinate axes. So we select all atoms...
Fit to_axes
(Edit->Fit)
... and do the alignment.
XMacStand pdb_charge.mac
(File->Macro->Execute Standard)
For calculating the electrostatic potential, it is very
important to have the proper charge for all residues. Since
the charges are normally not given in a PDB file, we call
this macro that does the typically necessary changes, like
GLU to GLU-. You should manually check whether all charges
are correct before calculating the potential. In this case
we notice that we are missing the charges at the termini,
because the sequence in the file just starts with an ARG
and ends with an ALA.
SelectRes ':1'
(Dialog:Select)
So we select the first residue...
ChangeRes atoms 'NARG'
(Edit->Structure->Change Res)
And convert it to NARG, the form of ARG with an N-terminal
group, maintaining the old coordinates.
CalcAtom 'HN*'
(Calc->Atom)
It is not really needed for this example, but for
demonstration purpose we calculate the coordinates of the
HN2 and HN3 that are missing because these atoms did not
exist in the ARG residue that we originally read from the
file.
SelectRes ':58'
(Dialog:Select)
The same way we select the last residue...
ChangeRes atoms 'CALA'
(Edit->Structure->Change Res)
... convert it to CALA, the form of ALA with a C-terminal
group...
CalcAtom 'O*'
(Calc->Atom)
... and calculate the coordinates of OA and OB. These we
actually need, because they hold charges.
SelectAtom 'heavy'
(Dialog:Select)
We only use the heavy atoms for calculating potential and surface.
If protons are also used, they "dampen" the charges visible at
the surface, which leads to less clear pictures.
CalcPot (vdw) (simplecharge) 2 80 1.4 0.3 2 10 zero 'bpti.pot'
(Calc->Potential)
Now we can calculate the electrostatic potential, storing the
result in the file bpti.pot. Check the help page for
details about the arguments. We accept the defaults, except for
the charge, where we choose the simple model without partial
charges, only charges located on one or two atoms of each
charged residue. Note that the current drawing precision
(see DrawPrec) determines the grid width for the
calculation, we keep the default of 3 that leads to a grid
spacing of 1 Angstrom.
AddSurface (vdw) contact 1.4 shaded 0
(Prim->Surface->Add)
Calculate the contact surface.
ReadPot bpti.pot
(File->Read Potential)
Read the previously calculated potential. The values are
now mapped onto the surface, so this step has to be executed
after calculating the surface.
PaintSurface pot 0.0 1.4 0.2 3 '-0.5 1 0 0 0.0 1 1 1 0.5 0 0 1'
(Prim->Surface->Paint)
Define how the surface is colored. We choose calculating the
color from the previously read potential. The second to fifth
arguments are not used in this case, the last argument gives
the mapping from potential to color, see the help page for
details.
PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75
(Options->Plot->Parameters)
Adapt the plot paramters to our needs. Read the online manual
page carefully, understanding these parameters is very important
for using the program successfully!
PlotTiff example4.tif
(File->Plot->TIFF)
Create a TIFF plot. External tools were used for the conversion
to GIF used for this page.
WriteDump example4.mml
(File->Write Dump)
Save the current state for later use.
Quit no
(File->Quit)
Quit the program. Because we already saved a dump file, there is
no need for saving the program state again.
UserInterface 0 0 1 1 1 1 ReadPdb 1pit.pdb DialSelect on SelectMol 'num > 1' RemoveMol SelectAtom '' Fit to_axes XMacStand pdb_charge.mac SelectRes ':1' ChangeRes atoms 'NARG' CalcAtom 'HN*' SelectRes ':58' ChangeRes atoms 'CALA' CalcAtom 'O*' SelectAtom 'heavy' CalcPot vdw simplecharge 2 80 1.4 0.3 2 10 zero 'bpti.pot' AddSurface vdw contact 1.4 shaded 0 ReadPot bpti.pot PaintSurface pot 0.0 1.4 0.2 3 '-0.5 1 0 0 0.0 1 1 1 0.5 0 0 1' PlotPar 21 29.7 18 0 500 0 1 1 0 3 1.0 75 PlotTiff example4.tif WriteDump example4.mol Quit no
Reto Koradi, kor@mol.biol.ethz.ch