Announce: RasMol

Arne Mueller amuelle3 at gwdg.de
Sun May 17 15:58:39 EST 1998

Dear All,

I've prepared some small patches to Roger Sayle's RasMol programm. It's
something like an extended version based on RasMol version 2.6.beta from 
October 96. 

You can download the sources from:

here's the a copy of the README.ext file I've written to describe the 
patches, please note that's still a beta release and I cannot guarantee 
for the correctness of the program (I think nobody can do this ...). The
release of these patches is in agreement with Roger Sayle.


			    RasMol 2.6x1
              Molecular Graphics Visualisation tool.

                           Roger Sayle, 1995
			   Arne Mueller, 1998	

This is the description of some extensions to RasMol version 2.6beta
October 1996 from Roger Sayle. 

Here´s the list of exstensions I´ve applied to RasMol:

1. ability to list all chains, groups or atoms of current selection

	show selected <atom | group | chain>
2. list phipsi angles of current selection
	show phipsi

3. export phipsi angles as datafile for Ramachandran plots

	write ramachan

4. omega angle (cisbonded peptids) as regular expression

	set cisangle INTEGER_VALUE
	select cisbonded 
	select cisbonded and pro

5. export current representation as POVRay file

	write povray FILENAME

Description and usage of the new commands and expressions:

1. "show selected"
This command is an extension of the existing "show" command.
It lists all currently selected groups of your molecule. You get the 
following information:
- chain identifier (if there is more then one chain!)
- group name
- residue number (of the group)		
- secondary structure state of the group, Helix (H), Sheet (S), Turn
  Coil (C), this is  for aminoacids only
- the number of atoms of this group that are selected and the
  absolute number of atoms in the group		

load the molecule "3crn.pdb" from the RasMol-data directory. This is the 
CRO-Repressor from lambda phage which binds to specific lambda-DNA as a 
dimer. Maybe you are interested in quikly listing all residues of the 
protein near by DNA and so possibly involved in DNA-binding. In a first 
step you can use the existing "select within" expression for this.  
here´s a section of my RasMol-commandline:

	RasMol> color chain
	RasMol> select within(3.5, DNA) and Protein
	69 atoms selected!
	RasMol> color red 			
	RasMol> show selected
	Chain: L  Group:  ARG  10 (H)   (1/11)  atoms
	Chain: L  Group:  THR  16 (H)   (1/7)   atoms
	Chain: L  Group:  GLN  17 (H)   (4/9)   atoms
	Chain: L  Group:  LYS  27 (C)   (4/9)   atoms
	Chain: L  Group:  GLN  28 (H)   (2/9)   atoms
	Chain: L  Group:  GLN  29 (H)   (3/9)   atoms
	Chain: L  Group:  SER  30 (H)   (2/6)   atoms
	Chain: L  Group:  GLN  32 (H)   (3/9)   atoms
	Chain: L  Group:  LYS  40 (C)   (1/9)   atoms
	Chain: L  Group:  ARG  41 (C)   (2/11)  atoms
	Chain: L  Group:  PRO  42 (C)   (1/7)   atoms
	Chain: L  Group:  ARG  43 (C)   (5/11)  atoms
	Chain: L  Group:  PHE  44 (C)   (3/11)  atoms
	Chain: R  Group:  ARG  10 (H)   (1/11)  atoms
	Chain: R  Group:  THR  16 (H)   (2/7)   atoms
	Chain: R  Group:  GLN  17 (H)   (3/9)   atoms
	Chain: R  Group:  LYS  27 (C)   (2/9)   atoms
	Chain: R  Group:  GLN  28 (H)   (2/9)   atoms
	Chain: R  Group:  GLN  29 (H)   (3/9)   atoms
	Chain: R  Group:  SER  30 (H)   (1/6)   atoms
	Chain: R  Group:  GLN  32 (H)   (2/9)   atoms
	Chain: R  Group:  LEU  33 (H)   (1/8)   atoms
	Chain: R  Group:  LYS  40 (C)   (1/9)   atoms
	Chain: R  Group:  ARG  41 (C)   (5/11)  atoms
	Chain: R  Group:  ARG  43 (C)   (3/11)  atoms
	Chain: R  Group:  PHE  44 (C)   (3/11)  atoms     	
