Thursday, August 18, 2011

O for the memories

My first memory of real scientific computing was working at Manchester University under Prof. John Helliwell with Alwyn Jones's O package.

I took a small trip down memory lane tonight:

https://plus.google.com/u/1/111523359226039496180/posts/cMZr1RSBTpd

So just had to go old school on our iMac (now running Linux due to the heat) and see if I could remember those glory days... Yes I know - a long way from my old SGI tucked away in a dark corner of our crystallography lab in Manchester, but it was worth a shot, just to see if this "manager" can still hack it...

All credit Alwyn:

T.A. Jones, J-Y. Zou, S.W. Cowan & M. Kjeldgaard (1991) Improved methods for the building of protein models in electron density maps and the location of errors in these models. Acta Cryst. A47 110-119.


So off I go hunting down memory lane:

http://xray.bmc.uu.se/alwyn/O_to_Go/O_to_Go_frameset.html

Remember FTP folks? Still works, yeah and it is still awesome!

jcuff@isrv:~$ date
Thu Aug 18 22:46:08 EDT 2011

jcuff@isrv:~$ ftp xray.bmc.uu.se
Connected to xray.bmc.uu.se.
220 Welcome to xray.bmc.uu.se
Name (xray.bmc.uu.se:jcuff): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
d--x--x--x    2 ftp      ftp          4096 Dec 21  2000 bin
d--x--x--x    2 ftp      ftp          4096 Dec 21  2000 etc
drwxr-xr-x    2 ftp      ftp          4096 Dec 21  2000 lib
-rw-r--r--    1 ftp      ftp        124584 Aug 18 05:01 lspub
drwxr-xr-x   24 ftp      ftp          4096 Jun 01  2009 pub
226 Directory send OK.
ftp> cd pub/alwyn
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp      23853799 Jun 02  2008 A-Z_of_O.pdf
drwxr-xr-x    2 ftp      ftp          4096 Aug 17  2005 glut
drwxr-xr-x   20 ftp      ftp          4096 Oct 12  2010 history
drwxr-xr-x    2 ftp      ftp          4096 Apr 05 11:23 kipaut
-rw-r--r--    1 ftp      ftp      16414720 Dec 12  2006 p2av_061212.tar
-rw-r--r--    1 ftp      ftp      13086720 Dec 12  2006 p2map_061212.tar
-rwxr--r--    1 ftp      ftp      10270720 Apr 28  2004 shafft_export.tar
drwxrwxr-x    2 ftp      ftp          4096 May 09 07:24 teaching
drwxr-xr-x    2 ftp      ftp          4096 Nov 23  2010 v13.0
226 Directory send OK.
ftp> cd v13.0
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxr-xr-x    1 ftp      ftp       6461440 Nov 23  2010 data.tar
-rwxr-xr-x    1 ftp      ftp       1694984 Oct 12  2010 data.zip
-rwxr-xr-x    1 ftp      ftp         10160 Oct 12  2010 job.zip
-rwxr-xr-x    1 ftp      ftp       2602948 Oct 22  2010 lin_ono
-rwxr-xr-x    1 ftp      ftp       4306048 Nov 23  2010 osx86_ono
-rwxr-xr-x    1 ftp      ftp       3605512 Nov 23  2010 sg_X_ono
-rwxr-xr-x    1 ftp      ftp       3084288 Oct 18  2010 win_ono.exe
226 Directory send OK.
ftp> get lin_ono
local: lin_ono remote: lin_ono
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for lin_ono (2602948 bytes).
226 File send OK.
2602948 bytes received in 4.30 secs (591.4 kB/s)
ftp> get data.zip
local: data.zip remote: data.zip
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for data.zip (1694984 bytes).
226 File send OK.
1694984 bytes received in 2.96 secs (560.0 kB/s)

Ok so now to config... in old school style:

jcuff@isrv:~$ mkdir -p o/bin
jcuff@isrv:~$ mv lin_ono o/bin/
jcuff@isrv:~$ cd o
jcuff@isrv:~/o$ unzip ../data.zip
Archive: ../data.zip

and away we go:

jcuff@isrv:~/o$ chmod +x bin/lin_ono 
jcuff@isrv:~/o$ ./bin/lin_ono 
./bin/lin_ono: error while loading shared libraries: libglut.so.3: cannot open shared object file: No such file or directory
./bin/lin_ono: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory

