This shows a new user some examples of working with O. The examples are mostly based on the files that are made avaiable as part of the installation in the o/examples directory. They are shown for demonstration purposes since most of these simple things are most easily acitviated from the pull-down menu system.
Read in coords for 2 chains, call them A and B
O > sam_at_in
Sam>Name of input file: m17_a.wah
Sam>O associated molecule name : a
Sam>Type of coordinates assumed from file name.
Sam>Is that O.K. ? ([Y]/N)
Sam>Is it Wayne s format ([Y]/N) ?
Sam>Are there any S-S bridges (Y/[N]) ?
O > sam_at_in
Sam>Name of input file: m17_b.wah
Sam>O associated molecule name : b
Sam>Type of coordinates assumed from file name.
Sam>Is that O.K. ? ([Y]/N)
Sam>Is it Wayne s format ([Y]/N) ?
Sam>Are there any S-S bridges (Y/[N]) ?
O > dir a*
Heap>A_ATOM_XYZ R W 3162
Heap>A_ATOM_B I W 1054
Heap>A_ATOM_Z I W 1054
Heap>A_ATOM_NAME C W 1054
Heap>A_ATOM_WT R W 1054
Heap>A_RESIDUE_NAME C W 132
Heap>A_RESIDUE_TYPE C W 132
Heap>A_RESIDUE_POINTERS I W 264
Heap>A_RESIDUE_CG R W 528
O > save
As1> File_O_save is not defined.
As1> Enter file name [ binary.o] :
Make an object from molecule a
O > mol
O > Current molecule has not been loaded.
Mol> Molecule code name []: a
O > ca
Mol> Ca zone [all molecule]:
O > end
That could all have been done in one line:
O > mol a ca ; end
Centre it on the fatty acid
O > cen_atom
As3> Define molecule [A ], residue, and atom [CA] : a132 c5
Believe me , it did centre. Now make an object with the fatty acid too
O > ca ; zon a132 ; end
Note the use of ';' in the above line. Make another object with those residues close to the fatty acid:
O > obj sph_a cover a132 ; 2.5 end
After activating the objects pull-down menu, I can click the objects on and off...
Now, make mol b...
O > mol b ca ; z b132 end
Mol> Second residue not in molecule
Notice my error in the last line. It was trying to find a second residue in the zone called end . Add the desired zone with
O > z b132 ; end
Compare molecules A and B (P2 molecules M17a, M17b) in the database
O > lsq_ex
Lsq >Lsq definition defaults are taken.
Lsq >Least squares match by explicit definition of atoms.
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of A (the not rotated molecule) ? a
Lsq >What is the name of B (the rotated molecule) ? b
Lsq >Now define what atoms in A are to be matched to B.
Lsq >Defining 3 names in A implies a zone and an atom name.
Lsq >Defining 2 names in A implies a zone and CA atoms.
Lsq >Defining 1 name in A implies the CA of that residue.
Lsq >The B molecule requires just the start residue.
Lsq >A blank line terminates input.
Lsq >Define atoms from A (the not rotated molecule) : a1 a131
Lsq >Define atoms from B (the rotated molecule) : b1
Lsq >Define atoms from A (the not rotated molecule) :
Lsq >The 131 atoms have an r.m.s. fit of 0.614
Lsq >xyz(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >xyz(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >xyz(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
O > lsq_obj
Lsq >Apply a transformation to an existing object.
Lsq >There is an alignment called B_TO_A
Lsq >Which alignment [<CR>=restore a transformed object] ? b_to_a
Lsq >There is an object called A
Lsq >There is an object called SPH_A
Lsq >There is an object called B
Lsq >Which object ? b
Now they are on top of each other, I can identify them
O > lsq_obj ; b
That removed them. Do a deliberate mistake in LSQ
O > lsq_e
Lsq >Lsq definition defaults are taken.
Lsq >Least squares match by explicit definition of atoms.
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of A (the not rotated molecule) ? a
Lsq >What is the name of B (the rotated molecule) ? b
Lsq >Now define what atoms in A are to be matched to B.
Lsq >Defining 3 names in A implies a zone and an atom name.
Lsq >Defining 2 names in A implies a zone and CA atoms.
Lsq >Defining 1 name in A implies the CA of that residue.
Lsq >The B molecule requires just the start residue.
Lsq >A blank line terminates input.
Lsq >Define atoms from A (the not rotated molecule) : a1 a125
Lsq >Define atoms from B (the rotated molecule) : b5
Lsq >Define atoms from A (the not rotated molecule) :
Lsq >The 125 atoms have an r.m.s. fit of 11.038
Lsq >xyz(1) = 0.2809*x+ 0.0037*y+ 0.9597*z+ -8.7543
Lsq >xyz(2) = 0.2134*x+ 0.9747*y+ -0.0662*z+ 16.6426
Lsq >xyz(3) = -0.9357*x+ 0.2234*y+ 0.2730*z+ 69.5881
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
O > lsq_i
Lsq >Least squares match by Semi Automatic Alignment.
Lsq >There is an alignment called B_TO_A
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of molecule A [A ]?
Lsq >Zone to look for alignment [all molecule A] :
Lsq >What is the name of molecule B [B ]?
Lsq >Zone to look for alignment [all molecule B] :
Lsq >What atom [CA] ?
Lsq >Number of atoms in A/B to look for alignment 131 131
Lsq >Search for connected fragments.
Lsq >A fragment of 131 1 1 residues located.
Lsq >Loop = 1 ,r.m.s. fit = 0.614 with 131 atoms
Lsq >x(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >x(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >x(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >Search for connected fragments.
Lsq >A fragment of 131 1 1 residues located.
Lsq >Loop = 2 ,r.m.s. fit = 0.614 with 131 atoms
Lsq >x(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >x(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >x(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
Lsq >Here are the fragments used in the alignment
Lsq > A1 SNKFLGTWKLVSSENFDEYMKALGVGLATRKLGNLAKPRVIISKKGDIIT
Lsq > B1 SNKFLGTWKLVSSENFDEYMKALGVGLATRKLGNLAKPRVIISKKGDIIT
Lsq > A51 IRTESPFKNTEISFKLGQEFEETTADNRKTKSTVTLARGSLNQVQKWNGN
Lsq > B51 IRTESPFKNTEISFKLGQEFEETTADNRKTKSTVTLARGSLNQVQKWNGN
Lsq > A101 ETTIKRKLVDGKMVVECKMKDVVCTRIYEKV A131
Lsq > B101 ETTIKRKLVDGKMVVECKMKDVVCTRIYEKV B131
See it worked
O > lsq_pair
Lsq >There is an matched pair called B_TO_A
Lsq >Object state ([ON],OFF) : on
That shows some little arrows between matched atoms
O > stop
Some simple painting examples. It assumes that an object has been created at least once from the molecule. This is because the program forces the creation of a set of default colouring parameters (if they do not exist) once the first object is being drawn. Otherwise it is necessary to make an atom property of the correct name and length.
O > dir *xyz
Heap> A _ATOM_XYZ R W 3162
O > dir a*
Heap> A_ATOM_COLOUR I W 1054
Heap> A_ATOM_XYZ R W 3162
Heap> A_ATOM_B R W 1054
Heap> A_ATOM_WT R W 1054
Heap> A_ATOM_Z I W 1054
Heap> A_ATOM_NAME C W 1054
Heap> A_RESIDUE_NAME C W 132
Heap> A_RESIDUE_TYPE C W 132
Heap> A_RESIDUE_POINTERS I W 264
Heap> A_RESIDUE_CG R W 528
The above shows there are 132 residues and 1054 atoms in molecule A. Note that an atomic property a_atom_colour already exists.
O > paint_colour lime_green
O > paint_prop
Pnt> Property [atom_name]:atom_z
Pnt> Operator (< > <= >= ^= [=]): =
Pnt> Value:6
Pnt> Colour [lime_green]:yellow
The next line does the same thing
O > pai_prop atom_z = 6 yellow
Paint all carbons that are CA's white
O > paint_prop atom_name = ca white
O > z ; end
Believe me, the Ca's are white and the rest are yellow. Now make the Phe residue light blue
O > pai_pr residue_type = phe sky_blue
O > z ; end
O > paint
O > PAINT is not a unique keyword.
O > Paint_proper is a possibility.
O > Paint_ramp is a possibility.
O > Paint_case is a possibility.
O > Paint_zone is a possibility.
O > Paint_select is a possibility.
O > Paint_object is a possibility.
O > Paint_obj_zo is a possibility.
O > Paint_obj_at is a possibility.
O > Paint_colour is a possibility.
O > PAINT is not a visible command.
Notice we now have an atom property called 'atom_z'. Lets now use it to set everything to standard colours
O > pai_case
Pnt> Colour-case a property in molecule A
Pnt> Property [atom_z] :atom_z
Pnt> How many cases [8]?4
Pnt> Enter property values [1 2 3 4] :6 7 8 16
Pnt> Enter 4 colour names :
Pnt> Colour [sky_blue]: yellow
Pnt> Colour [yellow]: blue
Pnt> Colour [blue]: red
Pnt> Colour [rede]: green
O > z ; end
Paint by internal residue count
O > pain_ramp
Pnt> Colour-ramp a property in molecule A
Pnt> Property [residue_irc]:residue_irc
Pnt> Minimum and maximum value of property [1 132] :1 131
Pnt> First colour [red]:blue
Pnt> First colour [blue]:red
O > obj ca ca ; end
Now there is an object called 'ca' that is a rainbow of colours, blue at the N-terminal and red at the C-terminal. If you wanted it to go blue to red without passing through yellow and green etc, then you have to specify the first colour as blue with a bit of red
Pnt> First colour [red]:1 0 255
Pnt> First colour [red]:red
This is because of how we do the ramping, using the HSV colouring model. Blue comes out at 360 degrees, while (1,0,255) comes out close to 0 degrees.