Release Notes O version 9.0.7 (040422)
This release consists of a number of executable files for each computer system that is supported (Apple Mac OS X, Linux, Windows, SG, AXP, SUN) and a tar'ed copy of the O 'data' directory.


• This release has many new features and so it is recommended that the 'data' directory is kept separate from any earlier equivalent directory. As in previous O releases, the user needs to specify the location of the 'data' directory, either by an environment variable
e.g.
setenv ODAT /usr/alwyn/o/data/

or by a DB entry in the user's database, e.g.

.odat 1 t 50
/usr/alwyn/o/data/



• The data directory contains a number of files that the user should copy to his/her private directories. The on_startup_template file can be used as the basis for your own on_startup macro. Copy it to each directory from which you plan to start O and name it on_startup. It will then get activated when O starts. This is useful for reading in maps, for example, or for placing any windows that you might want open, or for setting the visibility states of your objects. Here is the listing of the distributed file:

! open the object window
window_open object_menu -1.1 -0.1
! read in 2 different maps
fm_file ano1.map mir p212121
fm_set ; ; ;; 1.5 ;
fm_dr ;
fm_file av_5.map av p212121
fm_set ; ; ; ; 2.0 ;
fm_dr ;
! switch off all objects, except 2
vis * ;
vis p2ca on
vis trace on

The first instruction, window_open, opens the menu listing the current objects. Then 2 maps are read into the FastMap contouring system and drawn at different levels. The last instructions turn off all objects except the ones called P2CA and TRACE. This macro file should be edited to suite the user's requirements.


• The file on_user.odb should also be to a user’s private directory. It contains a number of macros that are activated by O at certain times and they should specify the user's specific needs. The contents of this file are also in the menu.odb file. Therefore, if the user reads in the menu, it will be necessary to read in his/her private copy of on_user.odb afterwards.

Here are the contents of on_user.odb as distributed:

!called by Grab_build when moving along the sequence
@on_baton_yes t 1 50
fm_dr ;

!called when the user types the <esc> key
@on_escape t 2 50
print "quit, nothing saved"
quit

!called when the user recentres
@on_centre t 1 50
fm_dr ;

!called by PDB_read and mutate commands to generate stereochemistry info
!if the molecule has multiple chains, one refi_gen for each chain
@on_stereo_chem t 1 50
refi_gener ;;

!called by build_show to show how well things fit, just 8 of them
@on_autofit t 8 20
mol scarg z ; end
mol sctrp z ; end
mol scphe z ; end
mol scmet z ; end
mol scleu z ; end
mol scser z ; end
mol scval z ; end
mol scala z ; end


• The file ogl_mouse_lines.odb is of special interest to Apple OSX users since it specifies the number of buttons associated with their mouse. Here are the contents of the distributed file:

.OGL_OPTIONS I 3 (26(1x,i2))
3 20 15

The first entry defines the number of buttons; the second and third entries define the line thickness in tenths of a pixel for the atomic and map objects, respectively. All systems except SG machines make use of this line thickness information. If not defined by the user, O takes defaults that I think are appropriate for the relevant system.


• A number of other files are the responsibility of the system manager or the person in charge of installing and updating O. The access.odb file contains a set of codes that reflect the machine identities of the computer systems that are registered for running O. The distributed data directory does NOT contain an access file. Please copy your existing file into the new data directory.

The O administrator is also responsible for a file called on_startup_message which in the distribution contains just the following message:

print ......No message from the O administrator........



Updating an existing user O file
Starting O from scratch will load in the most recent version of each file. A user binary file generated by an older version of O must be updated. It is necessary to read in at startup time first the user's old database, then to read in the latest versions of menu.odb and stereo_chem.odb. After the first save, the user's database will be up to date. If the user has made changes to on_user.odb, this file must also be read in, after the menu.odb file!



Things you should know about:
•stereo_chem.odb
In this version of O, I have gone far in localizing residue information in one place, the stereo_chem.odb file. This file previously only contained the stereochemistry dictionaries for each residue, but now also includes torsion angle information, connectivity information, and the details of what atoms are in a particular kind of residue. A full description of these entries is given elsewhere. Most commands have been modified to work accordingly. Some old commands that have been superceded may not have been removed, and will still work with the old system (e.g. Slider_lego is still available, working with the old rotamer database, but has been totally superceded by Decor_show)
Gerard Kleywegt's HICCUP server has been updated to generate this information for residues that are not included in the standard distribution of the file.