Oops! sigh! missing libs... these days this is now cake - it was a major pain back in 1993/4, when I was attempting this. I can tell you for a fact it was a 4 day job to install OpenGL(*) and Fortran! (*)OpenGL was not really open - you just had to buy a Silicon Graphics ;-) At the time we were still running http://en.wikipedia.org/wiki/MCC_Interim_Linux off of floppies on our i386 boxes...

Now it is really not so much trouble!:

jcuff@isrv:~/o$ sudo apt-get install libglut3
jcuff@isrv:~/o$ sudo apt-get install gfortran

Done!

Ok now to the rest of the config:

jcuff@isrv:~/o$ ./bin/lin_ono 
  O > This version of O is free for anyone to use.
  O > Contact alwyn@xray.bmc.uu.se if you have a problem.
  O > O version 13.0.0, Build 101022
c O > O is 3D graphics enabled
  O > No dials
n O > Mono enabled only
e O > Gamepad disabled
 O > ODAT environment variable :
 O > Undo files saved in
 O > Run line:
  O > Define an O file (terminate with blank): 
  O > Menu names are not defined.
  O > Enter file name [menu.odb]: /home/jcuff/o/data/menu.odb
  O >  menu.odb file for O version 13.0.0, 091014
  O >  Database compressed.
  O >  Database compressed.
  O >  Database compressed.
  O >  Database compressed.
  O >  Database compressed.
  O >  Database compressed.
  O >  Forsyth & Wells Scattering Factors Acta Cryst 12 (1959) 412-5
  O > Startup file was never loaded
  O > Enter file name [startup.odb]: /home/jcuff/o/data/startup.odb
  O >  startup.odb file for O v12 080508
  O >  Guess Matrix with PRO
  O >  terminal arcade codes loaded
  O >  3 button mouse, double and single pixel line widths
  O > Stereochemistry file was never loaded
  O > Enter file name [stereo_chem.odb]: /home/jcuff/o/data/stereo_chem.odb
  O >  stereochemistry dictionary, PDB remediated names, IUPAC phosphates
  O >  Recent changes:
  O >  100401 PRO Phi -63 -> -60
  O >  100226 more PRO flattening
  O >  100118 OXT residue
  O >  081009 ALA rsr definitions
  O >  080912 single letter codes for protein and nucleic acid
  O >  0808020 ATP,NDP
  O >  080807 flat PRO & PO4
  O > read ok
  O > Connectivity used is : all
  O > Maximum linkage distance = 2.00
  O >  There were   53 residues.
  O >              642 atoms.
  O > The usual on_startup macro will be activated

And then the memory of utter awesome comes flooding right back to me... here it comes kids, this is how you load a molecule - check out the three ;;; - still remember that!

  O >  pd_read /home/jcuff/o/1HBA.pdb hba ;;;
Util>  Database compressed.
Util> Space for   9598271 atoms
Util> Space for    100000 residues
Util> EXPDTA    X-RAY DIFFRACTION
Util> Element information at end of line
Util> Chain name >A<
Util> Chain name >B<
Util> Chain name >C<
Util> Chain name >D<
Util> Chain name >A<
Util> Chain name >B<
Util> Chain name >C<
Util> Chain name >D<
Util> Chain name >A<
Util> Chain name >B<
Util> Chain name >C<
Util> Chain name >D<
Util> Molecule HBA contained 781 residues and 4753 atoms

It was all pretty awesome - PDB files as a directory - this stuff was and is way ahead of all that semantic web nonsense, this was hard core... check it out "dir" on a molecule!

  O >  dir hba*
Heap>  HBA_ATOM_XYZ              R W     14259
Heap>  HBA_ATOM_B                R W      4753
Heap>  HBA_ATOM_WT               R W      4753
Heap>  HBA_ATOM_Z                I W      4753
Heap>  HBA_ATOM_VISIBLE          I W      4753
Heap>  HBA_ATOM_SELECT           I W      4753

yep - takes me back... sure takes me back! we got there, I think my memory lane is now complete! ;-) here's a grab of a set of sticks for my all time fave test throughout my molecular biophysics career of hemoglobin that I loaded into wonderful "O" earlier in the post:

Many thanks to Alwyn for keeping the code
available and viable for all these years!


[any opinions here are all mine, and have absolutely nothing to do with my employer]
(c) 2011 James Cuff