Last Document Update: 040405

O Overview (040405)
O has been principally developed by Alwyn Jones, but with important contributions from Morten Kjeldgaard. Morten no longer takes an active part in O developments but maintains o-info where O users can post questions and get answers from experienced users around the world. My home pages explain how to get the program, describe recent changes, provide a complete description of all commands and give various introductions to the program.

Many auxiliary programs and useful O-accessories are supported by Gerard Kleywegt (

O is distributed by anonymous ftp server at

The program is available for a number of different systems:
Silicon Graphics (Irix operating system)
Compaq/Digital Alpha based True64 Unix
Sun Ultra workstations
Microsoft Windows
Linux for PCs.
Apple Macintosh OS X (10.2 or 10.3)

The distribution consists of a number of tar'ed files that rarely change, and are therefore not updated very often. The latest versions and any necessary file updates are kept in a separate directory that indicates the version level. The distribution also includes practical introductions to the program. New users should join o-info, since this is where I announce changes, as well as answer any questions that are posted.

O supports quad-buffered stereo ('stereo in a window') for the SG, DEC, and PCs with the necessary hardware and driver software.

O is supported on all currently shipping SG workstations, but the OS may need patching (especially for stereo support, see below). On older machines, the program needs Irix 5.3 or later.

O is supported on the older DEC alpha-based workstations running DEC Unix, and using Powerstorm 40T/50T or 60T graphics cards, as well as the more recent Compaq XP1000 models with Powerstorm 350 graphics. O requires runtime Fortran and OpenGL libraries to be installed on these systems.

O has been ported to run on a Sun Ultra Sparc workstation. Sun of Sweden has provided me with a dual processor machine, equipped with a Creator 3D graphics card, on a long-term loan. Potential users need OpenGL and Fortran runtime. Newer graphics cards from Sun should work without any problem but I do not have them. At the moment, the SUN release is out of date, but it is my intention that Ov9 be available before midsummer.
O runs under various Microsoft Windows operating systems (98, NT, Me, 2000, XP), allowing access to a vast number of graphic cards and computers. It is impossible to test all combinations of CPU and graphics card. Some systems support stereo, but this depends on the graphics card. Remember that primarily the graphics card determines graphics performance.

O runs under Linux on 32-bit PCs. I have a 64-bit Itanium based project underway.

My favorite platform is the Apple Macintosh OSX.

New User Information (040405)
Non-academic users must contact me ( for conditions of use.
Academics can use the program at a cost of anything from $0-250, depending on what they can afford. Most academics pay nothing, so do not feel obliged to pay anything.
All new academic users must return Section A by e-mail, and Section B by surface mail, after signing the agreement. Use Copy/Paste instructions from your browser to select these sections (otherwise send me an e-mail). On receipt of Section A by e-mail, the new user will be provided with access codes for running the program.

Distribution takes place via anonymous ftp distribution as described elsewhere. Any files needed for this distribution are included in the relevant directory with the program binaries.

New users should join o-info to get news on new versions of the program, bugs etc. They are able to pose questions that are answered by myself, Gerard Kleywegt or any of thousands of other O users. I always respond to questions as soon as I see them, if I know the answer. If something slips through, I am always happy to answer questions that are e-mailed directly to me.

Each machine requires an access code to allow users to save their work. Information on how to obtain these code, is described elsewhere. First time users should include their current machine codes with their e-mailed section A information. Registered users who get new machines should send me the new codes by e-mail and I will return the access codes, usually within a day.

Please provide one code per line, with no other information on the line.

My home pages also contain:
• ‘A-Z of O’ an alphabetical listing of all O commands
• ‘How to O’ an introduction to certain O functionalities
• The p2map tutorial: the raw files and a step-by-step guide through the experimental density of P2 myelin protein (Jones et al., 1988). New users are encouraged to spend some time familiarizing themselves with the program by looking at this example
• The p2av tutorial: the raw files and guide to averaging within O.
• O introduction: simple introduction to get you started.
• A guide for Erni to download O onto his Mac.

Older descriptions such as 'Essential O', are still available as a small book. If you want a copy of the book, send me an e-mail with your name and postal address. The book is no longer updated.

Gerard Kleywegt has developed many different programs that interact with O. These are available to academic users; just explore his Uppsala Software Factory link Gerard has also written various tutorials and introductions to O. These are described on his home page, they include "O for Morons". and "O for the Structurally Impaired" that are available in book form from me. He has also maintained a FAQ list and a set of O macros that you can reach from the Uppsala Software Factory link.

Section A- return via e-mail
Group leader:
O contact person, if different:
E-mail address of contact person:
Amount paid: $
Machine type(s):
Machine codes:
EU VAT registration code (if applicable,this includes all Universities in countires that are members of the European Union):
Licensee Organization:
Postal Address:

Section B- sign and return by surface mail
DatOno AB's copy
Please sign and return DatONO AB's copy of this agree ment. You may wish to make a copy for your records. Upon receipt of the signed agreements and a cheque for ___________, payable to DatONO AB, the program "O" (Copyright 1990 by Alwyn Jones) will be released for ftp distribution.
1. This program is non-exclusive and non-transferable for its use on a computersystem at the Licensee's institution. Use of the program is restricted to the licensee and collaborators at his/her institution.
2. DatONO AB retains ownership of all materials (including software and documentation). Any modifications or derivative works based on the software are considered part of the software and ownership is retained by DatONO AB. Any such modifications are to be reported to DatONO AB and must be made available upon request.
3. The program or any modifications thereof may not be disclosed to third parties without written authorization from DatONO AB.
4. Copies for the purpose of maintenance, backup, or development may be made in a reasonable number and must carry the copyright of DatONO AB. All copies are under the control of this license and must be destroyed upon termination of the license.
5. Third party requests for the program made to the licensee are to be referred to DatONO AB and are not to be fulfilled by the licensee.
6. Requests for the source code of this program may be made to DatONO AB. The source code is under the control of this license and requests for it are honored upon the discretion of DatONO AB.
8. Publication of results or reports obtained with the program O must be acknowledged by an appropriate citation.
9. This license is not limited in time.
Please sign below to acknowledge the acceptance of the terms of this agreement and return the agreement with your cheque to:
Dr. Alwyn Jones,
DatOno AB,
Blueberry Hill,
S-75591 Uppsala, Sweden

Licensee Organization:
E-mail address:
Postal Address:
EU VAT registration code (if applicable, this includes all Universities in countries that are members of the European Union):

O distribution (040405)
The full O distribution is kept on the anonymous ftp server
The easiest thing to do is to point your browser at the above address, and then click your way forward to where I keep my files. Go to pub/alwyn and you will see (possibly) a number of directories. The most recent version should be clearly marked.

The distribution consists of the ‘O data directory’, and a binary appropriate for the user’s computer system. If the user has a number of different sorts of computers, the same data directory can be used. A user would usually create a directory called o and sub-directories o/data and o/bin . The ‘data directory’ will usually be dated, and will be available as a compressed tar file.

• data_ABCDEF.tar.Z is a copy of the O data directory, where ABCDEF is the date (as used in Sweden, e.g. 040405 is the 5-Apr-2004).
• p2map.tar.Z is a set of files that introduce a new user to the program and to working with electron densities
• p2av.tar.Z a tutorial on how to use the averaging options in O.
• a set of binaries for the following systems:
sg_X_ono Silicon Gaphics Irix workstations. Window and input call-backs in this version use the X-Window system. Hitting the F1 key, once O is running can activate stereo. However, stereo in this version uses code developed by SG-Europe and SG no longer maintains this. If this version does not work on your system, use sg_GLUT_ono
sg_GLUT_ono for Silicon Graphics Irix workstations. This version uses the GLUT library for windows and interaction call-backs. The workstation must be set with the correct state for stereo using an SG supplied applet, before starting O.
axp_ono Compaq True Unix workstations (and older DEC systems)
sun_ono SUN Solaris Ultra Sparc workstations with suitable graphics cards
win_ono.exe Microsoft Windows (95/98/NT) PC based systems
lin_ono 32-bit Linux version
asx_ono Apple OSX version

Without an access code, the SG/AXP/Linux binaries cannot save the work from a session.

The following illustrates how to get the full distribution by the old fashion way:
% mkdir o
% cd o
% mkdir bin
% mkdir data
% ftp
Name ( anonymous
331 Guest login ok, send your complete e-mail address as password.
Using binary mode to transfer files.
ftp> cd pub/alwyn/o9.0.7
ftp> bin
ftp> get osx_ono.Z
ftp> get data_040316.tar.Z
ftp> get p2map_2004.tar.Z
ftp> quit
% ls
osx_ono.Z bin data_040316.tar.Z p2map_2004.tar.Z
% uncompress osx_ono
% uncompress data_040316.tar
% uncompress p2map_2004.tar
% tar xf data_040316.tar
% tar xf p2map_2004.tar
% chmod 755 osx_ono
% mv osx_ono bin/osx_ono
% rm data_040316.tar p2map_20046.tar
% ls
bin data p2_map

Each tar file, creates its own directory structure. Once created, the tar file can be deleted or moved to tape backup.

O Updates (040405)
I use updates as a means of fixing bugs, providing new functionality without going through the full process of a new full release. Updates are distributed via anonymous ftp. The user logs onto the anonymous account on with their e-mail address as password.

O-related updates will be in the pub/alwyn subdirectory, under an appropriate name.
For example, version 9.0.7 is O release 9.0, update number 7. Each update willl also have a build date that is printed when you run the program.

It can be dangerous to mix old versions of the menu and startup files with newer versions of the program.

O Access Codes (040405)
The program needs an access code for each machine on which it is to run. Without this code, the user is unable to save work. Codes for an installation are kept in a file access.o or access.odb (8.0 and later versions) in the O data directory. This is a text file that contains an O datablock called .access and as such it has a standard structure that looks something like this:

.access t 1 50

The header signifies that it is a text DB, containing one line, of length 50 characters. I might make an error, so check that there are no leading spaces and that there are 24 characters for SG/AXP codes, or 26 for Linux. The file should be updated as the installation gets more/new machines. The user supplies TAJ ( with the 'Machine ID', one per line, and a new access code is returned by e-mail. If the ID written by O differs from that provided by the appropriate command, please inform TAJ and provide the ID from O (there seems to be a problem in Irix 6.4, for example). SG/AXP IDs are signed integers that look like this -1533627368, while Linux IDs look like this 000D56151E02 . The Linux codes depend on the Ethernet card hardware. If you have an old Linux code based on the IP number, it will still work Iat least, untiul yourt IP number changes).

Remember to increment the line count when you add a new code. Adding a second access code to the above (this time a Linux machine) would produce an access.odb file something like this:

.access t 2 50


On SG machines, the system id can usually be obtained with the 'sysinfo -s' command. If the number returned differs from the number printed by O, it is O's number that counts.

On Compaq Alpha and Linux systems, there is no sysinfo command so run O. The program writes out the system id after reading in all files, but before drawing the 3D window.

On Apple OSX, Sun Ultra and Windows systems , no access codes are issued at present. Commercial users must still be licensed to use the program on these systems.

Note that the contents of the access file become part of each database created by O. Therefore, when a new machine has been added to an installation, it is important that the contents of the updated access.odb file also become incorporated into old databases. This can only be done when the program is started. In Uppsala, the O data directory is in the user path name, so this can be easily done by typing the following, for example (where p2.o is an existing O binary database file:

ono p2.o access.odb

instead of just

ono p2.o

After the first Save, the new access codes become part of the user's binary database.

o-info (010404)
Join o-info to get news about O and related programs. This service is maintained by Morten Kjeldgaard, Aarhus University. Fill in a web form at his home page

Please join o-info, it will make working with O a better experience for you.

Stereo Issues
You need a monitor with a high frequency screen refresh.
Apple OSX stereo is not working. Do not try it!
Linux, SUN, AXP(?) 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.
Linux nVidia Quadro 4 cards support quad buffered stereo. A number of ATI cards support stereo with drivers from XIG ( If you specify stereo with the environment variable, the stereo-visual will then be selected. With the nVidia card, at least, one buffer needs clearing, so hit F1 twice- I'll try to fix this. This card seems more prone to flickering when viewing mono with a stereo-visual.

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) input devices. 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/Features'
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, e.g.:

! reading file
.odat t 1 50
! done

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 (this is a binary file, so no point listing it here). 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/Features'
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.