RasMol v2.6 Release Notes Roger Sayle Biomolecular Structure Department, Glaxo Wellcome Research & Development, Stevenage, Hertforshire, U.K. September 1995. [1] INTRODUCTION This document describes the many new features and enhancements introduced in RasMol v2.6. A more complete description of the functionality of the RasMol molecular graphics package is given in the RasMol user manual. This documentation is intended for existing users of RasMol v2.5, and describes only the changes made since the last release in October 1994. [2] RENDERING [2.1] Display of Protein Cartoons The ribbons representation in RasMol has been extended to allow the display of Richardson (MolScript) style protein cartoons. The are currently implemented as thick (deep) ribbons. The easiest way to obtain a cartoon representation of a protein is to use the new 'cartoon' option on the 'display' menu. The "cartoon " or "cartoons " command on the RasMol command line represents the currently selected residues as a deep ribbon with width specified by the command's argument. Using the command "cartoons" without a parameter the ribbons width is taken from the protein's secondary structure, as described in the ribbons command. By default, the C-terminus of beta-sheets are displayed as arrow heads. This may be enabled and disabled using the "set cartoons " command. The depth of the cartoon may be adjusted using the "set cartoons " command. The "set cartoons" command without any parameters returns these two options to their default values. [2.2] Side-by-Side Stereo Display RasMol now provides side-by-side stereo display of images. Stereo viewing of a molecule may be turned on (and off) either by selecting "Stereo" from the "Options" menu, or by typing the command "stereo on". From the RasMol command line. The separation angle between the two views may be adjusted with the "set stereo [-]" command, where positive values result in 'relaxed' viewing and negative values in 'crossed' viewing. Currently, stereo viewing is not supported in vector PostScript output files. [2.3] Display of Double and Triple Bonds RasMol is now able to display double and triple bonds as multiple lines or cylinders. Currently bond orders are only read from MDL Mol files, Sybyl Mol2 format files, Tripos Alchemy format files and suitable Brookhaven PDB files. Double (and triple) bonds are specified in PDB files by specifying a given bond twice (and three times) in CONNECT records. The display of bond orders is controlled by the RasMol command "set bonds ". The command "set bonds on" enables the display of bond order, and the commands "set bonds off" and "set bonds off" disable them. [2.4] Smooth alpha-carbon Trace The semantics of the RasMol "trace" command have been changed. In versions of RasMol prior to version 2.6, the "trace" command was synonymous with the RasMol "backbone" command, drawing a straight line or cylinder between consecutive alpha carbon positions. In version 2.6, "trace" now displays a smooth spline between consecutive alpha carbon positions. This spline does not pass exactly through the alpha carbon position of each residue, but follows the same path as "ribbons", "strands" and "cartoons". Note that each residue may be displayed as either a ribbon, strands, cartoon or trace, and enabling one of these representation disables the others. However, a residue may be displayed simultaneously as backbone and one of the above representations [though this may change in future versions of RasMol]. [2.5] Distance Monitors RasMol now allows the display of 'distance monitors'. A distance monitor is a dashed (dotted) line between an arbitrary pair of atoms, optionally labelled by the distance between them. The RasMol command "monitor " adds such a distance monitor between the two atoms specified by the atom serial numbers given as parameters. Distance monitors are turned off with the command "monitors off". By default, monitors display the distance between its two end points as a label at the centre of the monitor. These distance labels may be turned off with the command "set monitors off", and re-enabled with the command "set monitors on". Like most other representations the colour of a monitor is taken from the colour of its end points unless specified by the "colour monitors" command. Distance monitors may also be added to a molecule using a mouse as described in section [3.5] [2.6] Dashed Wireframe, Backbone and Strands Wireframe, backbone and strands representations may now be displayed with dashed (dotted) lines. This is enabled by allowing the "dash" or "dashes" parameters to the "wireframe", "backbone" and "strands" commands. [2.7] Single Letter Amino Acid Labels The format specifier "%m" has been added to strings in the RasMol "label" command. This allows amino acid residues to be labelled with a single letter amino acid code, rather than the three letter amino acid code "%n". For example, try the commands "select alpha" and "label "%m%r"". [2.8] Axes Labels RasMol now displays the characters X, Y and Z on the cartesian axes displayed with the command "set axes on". These letters label the positive direction of the respective axes. [3] USER INTERACTION [3.1] Enabling/Disabling Atom Picking. In versions of RasMol prior to version 2.6, clicking on an atom with the mouse resulted in it identification and the display of it residue name, residue number, atom name, atom serial number and chain in the command window. This behaviour may be disabled with the command "set picking none" and restored with the command "set picking ident". Disabling picking is useful when executing the "pause" command in RasMol scripts as it prevents the display of spurious message on the command line whist the script is suspended. [3.2] Measuring Distances, Angles and Torsions. In addition to enabling and disabling picking, RasMol version 2.6 allows the interactive measurement of distances, angles and torsions. This functionality is achieved using the commands "set picking distance", "set picking angle" and "set picking torsion" respectively. In these modes, clicking on an atom results in it being identified on the rasmol command line. In addition every atom picked increments a modulo counter such that in distance mode, every second atom displays the distance between this atom and the previous one. In angle mode, every third atom displays the angle between the previous three atoms and in torsion mode every fourth atom displays the torsion between the last four atoms. By holding down the shift key while picking an atom, this modulo counter is not incremented and allows, for example, the distances of consecutive atoms from a fixed atom to be displayed. [3.3] Labelling Atoms with the Mouse. The mouse may also be used to toggle the display of an atom label on a given atom. The RasMol command "set picking label" removes a label from a picked atom if it already has one, or displays a concise label at that atom position otherwise. [3.5] Adding Distance Monitors with the Mouse. RasMol version 2.6 also allows the interactive addition of distance monitors to an image using the "set picking monitor" command. The behaviour of the mouse when picking in monitor mode is similar to that in distance mode described above. The shift key may be used to form distance monitors between a fixed atom and several consecutive positions. A distance monitor may also be removed (toggled) by selecting the appropriate pair of atom end points a second time (much like labelling with the mouse acts as a toggle). [3.4] Centering Rotation with the Mouse. A molecule may also be centered on a specified atom position using the RasMol command "set picking centre" or "set picking center". In this mode, picking an atom causes all futher rotations to be about that point. [4] COMMAND INTERFACE [4.1] Refresh Command The command "refresh" has been added to the RasMol command language to force the display of the current image. This is performed automatically on the command line. However, the semantics of a RasMol script file are that all of the commands are executed sequentially and the image on the screen is only updated after all commands have been executed. The new "refresh" command allows a script to display intermediate steps in the rendering process. One possible application of this is in the production of animations, however the delay between successive frames is dependent upon the performance of the machine running RasMol. [4.2] Pause/Wait Command Potentially one of the most useful additions to the RasMol command language is the "pause" (synonymously "wait") command. This command may be executed in RasMol script files to suspend the sequential execution of commands and allow the user to examine the current image. When RasMol executes a "pause" command in a script file, it suspends execution of the rest of the file, refreshes the image on the screen and allows the manipulation of the image using the mouse and scroll bars. Once a key is pressed, control returns to the script file at the line following the "pause" command. While a script is suspended the molecule may be rotated, translated, scaled, slabbed and picked as normal, but all menu commands are disabled. Currently there is no way for the user to interrupt the execution of a script, for example by typing control-C or pressing escape, though this may be added in future versions of RasMol. The "pause" can probably be used most effectively with "echo" commands in education pre-scripted demonstrations, where a description of the current image is presented to the user/student. Typically the command before a "pause" should be "echo Press any key to continue". [4.3] Controlling Save/Write in Scripts One of the unpopular changes implemented in RasMol between versions 2.4 and 2.5 was the disabling of save and write commands from within RasMol script files. With the increasing use of RasMol in conjunction with the Internet, the ability to generate/overwrite files was regarded as a security hazards. Many sites now exchange RasMol script files that could potentially overwrite system files and alter acess restrictions. To prevent such problems, RasMol v2.5 disallowed the use of save and write commands within scripts. However, this has prevented the use of script files in generating animated sequences of images. The proposed solution to this problem is the addition of the RasMol "set write " command. This command enables (and disables) the use of "save" and "write" in scripts, but may only be executed from the command line. By default, this value is "false", prohibiting the generation of files in any scripts executed at start-up (such as those launched from a WWW browser such as Mosaic or NetScape). However, animators may start up RasMol interactively, type "set write on" and then execute a script to generate each frame using the "source" command. [4.4] Storing Atom Co-ordinates in Scripts Another extension to RasMol to allow better integration with WWW browsers is the "inline" parameter to the "load" command. A "load" command executed inside a script file may now specify the keyword "inline" instead of a conventional filename. This option specifies that the co-ordinates of the molecule to load are stored in the same file as the currently executing commands. Typically this is used in the command "load pdb inline", which is followed by a number of RasMol commands terminated by the command "exit". The "exit" command terminates execution of the current script and returns control to the command line (or the calling script). This means any lines following "exit" are never interpreted by RasMol. These may be used to store atomic co-ordinates in PDB file format. Because in Brookhaven PDB file format, any line not recognised by the parser should be ignored, only lines beginning ATOM, HETATM, TER, etc. are examined. Hence a file may be both a RasMol script and a PDB file simultaneously. This allows both co-ordinate and representation data to be transmitted as a single file. One possible use is a standard RasMol script prefix that may be concatenated with an appropriate PDB file on-the-fly. [4.5] Atom Expression support for NMR Models The syntax of RasMol atom expressions has now been extended to allow the selection of individual molecule conformations if present in an NMR file (as desribed in section [5.2]). The simplest form of the atom expression is the syntax "::25", to select model 25 from the molecule. This is equivalent to the atom expression "model = 25", as the keyword "model" may now be used in comparison expressions. The most general form of atom expression is now "CYS32:A:25.SG" which denotes the gamma sulphur of residue cysteine-32 in chain A of model 25. [4.6] Improved Atom Expression Syntax Several simplifications have been made to the RasMol atom expression syntax. Individual chains may be specified by the syntax ":A" for chain A, or ":1" for chain 1 (i.e. the wildcard "*" may be dropped from the expression "*:A"). This may also be extended to NMR models; ":A:4" denotes chain A of model 4, and even more terse "::4" means all atoms in all chains of NMR model 4. [4.7] Improved Restrict Command The RasMol "restrict" command now turns off the display of ribbons, strands, cartoons and backbones outside of the given atom expression. This command does not currently affect distance monitors, dot surfaces or labels but this may change in future versions of RasMol. [5] FILE FORMATS [5.1] MOPAC File Formats RasMol can now read MOPAC format files. The new "load mopac " command automatically distinguishes between MOPAC input and output file types, and can read input files in both cartesian and internal (z-matrix) formats. RasMol will also read the charge information in MOPAC output files, however it can not read the output files of MOPAC jobs specifying the NOXYZ keyword. [5.2] Multiple NMR Models in PDB Files RasMol may now load all of the NMR models from a Brookhaven PDB file using the new command "load nmrpdb ". The NMR file format instructs the PDB reader to load all the models from the PDB file, instead of just the first one as is the behaviour of the (default) "pdb" format specifier. If the specified PDB file does not contain an NMR structure the behaviour of "nmrpdb" is identical to that of "pdb". Once multiple NMR conformations have been loaded they may be manipulated with the atom expression extensions described in section [4.5]. [5.3] Alchemy File Fomat The Alchemy file format reader has been enhanced to allow hydrogen bonds to be explicitly represented in a file using the keyword HYDROGEN, instead of the typical SINGLE, DOUBLE, TRIPLE or AROMATIC. [5.4] IRIS RGB Image File Format RasMol on all platforms now supports the generation of images in IRIS RGB format files. This file format is often used when running on Silicon Graphics workstations. The appropriate form of RGB file is used by both 8bit and 32bit versions of RasMol. These files may be created using the "write iris " command. [5.5] MDL Mol File Output RasMol version 2.6 may now be used to generate MDL Mol files. The new command "save mdl " saves the currently selected set of atoms to the specified file in MDL file format. [6] MACHINE SPECIFIC [6.1] Monochrome X Windows Support RasMol now supports the many monochrome UNIX workstations typically found in academic, such as low-end SUN workstations and NCD X-terminals. The X11 version of RasMol (when compiled in 8bit mode) now detects black & white X Windows displays and enables dithering automatically. The use of run-time error diffusion dithering means that all display modes of RasMol are available when in monochrome mode. For best results, users should experiment with the "set ambient" command to ensure the maximum contrast in resulting images. [6.2] Tcl/Tk 3.x and 4.x IPC support The recently announced version 4 of Tk graphics library has changed the protocol used to communicate between Tk applications. RasMol version 2.6 has been modified such that it can now communicate with both this new protocol and the previos version 3 protocol supported by RasMol v2.5. Although Tcl/Tk 3.x applications may only communicate with other 3.x applications and Tcl/Tk 4.x applications with other 4.x applications, these changes allow RasMol v2.6 to communicate between processes with both protocols (potentially concurrently). [6.3] UNIX sockets based IPC The UNIX implementation of RasMol v2.6 now supports BSD-style socket communication. An identical socket mechanism is also being developed for VMS, Apple Macintosh and Microsoft Windows systems. This should allow RasMol to interactively display results of a computation on a remote host. The current protocol acts as a TCP/IP server on port 21069 that executes command lines until either the command "exit" or the command "quit" is typed. The command "exit" disconnects the current session from the RasMol server, the command "quit" both disconnects the current session and terminates RasMol. This functionality may be tested using the UNIX command "telnet 21069". [6.4] Compiling RasWin with Borland. A number of changes have been made to the source code to allow the Microsoft Windows version of RasMol to compile using the Borland C/C++ compiler. These fixes include name changes for the standard library and special code to avoid a bug in _fmemset.