•Stereo Issues
You need a monitor with a high frequency screen refresh.
Apple OSX stereo is not working. Do not try it!
Linux, SUN stereo is controlled by an environment variable that can be set by typing the following before starting O 'setenv STEREO ON'. This loads the required stereo visuals so that F1 can be used to toggle stereo on and off. Only GLUT-based, quad-buffered graphics cards are supported.
Two SG versions are provided. The GLUT version works as the Linux system, requiring the STEREO environment variable to be set if you want to activate stereo via the F1 key. Furthermore, the display has to be set to the correct state that supports stereo using the SG provided applet. The second version uses X and an earlier stereo implementation developed by SG in it's Basel Laboratory. This is no longer supported by SG so new machines may cause problems. I recommend using the GLUT version. This version also supports the newer 6D puck-like controller, and the use of the arrow keys at the keyboard to activate previous keyboard input.
Windows stereo does not need the environment variable, but may need some special set-up from the Display applet.
AXP based systems that support stereo will be recognized automatically.

Linux nVidia Quadro 4 cards support quad buffered stereo. A number of ATI cards support stereo with drivers from XIG (www.xig.com). If you specify stereo with the environment variable, the stereo-visual will then be selected.


•Gamepad/Dials/Pucks
The Apple OSX version of O supports gamepad input under the control of an environment variable GAMEPAD. However, very few of the gamepads that I have tested actually work with Apple's GLUT-based implementation. In fact, only my Microsoft Joystick works according to the specification.
SG systems support dials (both SG versions), and puck (GLUT version). Linux XIG drivers support old SG dial boxes and apparently work but I don't have such a system.
Linux O supports all game-pads that I have tried.
Griffin Technology sell a single dial USB device called the PowerMate that works fine with OS X at least, but it is also supposed to work with various flavours of Windows. Their software generates keyboard input that depends on which way you turn the dial. For it to work with O, just set the 'Global Settings' to trigger sending right and left arrow key strokes. This makes it behave as if you are using the keyboard arrows to control the dial inputs. I've not tested the Windows version yet. Griffin have told me that they will be supporting multiple dials eventually. This is a really neat device, I use it to scroll in all my applications now.


•Windows Oddities
I didn't know how to do some Unix-related things when I made the Wndows conversion. The definition of the O data directory, for example, cannot be made with an environment variable. It is made by reading in an ODB entry containing this information. There is a file odat_db.odb in the data directory with an example of how to do this
I usually use a windows shortcut to the O exec file, in order to start O. There is an example of such a shortcut in the data directory. You should place a shortcut in each directory from which you run O, but make sure it correctly defines the 'start in' directory.
CCP4 maps can now be correctlyread into the FastMap system .


•Apple OS X oddities
The latest ATI cards on G5 and new 15/17 inch PowerBooks are totally screwed up in their line drawing on 10.3.2. Anti-aliasing does not work, the lines are jagged. nVidia cards on the G5 are working OK. OSX release 10.3.3 fixes the problem.
I cannot make stereo work. This is my problem, not Apple's.
Most game-pads do not work with Apple's GLUT implementation. My Microsoft Joystick is an exception.
There are other GLUT bugs, unfortunately. If you have a 3 button mouse and you are holding down 2 buttons, there are problems with button release (the first release is recognized but not the second is not). This is really annoying when using the Grab commands!
The above bugs are known to Apple but ....


•Multiple CPU systems
O works within a single thread. Buying a system with 2 or more CPUs will not help your O performance. If you are running other programs at the same time, you will see a performance boost.