What happens?	
First I color the molecules by chain, so that every chain has it´s own 
color. Then I select all groups of the molecules that are within a
of 3.5 Angstom from the DNA (measured from any point inside the DNA 
molecule) and that are part of the protein. RasMol reports that 69 Atoms 
has been selected. Now we can visualize the atoms with the third command
that colors these atoms in red. The extension of the "show" command can
now be 
helpfull to list all the groups (aminoacids) that are selected with
information on the command-window. Let me explain the last line of the
output: It says that there´s selected a group of Chain ´R´, it´s
residue 44 which is located in a Coil (or Turn), Phenylalanin consits of
atoms but only 3 are in the current selection (means that there are only
3 of 
11 atoms inside a distance of 3.5 Angstrom of the DNA).

Extensions of the "show selected" command:
The following long forms of the commad are available:

	show selected atom
	show selected group  ( same as "show selected" )
	show selected chain	

Assume you´re only interested in the aromatic groups of the above
here´s my RasMol-commandline:
	RasMol> select selected and aromatic
	6 atoms selected!  
	RasMol> show selected atom
	Chain: L  Group:  PHE  44 (C)  Atom:  N   1182
	Chain: L  Group:  PHE  44 (C)  Atom:  CD2 1189
	Chain: L  Group:  PHE  44 (C)  Atom:  CE2 1191
	Chain: R  Group:  PHE  44 (C)  Atom:  N   1747
	Chain: R  Group:  PHE  44 (C)  Atom:  CD1 1753
	Chain: R  Group:  PHE  44 (C)  Atom:  CE1 1755  
	RasMol> show selected chain
	Chain: L        no group completely selected
	Chain: R        no group completely selected  

"select selected and aromatic" means that you coose te aromatic subset
of your current selection (a quick way). I list all the selected atoms,
and you see these atoms are in Phenylalanins of two chains (both with
residue number 44). The last two columns give you a detailed description
of the atom in your selection. At last, there´s no group completely
Even there are some selected atoms in each chain there must be at least
group in a chain completely selected to produce informative output! 

look at this:

	RasMol> select aromatic
	96 atoms selected! 
	RasMol> show selected chain
	Chain: L        (4/66)  groups
	Chain: R        (4/64)  groups  

You select all aromatic aminoacids of all chains (these are 4 of a total
66 in chain L). 

2. PHI-PSI Angles

In the current patchlevel you cannot youse phi/psi angle information as
a regular expression to select residues but you can list the phi/psi
combination of the currently selected residues.

... assume you continue from the recent selection above:

	RasMol> show phipsi
	Chain: L  Group:  PHE  44 (C)   Phi = -100.6    Psi = 25.68
	Chain: L  Group:  PHE  46 (H)   Phi = -103.3    Psi = -40.62
	Chain: L  Group:  TRP  58 (H)   Phi = -75.01    Psi = -44.79
	Chain: L  Group:  TYR  61 (H)   Phi = -119.2    Psi = 161.4
	Chain: R  Group:  PHE  44 (C)   Phi = -91.57    Psi = 7.374
	Chain: R  Group:  PHE  46 (H)   Phi = -77.93    Psi = -23.86
	Chain: R  Group:  TRP  58 (H)   Phi = -51.71    Psi = -43.06
	Chain: R  Group:  TYR  61 (H)   Phi = -121.5    Psi = -135.1    

The last line of the output tells you Thyrosin 61 in chain R is in a
and has a phi/psi combination of -121.5/-135.1 degrees. The angles are 
measure in degrees from -180.0 to +180.0. 

3. Writing a datafile with PHI-PSI Angle information:

You can write the phi/psi angle combinations of any kind of selection
into a datafile. Non-aminoacid groups are skipped.

To write the above angles into a file with name "aromatic.ang" do this:

	RasMol> write ramachan "aromatic.ang" 

The contens of the file is then:

# File: aromatic.ang
# Creator: RasMol Version 2.6
# Brookhaven Code: 3CRO
# phi/psi-angles for Ramachandran-Plot
#               Phi      Psi
PHE     L44     -100.6  25.68
PHE     L46     -103.3  -40.62
TRP     L58     -75.01  -44.79
TYR     L61     -119.2  161.4
PHE     R44     -91.57  7.374
PHE     R46     -77.93  -23.86
TRP     R58     -51.71  -43.06
TYR     R61     -121.5  -135.1   

Column two summarizes the chain and residue number. Every kind of
program shoud be able to plot an appropiate graph (Ramachandran Plot). I 
prefere gnuplot, you can get it for free from:
	for the much more powerfull version 3.6 beta look at

Call gnuplot from the command-line and ...

	gnuplot> plot "aromatic.ang" using 3:4 

will procude a basic Ramachandran Plot (you´ve only to adjust scaling of

To save data for a complte Ramachandran Plot you should select all
expect Glycin, because it has fuzzy phi/psi angle combinations:

	RasMol> select not gly
	1857 atoms selected!     
Off course this data representation is not the very best because you´d
like to
produce a contour plot or something three dimensional so you can
regions where datapoints are very crowded - maybe I´ll change this in

4. Identifieing Cispeptides from Omega angles:
A peptidebond connecting two aminoacids is in a mesomeric state - it's 
somewhere between singel- and double-bond. Normally the torsion angle
is omega) of souch a peptidebond is between 170 and 180 degrees, where
carboxyl groups of the two aminoacids point in different directions so
there is a maximum space between these groups, this geometry is locally
most favorible. This omega angle state is the 'trans' state. If the
goups are on the same site of the two residues they bump each other, in
case the omega angle is geometrically in cis state and is  normally
10 degrees. Normally all residues are in trans state, but there are
especially for Prolines. It can be very usefull to know about
when studing a protein with RasMol. 

The protein Ribonuclease T1 (pdb code '1det') contains two prolines with
angles in cis. 

Here's a pice of my RasMol-commandline which identifies these groups:

	RasMol>  color white
	RasMol> select
	892 atoms selected!
	RasMol>  color white
	RasMol> set cisangle 10
	RasMol>  select cisbonded
	32 atoms selected!
	RasMol>  select cisbonded
	32 atoms selected!
	RasMol> color red
	RasMol>  show phipsi
          Group:  TYR  38 (C)   Phi = -94.72    Psi = 139.1
	  Group:  PRO  39 (C)   Phi = -79.79    Psi = 161.1     Omega = -0.1959
          Group:  SER  54 (C)   Phi = -89.17    Psi = 171.2
          Group:  PRO  55 (C)   Phi = -68.15    Psi = 153.2     Omega =

After coloring the whole molecule in white I set the cutoff for
cis peptidbonds to 10 degrees. Then I select all peptides in cis state
visualize these with red color in the RasMol display. I list the phi/psi
combinations of the selected residues, in case that there are
cis-peptides. The
'show phipsi' command also lists the omega angles (but these are ignored
the 'write ramachan' command!).  

You don't need to set the cutoff for the omega angle, the default value
is 90 

4. Export the current graphical representation tp POVRay:

POVRay is a raytracer. A raytracer can calculate a photorealistic image
with light models in  high quality graphics from a 3D-description which 
could be e.g a molecule.  

I extended the export function for RasMol that writes a POVRay input


	write povray FILENAME	

'FILENAME' must not' have the extension '.pov', because RasMol writes


The '.pov' file containts the global description of the scene (molecule)
parameters you can change. The '.inc' contains all data for the scene to 
render, don't touch it. 

Description of the '.pov' file:

The first part of the file contains information about the view and the
source of the scene - you should be carefull to change it. 'View'
'light_source' and background (colour) is taken from the current RasMol 

The 'Union' that follows contains general defenitions which are applied
all elements of the molecule. These are:

	- specular 0.5
	- roughness 0.01
	- diffuse 0.8
	- ambient 0.2
If you don't like the default values for the elumination model you can
different values for these parameters. The default values produce a
diffuse light, the 'material' the elements of the molecule are made of
is a
bit shiny (smooth), it´s related to the 'specular' elumination in

	- #declare T = 0

You can set 'T' to a value between '1.0' (solid) and '0.0' (complete 
transparent). Setting it to '0.8' you´ve a slightly transparent
molecule. This
might be usefull for combining two representations:

Combining two ore more representations:

You can create more than one representation of your molecule with
RasMol. Save 
eaach representation with 'write povray represx' (where x is 1, 2, ...).
then one '.pov' file, e.g. to combine 'repres1' with ´repres2´ edit

	#declare T = 0
	#include "repres1.inc"

	#declare T = 0
	#include "repres1.inc"
	#declare T = 0
	#include "repres2.inc"	

Then POVRay combines both representations. You can also make one of
a little transparent by changing the 'T´ parameter, uncomment the
parameter for this (as the name indicates it renders the model hollow).

Don't touch the transformations matrix! RasMol uses the original
of the pdb-file and applies a transformation matrix on it to realize
zooming and translation.

For testing a POV-file you can uncomment '//no_shadow' to 'no_shadow',
doesn't calculate any shadow then which is much quicker in rendering. 

RasMol features supportet from the POVRay export-filter:

- geometric transformation (rotation, translation, zooming)
- spheres
- cylinders (including wireframe and backbone)
- dots
- SS- and H-Bonds
- colours

The concept is to create a high quality inmage with POVRay that's
with the representation in RasMol (expect it's quality).

RasMol feature _NOT_ yet supportet from the POVRay export-filter:

- curved representations (cartoons, trace, ribbons)
  This is because RasMol doesn't save any triangles which build the
  elements (this is also the reason why RasMol cannot save these 
  representations as vector postscript at the moment). I hope to find a
  to export  these things to POVRay since cartoons are frequnetly
- dotted lines
  just forgot this feature ;-) . I´ll fix it.

- slabbing
  Ugly problem. Because RasMol uses a transformation matrix the slab
  is transformed, too, this results in a strange slabbing when rotating
  zooming the molecule. I´ve to apply a reverse transformation matrix to
  the slab plane (haven´t done this yet ...).
- labels
  In general no problem in POVRay version 3, but I havn't yet decided
  how to place labeles. There´s also the same matrix problem as with

- stereo
  not yet implemented

I hope to fix these things in future, but I don't know when there´ll be
"perfect" POVRay output.


Use the command:

	write povray myfile

to write a POVRay-file,

you can render it on a unix-commandline with:

	povray +Imyfile.pov +Omyfile.tga +H400 +W400 +v  

You´ll get a 400x400 TGA-image with name 'myfile.tga'.

You can download POVRay for nearly all platforms, look at


Some important notes:

- on linux-systems with newer kermel-versions (e.g. 2.0.33) you
  get compilation errors in 'rasmol.c' with 'fd_set'. If so uncomment
  #define USE_FD_SET_TYPE in `rasmol.h`.

- There's a known bug in RasMol. It'll crash when first choosing a large
  factor with wireframe or spacefill representation and then switching
  backbone, cartoons, trace or ribbons! Maybe I can fix this in future.

- The file 'rasmol.hlp' hasn't been updated with my changes.

- Currently there are no executables of the patched RasMol version
  you´ve to compile the sourcecode yourself, but it shell work, since
  are no changes in platform specific parts (see file 'INSTALL' for
  I hope to build a Mac and a win95/NT executable as soon as possible. 

Download the patch or the patched version:

You can get the patch and the complete version from

( )

Patching your old RasMol2.6b version from October 96 (for unix):

Copy the patch-file in the RasMol source directory and do the following:

patch -p1 <  patchfile 2>&1 | tee patched.prot 

A report of the patch will be created in 'patched.prot', look in it for
string "failed", if you find it something went wrong and you've to get
complete patched version, otherwise you can recompile your patched


Please report bugs and suggestions to:

Arne Mueller
amuelle3 at gwdg.de


Arne Mueller            
Institut fuer Mikrobiologie und Genetik
Abt. Molekulare Genetik und 
Praeparative Molekularbiologie
Universitaet Goettingen
Grisebachstr. 8
37077 Goettingen        
phone: +49-551-399654   | fax  : +49-551-393805   
email: amuelle3 at gwdg.de | http://www.img.bio.uni-goettingen.de

More information about the Bio-soft mailing list

Send comments to us at biosci-help [At] net.bio.net