New Commands
Arcade_setup – control input via a character-based input device (PowerMate, X-arcade …)
Bones_sc_set - reasssign skeleton side-chain/main-chain classes, based on connection lengths
Build_alternate - Generate alternate conformations. If a suitable alternate molecule does not exist, it is made.
Build_ed_group – pivot a group of connected atoms around an ID’ed skeleton atom
Build_ed_loop – build along a skeleton between a start and end residue.
Build_ed_residue – build residue by CA-CO-N-CA and CA-CO-N-CA 3D rotational searches to get main chain, then add best rotamer. Only suitable for high resolution maps.
Build_guess -> Decor_guess
Build_init – generate an empty O molecule from a text file containing the sequence as a single-letter code
Build_nucleus - given a fragment of a residue, generate the rest of the atoms from the stereochemistry
Build_show -> Decor_show
Centre_build – centre on the defined atom, activating Grab_build for this residue
Connect_File -> Connect_mode Connectivity is now defined in the stereo_chem.odb file. The distribution file contains connectivity modes ALL, MC, SC
Continue_no - flag used by Trace_grow
Continue_yes - flag used by Trace _grow
Decor_fix – fix a residue in a stretch of a TRACE to be a particular residue in the sequence.
Decor_guess – try each amino acid at each residue in a TRACE. Must be run before a Décor_slider or Décor_yasspa
Decor_show – show how a selection of amino-acids would fit to a residue in the TRACE
Decor_slider – dynamic programming algorithm (DPA) to decorate a TRACE with the sequence
Decor_yasspa – generate input for Décor_slider by making a Yasspa of the TRACE and then using the a/b-units to define the stretches. Usually run before Décor_slider to decide the stretches used by the DPA in Décor_slider. The result is stored in the DB as .TRACE_GUESS_X where X can be any group of characters. If the user wishes to define residue types at particular positions in the TRACE, the DB entry has to be written out and edited (see How-to-O).
Fm_id_2ry -> SST_build
Mutate_1st – add a new residue at the start of a molecule
NCS_average - average a map, given the operators and a mask
NCS_map_write – write out a map in EZD format
NCS_mask_edit - edit a FastMap mask
NCS_mask_layer - add or remove a layer from a mask
NCS_mask_make - make a mask from an electron density map based on local average
NCS_mask_spheres - make a mask from an atomic object, associating a sphere around each atom
NCS_mask_write - write out a mask to a file
NCS_operator - determine an NCS operator, Make a skeleton object of the A-molecule. Specify the approximate centre of the NCS related molecule by ID-ing a skeleton atom. The centre-of-gravity of the atoms in the skeleton object is translated to this point, a local 3D translational search, and full 3D search is then carried out.
PDB_kill - delete ODB entries and objects associated with a particular molecule
Redraw_object – redraws a molecular object 1000 times, for timing purposes
Refi_alternate - - generate stereochemistry data for an alternate style molecule (i.e. 1 residue at a time)
SST_build – add an SST to a TRACE via 3D rotational search around identified atom
SST_combine – combine 2 positions of a TRACE molecule, following the skeleton
SST_extend – extend a TRACE along a skeleton
SST_flip – least-squares fit by matching first residue in a TRACE to last, second to last but one etc
SST_merge – merge a TRACE fragment into the molecule getting built
SST_reverse – place CA of first residue in TRACE to last, second to last but one etc Then auto-built the resulting main-chain,
SST_trim – remove residue at start or end of an SST
SST_zap – clear the complete TRACE, and delete the TRACE object.
Sprout_CAT - generate a TRACE molecule from a CAT - 3 options depending on the resolution. The new residues are added to an existing TRACE molecule.
Sprout_peptide - peptide fit to skeleton object, to generate a CAT. Suitable for higher resolution maps only.
Templ_combine -> SST_combine
Templ_merge -> SST_merge
Templ_reverse -> SST_reverse
Templ_trim -> SST_trim
Trace_Ca - generate a CAT trace from a skeleton, absorbing TRACE SSTs in the process.
Trace_grow – interactive CAT generation, absorbing TRACE SSTs in the process.
Visible_object - control visibility of objects



Commands that have important changes.
ASA - an option to colour the surface according to the colour of the closest atom
Bond_branch - CAT skeleton branches have codes of 1 (main-chain), others of 2 (side-chains)
Bone default colours - #1 is now yellow, #10 is blue_violet
Centre_* - these commands call on_centre macro
DB_table_res - Expanded the Table limits from 50 to 500
Grab_build - Auto 2 option for high resolution fitting of peptides
Mutate_* - space allocation problem limited protein size, now set to100,000 atoms. Activates on_stereo_chem macro
PDB_read - more chains (do IDs 1-9 correctly), activates on_stereo_chem macro, atoms with lower case names to upper case. 20,000 residue limit, forces max 5 character name
PDB_write - modify occupancy according to number of alternates. If no occupancy DB, use value of 1.0 not 0.0
Refi_gener - no restraints added for abutting residues at start/end of zone (fixes problem with restraints to N+, or C-, for example)
Refi_zone - gentle exit if no restraints in zone. Print outliers in a zone
Sketch_cpk - activates a macro on_sketch_cpk This macro can be changed to modify which radii are read into the DB.
Skeleton - new algorithms
SST commands that use a skeleton- default skeleton is the molecule currently defined in the Bones pull-down
SST_combine - now decides on how many residues are needed to follow the skeleton between the 2 SSTs but allows the user to increase or decrease this number via the dials
.ogl_options - specify 1/number of mouse buttons, line width of 2/atomic and 3/map objects in tenths of pixel units. Applied during session with read or db_set_data commands
Windows version now reads in CCP4 maps!!!!