Read_formatt(ed)

read_formatt(ed) <file>

Reads an O database source file from the computer file system. This command is used to update or insert new data blocks.
An O source file can contain multiple entries. It is structed into headers and information. Comments can be inserted between complete entries. Here are portions of the menu.odb for illustration:
 
! menu.odb file for O version 8.0 build 0207xx

.o-version t 1 20
O version 8.0.12
 
.menu_integer i 3 (10i10)
38,45,5570815

.menu_real r 2 (5f10.0)
.79,.8
 
.Menu_minor_name c 758 (2a)
Centre_ID
Terminal_ID
Wait_ID
Stop
Yes
No
..... (truncated)
 
The first line starts with a '!' and is interpretted as a comment. The next, non-blank line is the header information for an entry called .o-version , which is a single line of text, 20 charcaters wide. The next entry is called .menu_integer and contains 3 integers that are read in under the control of the format '(10i10) '. The third entry contains floating point real data, and the next contains character information. Character data is stored as variables of 6 letters (hence the format '(2a)' for the menu names which can be 12 letters long!).
Regularization Overview
 
Model regularisation is used to force standard bond lengths, angles and fixed dihedral angles on a model (or part of one). At the end of the regularisation, the user is prompted to accept or refuse the new coordinates. Before a molecule can be regularized, the user's database must contain the .bonds_angles stereochemistry dictionary. The user can then do a stereochemistry generate step using the Refi_init & Refi_gener commands. These steps must be repeated after using any of the Mutate_* commands. After the restraint list has been generated, all commands can be accessed via the pull-down menu Rebuild/Regularize
The generate restraint step in Refi_gener creates 4 datablocks that contain lists of bond distances, angles, fixed torsion and flexible torsion angles. They should not be tampered with by the user
The optimizer requires knowledge of the usual sterochemical restraints concerning bond lengths and angles in a datablock called .bonds_angles
The file stereo_chem.odb contains such a datablock of Engh & Huber parameters. It has been edited to include a few more angles, lacking in the old style description. It contains stereochemical parameters for amino-acids and RNA bases, as well as the torsion angle descriptions that Phil Evans made for some other things. Before using any of the Refi commands, the contents of this file, or an equivalent one, must be part of the user's database. If it does not, it can be read into the users database while starting O or with the read command.
Each line may contain one keyword and appropriate data. Unknown keywords are skipped during parsing. The contents of the datablock are case insensitive. Only the bond and torsion keywords are used by the Refi system. Normal people should be able to design entries for new residue types, but a knowledge of stereochemistry will still be needed.
Here is a portion of the distributed dictionary that describes the stereochemistry of an alanine amino-acid:
 
residue ALA
centre CA
main-chain N CA C O CB
side-chain CB
phi C- N CA C
psi N CA C N+
omega CA C N+ CA+
conformer alpha phi -55. psi -50.
conformer beta phi -120. psi 120.
torsion PHI C- N CA C CB C O
torsion PSI* N CA C O O
bond_distance N C- 1.329 0.02
bond_distance CA N 1.458 0.02
bond_distance CB CA 1.521 0.02
bond_distance C CA 1.525 0.02
bond_distance O C 1.231 0.02
bond_angle N C- CA- 116.200 2.0
bond_angle CA N C- 121.700 2.0
bond_angle CB CA N 110.400 2.0
bond_angle C CA N 111.200 2.0
bond_angle C CA CB 110.200 2.0
bond_angle O C CA 120.800 2.0
bond_angle O C N+ 123.000 2.0
!main-chain torsions
torsion_fixed CA C N+ CA+ 180.000 2.0
torsion_fixed N CA C CB -123.000 2.0
torsion_fixed CA C N+ O 180.000 2.0
torsion_flexible C- N CA C -55.000 20.
torsion_flexible N CA C N+ -50.000 20.
---------------------------------------------------------------
 
The keyword bond_length allows the definition of a distance and is followed by 2 atom names, a value and a standard deviation. Atoms coming from connecting residues are indicated by either '-' or '+' characters in their names, to designate residues before or after the residue. The bond forming the peptide linkage, for example, is then described by
bond_distance C- N 1.329 0.020
The keyword bond_angle allows the definition of an angle and is followed by 3 atom names, a value and a standard deviation. The line
bond_angle O C N+ 123.0 2.00
for example, is sufficient to include the angle defined by the positions of atoms O, C of the alanine and N of the next residue. Similarly
bond_angle C- N CA 121.7 2.00
describes the angle defined by C of the preceeding residue. N, CA of the alanine.
The keyword torsion_fixed allows the definition of a fixed torsion angle and is followed by 4 atom names, a value and a standard deviation. These can be used to keep rings flat, or to describe what happens at branch points, for example. To describe the branching at a CA atom, we could use the definition above

torsion_fixed N CA C CB -123.000 2.0
or
torsion_fixed CA N C CB 33.9 1.00
Either torsion angle, is sufficient to generate an L-amino-acid.
The keyword torsion_flexible allows the definition of a flexible torsion angle and is followed by 4 atom names, a value and a standard deviation. These are used by the Build commands, for example.

The program convert_dict.f is available to turn old style dictionaries into the new format. The output may need editing, especially for angles at branch points. The old dictionary never allowed one to define the CB-CA-C angle, for example. The program takes the old dictionary as the input, and writes the new dictionary as output, e.g
% axp_convert_dict < dict_eh.dat > dict_eh.o
The resulting file will also need editing to add the first line O Db descriptor for a text database entry.
Users should also be aware of Gerard Kleywegt's Hiccup service to generate dictionaries.

Refi_alterna(te) (101026)
 
refi_alterna <mol>

This command is functionally equivalent to the Refi_gener in that it generates stereo-chemical restraints for a molecule. However, the command is intended for use with molecules that have alternate conformations for certain side-chains. O treats such structures by creating separate molecules, one ‘complete’ molecule with the name provided by the user (M1 say), a second containing residues that have second alternate conformations (M1B say), a third containing residues that have a third conformation (M1C say). For molecule M1B, if we simply run Refi_gener for the whole molecule, O will generate restraints between adjacent residues in the molecule that are not actually adjacent in the sequence. What we need is a set of restraints for each separate residue and no links to the last or next residue; this is accomplished with the Refi_alternate command. Note that the command does not check that the user has a molecule containing alternates; perhaps this is too trusting.

In the following, we have loaded a molecule named M1 which has a set of alternate confomations. No single residue in this molecule has three separate alternate conformations, so we only need to consider the stereo-chemistry of molecule M1B:

O > ref_alt
New> Molecule of alternate conformations[]: m1b

If the user does not plan on regularizing the molecule of alternates, there is no need to generate stereo-chemical restraints.


Refi_clear_a(tom)
 
refi_clear_a <ID>
 
This command allows the user to clear an atom that has been previously fixed so that it can move during a model regularization. The command stays active and must be cleared with the Clear_flag command.
Refi_clear_g(roup)
 
refi_clear_g <id>
 
This command allows the user to clear a group of connected atoms that may have been previously fixed so that they can all move during model regularization. The command stays active and must be cleared with the
Clear_flag command.
Refi_continu(ous)
 
refi_continu <define a zone>
 
This command allows the user to regularize a zone of residues. The command stays active so that if an atom is grabbed and moved around, the other atoms will be forced to move to maintain stereochemistry. Atoms that are fixed do not move during optimization. The fixed status of atoms within the zone can be changed when the command is still active.
On Yes/No, any fixed atoms in the zone are cleared. The No copmmand merely terminates the Refi_continuous, it does not restore any saved coordinates.
Use this at your own risk, it needs some practice.
Refi_fix_atom
 
refi_fix_atom <id>
 
This command allows the user to fix an atom so that it does not move during a model regularization. The command stays active and must be cleared with the Clear_flag command. After a round of Refi_zone or Refi_continuous fixed atoms are unfixed.
Refi_generat(e) (101025)
 
refi_gener <molecule_name> <start & end residues>
 
This commands extends the 4 entries in the user's database describing the bond lengths, angles, fixed and flexible torsion angles in a molecule. If these entries do not exist, they are created.
The command makes use of the restraints associated with each residue type that are described in the ODB entry .bonds_angles but if there are no stereo-chemical entries for a particular residue type in this dictionary, an attempt will be made to open an entry <restyp>_bonds_angles in the user's database for the needed information. Such data can be generated by the QDS system in O.
If the user makes a mutation, the initialization and generate steps must be remade.
If a molecule is built up from discontinuous pieces of chains (e.g. a loop might be poorly defined in the density so that a continuous segment of residues might not be present in the database), multiple calls to Refi_gener would be needed to correctly define the sterochemical parameters.
In the following example, the database is initialized and then the stereochemical parameters are generated for a complete molecule. A residue type FA has been found in the molecule that has no entries in .bonds_angles and, therefore, its geometry cannot be optimized.
 
O > refi_ini
Refi > Molecule [B ]: a
O > refi_gener
Refi > Molecule []: a
Refi > Define a zone [all molecule]:
Refi > No bond distances in Db for FA
Refi > No bond angles in Db for FA
Refi > No torsion_fixed in Db for FA
Refi > No torsion_flexible in Db for FA
 
This results in the creation of the following 4 ODB entries:
 
O > dir a_*
...
Heap> A_BOND_DISTANCE I W 4252
Heap> A_BOND_ANGLE I W 6990
Heap> A_TORSION_FIXED I W 3228
Heap> A_TORSION_FLEXIBLE I W 3132
...
If the user wants to work on this residue of type FA, there will be limitations on what can be done in O since there is no dictionary available. WIthout a dictionary, the user is able to Grab_residue (i.e. move the residue around as a rigid body), and and apply dihedral rotations with Tor_general; the user will be unable to tear the residue apart and restore good geometry. If the latter is required, the QDS system can be used to build a copy of the residue via a point and click interface and then, as a consequence, generate a complete O stereo-chemistry entry for the residue (QDS_write).
Refi_init
 
refi_init <molecule_name>
 
This command initializes the database for future calls to Refi_generate. This is done by deleting all O database entries for the defined molecule that are involved with stereochemical restraints
Refi_patch
 
refi_patch <restraint_type> <restraint_data>
 
Sometimes it is necessary to add extra stereochemical restraints to those generated by Refi_gener
For example, many proteins contain du-sulphide bridges that in turn force extra restraints on bond lengths and angle. Other examples could include, connecting glycosylation sites onto a protein, or the generation of metal binding sites.
The command allows the user to define the 4 different types of stereochemical restraint types and 3 special cases:
 
bond_length
bond_angle
torsion_fixed
torsion_flexible
conformer
cis-peptide
SS
 
The different types of restraints require different information but are of similar form. First one defines the atoms involved and then the restraint value and standard deviation. Here is an example for forming a di-sulphide bridge between 2 CYS/CYH residues called A117 and A124 in a molecule called A.
 
O > ref_patch
Refi > This command allows you to make the following patches:
Refi > BOND_DISTANCE
Refi > BOND_ANGLE
Refi > TORSION_FIXED
Refi > TORSION_FLEXIBLE
Refi > CONFORMER
Refi > CIS_PEPTIDE
Refi > SS
Refi > Molecule [A ]:
Refi > Type of patch: ss
Refi > First CYS residue : a117
Refi > Second CYS residue : a124
The stereochemical restraint datablocks for bond lengths and angles are expanded accordingly.
Cis-peptides have an omega angle of 0 degrees. By some international convention, the omega associated with residue i, is the angle between residue i and i+1. Since cis-conformations are primarily prolines, we've got into the habit of saying 'cis-proline 38' to mean the omega of 37 has a value of 0 degree. Therefore, in O I follow habit rather than convention and in this example would say 'refi_patch a cis a38'.
The conformer patch generates new values for the relevant torsion angles, and must match the named conformers described for the residue in the stereochemical library. This patch is most usefull when wanting to build a piece of secondary structure with the Build_residue command.
Refi_geometry (101202)
 
refi_geometry <ID zone> or type <mol res1 res2>
 

This command evaluates the geometry of the stereo-chemistry restraints deviate from expected values. It generates a residue based property <mol>_residue_geometry that is a combined goodness-of-fit indicator calculated from deviations for all restraints with which each residue is involved. The indicator is the RMS of the ratio of the restraint deviation and the ‘sigma’ of the relevant deviation. The largest restraint outliers are listed, as are RMS values for the molecule as a whole.

Refi_geometry replaces the old Refi_statist(ic) command.

Outlier limits for bond length, bond angle and dihedral angles are stored in ODB entry .refi_bad and have default values of 0.1, 10., 10. These values are a little low if the aim is to get an overview. The user may prefer to load refi_very_bad.odb which contains 0.2, 20., 20.

The new residue property can be displayed with O’s graphing commands. Refi_geom can also be activated from the rebuild master menu (in the useful properties blind), which also creates a graph of the result.

In the following example, I first load in suitable outliers, and then evaluate the geometry of a molecule that us being refined with REFMAC5. This structure was solved by molecular replacement.

O > read refi_very_bad.odb
Heap> Database compressed.
O > refi_geom m2
Refi > All molecule, no object defined.
Refi > Restraints: zone A2 to Z471 in molecule M2
Refi > Dihedral outlier: M2 A7 CA CB CG1 CG2 117.3
Refi > Dihedral outlier: M2 A21 CD CG CB CA 30.6
Refi > Dihedral outlier: M2 A21 N CD CG CB 30.6
Refi > Dihedral outlier: M2 A21 CG CD N CA 20.9
Refi > Dihedral outlier: M2 A31 CG CB CA N 34.7
Refi > Dihedral outlier: M2 A31 CD CG CB CA 40.5
Refi > Dihedral outlier: M2 A31 N CD CG CB 30.7
Refi > Dihedral outlier: M2 A54 CG CB CA N 26.8
Refi > Dihedral outlier: M2 A54 CD CG CB CA 39.9
Refi > Dihedral outlier: M2 A54 N CD CG CB 36.0
Refi > Dihedral outlier: M2 A54 CG CD N CA 20.3
Refi > Dihedral outlier: M2 A55 CG CB CA N 32.9
Refi > Dihedral outlier: M2 A55 CD CG CB CA 38.1
Refi > Dihedral outlier: M2 A55 N CD CG CB 26.4
Refi > Dihedral outlier: M2 A97 CB CG CD1 CD2 111.0
Refi > Dihedral outlier: M2 A107 CG CB CA N 26.7
Refi > Dihedral outlier: M2 A107 CD CG CB CA 38.5
Refi > Dihedral outlier: M2 A107 N CD CG CB 34.5
Refi > Dihedral outlier: M2 A108 CG CB CA N 31.5
Refi > Dihedral outlier: M2 A108 CD CG CB CA 38.5
Refi > Dihedral outlier: M2 A108 N CD CG CB 29.7
Refi > Dihedral outlier: M2 A118 CB CG CD1 CD2 117.0
Refi > Dihedral outlier: M2 A131 CD CG CB CA 27.9
Refi > Dihedral outlier: M2 A131 N CD CG CB 27.3
Refi > Dihedral outlier: M2 A148 CD CG CB CA 24.9
Refi > Dihedral outlier: M2 A148 N CD CG CB 23.5
Refi > Dihedral outlier: M2 A158 CA C N CA 170.4
Refi > Dihedral outlier: M2 A159 CG CB CA N 24.4
Refi > Dihedral outlier: M2 A159 CD CG CB CA 33.6
Refi > Dihedral outlier: M2 A159 N CD CG CB 30.3
Refi > Dihedral outlier: M2 A162 CA C N CA 20.1
Refi > Dihedral outlier: M2 A177 CA C N CA 148.4
Refi > Dihedral outlier: M2 A178 CA C N CA 35.4
Refi > Dihedral outlier: M2 A179 CA C N CA 61.3
Refi > Dihedral outlier: M2 A180 CA C N CA 32.9
Refi > Dihedral outlier: M2 A180 N CA C CB 47.2
Refi > Dihedral outlier: M2 A192 N CD CG CB 20.1
Refi > Dihedral outlier: M2 A201 CB CG CD1 CD2 117.1
Refi > Dihedral outlier: M2 A208 CG CB CA N 28.8
Refi > Dihedral outlier: M2 A208 CD CG CB CA 35.8
Refi > Dihedral outlier: M2 A208 N CD CG CB 29.3
Refi > Dihedral outlier: M2 B7 CA CB CG1 CG2 111.7
Refi > Dihedral outlier: M2 B8 CG CB CA N 20.0
Refi > Dihedral outlier: M2 B8 CD CG CB CA 22.8
Refi > Dihedral outlier: M2 B21 CD CG CB CA 32.5
Refi > Dihedral outlier: M2 B21 N CD CG CB 37.2
Refi > Dihedral outlier: M2 B21 CG CD N CA 28.6
Refi > Dihedral outlier: M2 B54 CG CB CA N 20.6
Refi > Dihedral outlier: M2 B54 CD CG CB CA 33.3
Refi > Dihedral outlier: M2 B54 N CD CG CB 32.6
Refi > Dihedral outlier: M2 B54 CG CD N CA 21.0
Refi > Dihedral outlier: M2 B55 CG CB CA N 38.1
Refi > Dihedral outlier: M2 B55 CD CG CB CA 46.2
Refi > Dihedral outlier: M2 B55 N CD CG CB 37.1
Refi > Dihedral outlier: M2 B97 CB CG CD1 CD2 110.0
Refi > Dihedral outlier: M2 B107 CG CB CA N 20.4
Refi > Dihedral outlier: M2 B107 CD CG CB CA 34.3
Refi > Dihedral outlier: M2 B107 N CD CG CB 32.8
Refi > Dihedral outlier: M2 B107 CG CD N CA 21.3
Refi > Dihedral outlier: M2 B118 CB CG CD1 CD2 120.5
Refi > Dihedral outlier: M2 B127 CG CB CA N 23.9
Refi > Dihedral outlier: M2 B127 CD N CA CB 23.3
Refi > Dihedral outlier: M2 B126 C N CA C 21.0
Refi > Dihedral outlier: M2 B158 CA C N CA 178.0
Refi > Dihedral outlier: M2 B159 CG CB CA N 29.2
Refi > Dihedral outlier: M2 B159 CD CG CB CA 41.3
Refi > Dihedral outlier: M2 B159 N CD CG CB 37.3
Refi > Dihedral outlier: M2 B162 CA C N CA 24.1
Refi > Dihedral outlier: M2 B176 CA C N CA 22.3
Refi > Dihedral outlier: M2 B178 CA C N CA 25.2
Refi > Dihedral outlier: M2 B179 CA C N CA 37.0
Refi > Dihedral outlier: M2 B180 CA C N CA 40.3
Refi > Dihedral outlier: M2 B180 N CA C CB 46.5
Refi > Dihedral outlier: M2 B181 N CA C CB 34.0
Refi > Dihedral outlier: M2 B192 CG CB CA N 24.5
Refi > Dihedral outlier: M2 B192 CD CG CB CA 41.7
Refi > Dihedral outlier: M2 B192 N CD CG CB 41.7
Refi > Dihedral outlier: M2 B192 CG CD N CA 27.7
Refi > Dihedral outlier: M2 B201 CB CG CD1 CD2 117.6
Refi > Dihedral outlier: M2 B208 CG CB CA N 22.2
Refi > Dihedral outlier: M2 B208 CD CG CB CA 29.5
Refi > Dihedral outlier: M2 B208 N CD CG CB 24.1
Refi > Bond deviation (A) : 0.030
Refi > Angle deviation (Deg.): 2.6
Refi > Dihedral deviation (Deg.): 12.7

I had checked the whole molecule a couple of times as my student carried out the refinement, and was happy with the results until I discovered what had happened with the chirality of some of the LEU and VAL residues. As part of my checking, I always look at rotamers and, as I said, everything looked OK. But things were not OK; atoms were in the right place but the atoms defining the chirality of the LEU at the CG, for example, had the atom names switched. So in residue B201 above, the atom called CD1 should be CD2 and vice-versa. As far as O is concerned, this is a large dihedral angle violation. There is another big violation because there is a cis-peptide between resdiues 158-159, which is not an error, but had not been set with a Refi_patch in O.

Here is the new residue property that has been generated:

O > dir m2_res*
Heap> M2_RESIDUE_NAME C W 917
Heap> M2_RESIDUE_TYPE C W 917
Heap> M2_RESIDUE_SEGID C W 917
Heap> M2_RESIDUE_POINTERS I W 1834
Heap> M2_RESIDUE_CG R W 3668
Heap> M2_RESIDUE_RAMA R W 1834
Heap> M2_RESIDUE_IRC I W 917
Heap> M2_RESIDUE_B R W 917
Heap> M2_RESIDUE_GEOMETRY R W 917

To olot the results, one can use the pull-down menu or the terminal.

O > Graph_proper
New> Molecule [M2 ]:
New> Y-axis[Residue_b]: res_geom
New> X-axis[Index]:

This is what it would look like:

The small spikes (~5 units) are prolines showing up because the standard O dictionary defines them to be planar, but REFMAC allows them to be puckered. The 10 unit spikes are LEU/VAL residues, the spike at A158 is the cis-proline, and the one at A177-178 is a badly distorted region in poor density.

Here is where O keeps the outlier information:

O > dir .refi*
Heap> .REFI_INTEGER I W 2
Heap> .REFI_REAL R W 9
Heap> .REFI_C6 C W 3
Heap> .REFI_BAD R W 3
O > wr .refi_bad ;;
.REFI_BAD R 3 (10(1x,f7.4))
0.1000 10.0000 10.0000

Refi_zone
 
refi_zone <id two atoms> or <mol res1 res2>
 
Regularize/Optimizes a zone of residues. Fixed atoms do not move. The fix status is cleared after optimization. The zone can be defined by typing or picking atoms:
refi_zone a a10 a20
Refi > A A10 A20 ACA
Refi > Refining zone A10 to A20 in molecule A
Refi > Rmsd Shift Bonds Angles Fixed Torsion
Refi > 0.00 0.022 3.69 2.00
Refi > 0.09 0.008 2.53 0.97
Refi > Accept coordinates?
no
 
If links to atoms outside the zone are too long, the external atoms get 'trimmed' and do not take part in the optimization.
Deviations from expected values are listed before and after optimization.
The results can be accepted (with Yes) or not (with No).
There is a limit of 5000 for each class of restraint in the zone.
Render (070106)
This command generates plot meta-data of the 3D objects that are currently visible in O. The resulting plot file can be rendered using Molray (Harris & Jones, 2001, and accessible from my home page).
The Render command traverses the complete 3D object display list generated by the user. The graphical information contained within this structure is stored in the program. Scratch space for this process is generated on the fly but on array has to be defined in size. This size is kept in the ODB in the .render entry and has a default value of 1000000. If the largest single object that you make is too big, O will generate an error message and you will have to specify a larger number. For example, to make a much larger scratch space of 10 million, do this:

O > d_s_d
Heap> Full name of data block: .render
Heap> It is of type I and has 1 entries
Heap> Start and end entries [1 1 ]:
Heap> Changing entries 1 to 1 of data block .render
Heap> Enter value (must be type I): 10000000
Heap> New rendering space allocated.

Render replaces the old Plot, Plot_on, Plot_off commands. The file generated is named according to the Plot_setup command.
O is able to display objects with transformations applied, as well as complex images generated with ODL, e.g. a whole virus particle can be drawn given suitable RT-operators and the asymmetric unit of the particle. Render should be able to correctly generate meta-data for these objects.
Text data is NOT generated.
The file contains a single object called O.


Ring_plane (120904)
ring_plane <name> <ID until YES>
This command allows a user to identify the atoms to be used in defining a plane. The user needs to define at least 3 different atoms, and terminates input by activating the YES flag. The plane has an entry in the ODB derived from the name given by the user. In the following example, I have defined a pair of planes and named them phenyl and hydroxamate within one of our fosmidomycin analogues (PDB entry 2Y1G)

O > rin
Fm> RIN is not a unique keyword.
Fm> Ring_plane is a possibility.
Fm> Ring_distanc is a possibility.
Fm> Ring_to_ring is a possibility.
Fm> RIN is not a visible command.
O > Ring_plane
New> Define the least-squares plane of a ring.
New> Save the results here [LSQ]:phenyl
New> Out-of-plane distance -0.00
New> Out-of-plane distance 0.00
New> Out-of-plane distance -0.00
New> Out-of-plane distance 0.00
New> Out-of-plane distance -0.00
New> Out-of-plane distance 0.00
New> Out-of-plane RMSD 0.00
O > Ring_plane
New> Define the least-squares plane of a ring.
New> Save the results here [LSQ]:hydroxamate
New> Out-of-plane distance -0.24
New> Out-of-plane distance 0.03
New> Out-of-plane distance 0.24
New> Out-of-plane distance 0.02
New> Out-of-plane distance -0.26
New> Out-of-plane distance 0.21
New> Out-of-plane RMSD 0.19

Each plane creates a 3D object where the plane is defined, the out-of-plane distance is indicated, as well as the plane normal. The object name is the name provided by the user.



and



Each plane calculation creates an entry in the user's ODB; here there are the results of 3 calculations:
O > dir .ring*
Heap> .RING_63 R W 22
Heap> .RING_HYDROXAMATE R W 22
Heap> .RING_PHENYL R W 22
O > dir *phenyl*
Heap> .RING_PHENYL R W 22
O > wr .RING_PHENYL ;;
.RING_PHENYL R 22 (8(1x,f8.4))
-0.2638 0.7159 -0.6465 -7.5948 9.8340 -4.0850 3.2110 10.0780
-4.9670 2.1370 11.3540 -5.0220 1.5500 12.3890 -4.2010 2.0440
12.1300 -3.3220 3.1170 10.8570 -3.2600 3.7080

Each ODB entry associated with a plane calculation contains a description of the plane normal, and the coordinates of the atoms used to define the plane.



Ring_distanc(e) (120904)
ring_distanc <name> <ID until Clear_flag>
This command allows a user to measure the out-of-plane distance of identified atoms
O > Ring_distanc
New> Determine the out-of-plane distance of a ring.
New> Use the results here [LSQ]:phenyl
New> Out-of-plane distance -3.16, ID another ....
New> Out-of-plane distance 0.00, ID another ....
New> Out-of-plane distance 0.00, ID another ....

 



In the above, I have identified the C5 methyl carbon, and then the chlorine atoms of the di-chloro-phenyl ring. The out-of-plane information is also listed in the 3D information window:





Ring_to_ring (120904)
ring_to_ring <name1> <name2>
This command allows a user to measure the relative orientation of pairs of planes. Here is the result for the ligand that was used in the above measurements:

O > Ring_to_ring
New> Determine ring-to-ring information.
New> Use the results from here [LSQ1]:phenyl
New> Number of atoms in ring 6
New> Use the results from here [LSQ2]:hydroxamate
New> Number of atoms in ring 6
New> Ring-to-ring distance 4.45
New> Angle between ring normals 18.90



Rot_Trans_Ob(j)
 
rot_tran_ob <transformation> <object>
 
Rotate / translate a 3D graphical object (normally not a molecule object but for use with maps or something else). The object must exist. It could be created by the user (e.g. with the Fm_draw, Map_draw or Draw_object commands) or by program options with defined names (e.g. Lego_ca creates an objects 'ca_db' and 'ala_db'). In the object list that may be drawn on the screen, the transformed objects have '_rt' appended to its name. <transformation> is a datablock in the database containing the rotation and translation operators. It must be
the complete name e.g. .lsq_rt_a_to_b
Rot_Trans_Db

rot_trans_db <x'> <R> <x>

Apply a rotation/translation operator R to the coordinates of a point x storing the results in x':
x' = R x
where x, x' and R must be O datablocks.
This command is most frequently used to modify the '.active_centre' to look at non-crystallographically related molecules.
Rotate_picture
 
rotate_picture <axis> <angle>
 
Apply a rotation about one of the screen axes. Specify the axis and the angle. This command can be used for taking stereopictures if the rotation angle is 6°, e.g.
rot_pic y 6.
RS_fit (050806)
 
rs_fit <molecule> <residue zone> <fast_map> <grouping> <function>

This command allows one to evaluate how well the molecule fits the density on a per residue basis as described by Jones et al (1991). This implementation differs by outputting either the the correlation coefficient between the model fragment, real space R-factor and the map or average density at the atomic coordinates. The function values, therefore, take on different ranges. The correlation coefficient takes on values -1. to +1 ( worse to best), the R-factor has values 0. and upwards (0.0 best), and the average density is in units of the map standard deviation (high is best).

For the correlation coefficient and R-factor, the fragment electron density is built using Ao and c parameters of 0.9 & 1.04 (see RSR_Setup command), integration radius of 3 pixels, and overall B-factor of 20Å2.

For the R-factor function, a local scaling of the modeled density and the electron density is made for each residue in the zone.

Only electron densities that have been loaded into the FastMap system can be used.

The user is free to decide which atoms in each residue contribute to determining the residue fit by specifying how they are to be grouped. This in turn is described in the stereo_chem.odb file. In the distribution version of this file, three groupings are specified ALL (all atoms in the residue), MC (main-chain atoms), and SC (side-chain atoms).

The program generates a residue property <mol>_residue_rsfit that can be used for colouring and selection purposes.

Residues not yet built are automatically skipped.
 
O > rs_fit m17 a1 a20
Util> Number of residues 132
Util> Number of atoms 1054
Util> What map? [AV]:
Util> What grouping? [all]:
Util> What evaluation function ([CC],RFACT, AVER)? aver
Util> Calculating zone A1 to A20 in molecule M17
Util> 168 atoms in zone
Util> 882 atoms in this box
Util> 6 atoms for residue A1 average density= 1.700
Util> 8 atoms for residue A2 average density= 1.734
Util> 9 atoms for residue A3 average density= 1.060
Util> 11 atoms for residue A4 average density= 2.301
Util> 8 atoms for residue A5 average density= 1.802
Util> 4 atoms for residue A6 average density= 1.993
Util> 7 atoms for residue A7 average density= 2.120
Util> 14 atoms for residue A8 average density= 2.139
Util> 9 atoms for residue A9 average density= 1.199
Util> 8 atoms for residue A10 average density= 1.852
Util> 7 atoms for residue A11 average density= 1.669
Util> 6 atoms for residue A12 average density= 2.164
Util> 6 atoms for residue A13 average density= 2.008
Util> 9 atoms for residue A14 average density= 1.274
Util> 8 atoms for residue A15 average density= 1.864
Util> 11 atoms for residue A16 average density= 1.544
Util> 8 atoms for residue A17 average density= 1.946
Util> 9 atoms for residue A18 average density= 1.601
Util> 12 atoms for residue A19 average density= 1.752
Util> 8 atoms for residue A20 average density= 2.164
O > dir m17_*rsfit*
Heap> M17_RESIDUE_RSFIT R W 132
O > rs_fit m17 a1 a20
Util> Number of residues 132
Util> Number of atoms 1054
Util> What map? [AV]:
Util> What grouping? [all]:
Util> What evaluation function ([CC],RFACT, AVER)? rfact
Util> Calculating zone A1 to A20 in molecule M17
Util> 168 atoms in zone
Util> Space freed
Util> 882 atoms in this box
Util> 6 atoms for residue A1 R factor= 0.310 Scale= 9.649
Util> 8 atoms for residue A2 R factor= 0.337 Scale=10.345
Util> 9 atoms for residue A3 R factor= 0.393 Scale= 6.242
Util> 11 atoms for residue A4 R factor= 0.188 Scale=14.474
Util> 8 atoms for residue A5 R factor= 0.231 Scale=11.087
Util> 4 atoms for residue A6 R factor= 0.248 Scale=11.574
Util> 7 atoms for residue A7 R factor= 0.187 Scale=13.015
Util> 14 atoms for residue A8 R factor= 0.171 Scale=12.843
Util> 9 atoms for residue A9 R factor= 0.441 Scale= 7.170
Util> 8 atoms for residue A10 R factor= 0.268 Scale=11.734
Util> 7 atoms for residue A11 R factor= 0.286 Scale=10.185
Util> 6 atoms for residue A12 R factor= 0.277 Scale=12.346
Util> 6 atoms for residue A13 R factor= 0.227 Scale=11.698
Util> 9 atoms for residue A14 R factor= 0.369 Scale= 7.301
Util> 8 atoms for residue A15 R factor= 0.226 Scale=10.718
Util> 11 atoms for residue A16 R factor= 0.337 Scale= 9.968
Util> 8 atoms for residue A17 R factor= 0.215 Scale=11.239
Util> 9 atoms for residue A18 R factor= 0.340 Scale= 9.263
Util> 12 atoms for residue A19 R factor= 0.355 Scale=10.598
Util> 8 atoms for residue A20 R factor= 0.230 Scale=12.081 

RSC_fit
 
rsc_fit <id 2 atoms> or <mol res1 res2>
 
This option compares the users side chain coordinates with the rotamer library. It finds which rotamer is most like the user's conformation and evaluates the r.m.s. deviation of the side chain atoms after superimposing the main chain atoms. These values are stored in a datablock <mol>_residue_rsc .The side-chain rotamer database must be described in the stereochemistry library.
The following side chains are treated specially:
PHE & TYR's Chi2's are changed by 180° to force the the equivalence of CD1&2 and CE1&2
ASP's Chi2 and GLU's Chi3 are changed by 180° to force equivalence of carboxylate oxygens.
 
RSR Overview ----- RSR commands have been SUPERCEDED. RSR_setup is used with one option in RS_fit.
 
These commands have been superceded by the FastMap equivalents. Only RSR_setup still needs to be used for working with residue based goodness of fit indicators (RS_fit).
The RSR (real space refinement) menu is a useful tool when fitting molecular models into electron density. The algorithms used have been described by Jones and Liljas (1984). All the refinement options in the RSR menu operate in a similar fashion. A volume is chosen around all the selected atoms, including a wall of thickness 3.5 Å, say, on all sides. Only density within this box is considered. The program will then build up a model density of all atoms inside the box. This model density is then scaled to the observed density. The model density is now subtracted from the observed density, and the difference map is stored. This is to prevent atomic groups from entering into density belonging to neighboring atoms. When a group is being refined, the model density for that group is added back into the observed density. The user is able to influence the scaling and subtraction at will.
The optimization algorithm moves the fragment a certain step along a direction that improves the goodness of fit. When the fit gets worse, it attempts to locate a new direction along which to move. The user controls the step size and how many different step sizes to try.
The RSR_zone command should only be used when you have an excellent map, since it splits the residue into quite small fragments that are able to move at will to optimize the fit to the density
RSR_contours

Toggle contouring of the density used in the refinement. This can be useful sometimes.

RSR_dgnl

rsr_dgnl <id an atom> or <mol res1 res2>

This options functions like the Lego_Ca option. A zone is chosen by picking on the screen, or by specifying. The database is then searched, and the poly-alanine chain giving the best rigid body fit to the observed density is suggested.

RSR_map

rsr_map <file name>

This menu item defines the file name of the electron density. It is also the map used by the RS_fit command.RSR_rigid
rsr_rigid <id two atoms> or <mol res1 res2>
This option allows the refinement of a zone of residues as a rigid body. A zone is chosen by picking on the screen, or by specifying at the terminal.

RSR_rigid
 
rsr_rigid <id two atoms> or <mol res1 res2>
 
Make a rigid body fit of a zone of residues to the density


RSR_rotamer

rsr_rotamer <id an atom> or <mol resatom>

The side chain rotamer giving the best refined fit to the density is suggested. Each rotamer is added in turn to the start main chain. The whole residue then pivots about the Ca atom to find the best fit. The user is informed which rotamer gives the best fit.
RSR_dihedral
This option was planned but never implemented.
RSR_sidechains
This option was planned but never implemented.. Zip through all possible sidechain, giving the best fitting one.

RSR_scale

rsr_scale <id an atom> or or <mol res atom>

This menu item requires the user to choose a residue by picking on the screen, or by specifying on the terminal, or in a macro. The scaling takes place within a box around this residue.

RSR_setup

This is a menu that enables the user to change some parameters and options relating to the real space refinement.
Here is an example:
 
O > rs_set
RSR> Automatic scaling? [Yes]:
RSR> autoscale option on
RSR> Contouring of refinement box? [Yes]:
RSR> autocontour option on
RSR> Which metod, CONV or DIFF? [CONV]:
RSR> Maximize the convolution product
RSR> Real space R factor(RFAC) or Correlation coefficient(RSCC)? [RFAC]:
RSR> Attempt to subtract out neighbour atom density? [Yes]:
RSR> Densities will be subtracted
RSR> Define number of scans [5]:
RSR> Define shifts [ 1.00 0.50 0.30 0.20 0.10]:
RSR> Define overall B [ 20.00]:
RSR> Define wall [ 3.50]:
RSR> Define C and Ao [ 1.04 0.90]:
RSR> Define integration radius [ 3]:
RSR> Define scale to be applied to calculated density [ 54.15]:
 
There are 2 possible choices for the refinement method, the CONV method, which tries to maximize the convolution product between observed and model density, and the DIFF method, which tries to minimize the difference density. Although the convolution product method biases the fit to place single atoms on grid points, it is less sensitive to errors produced by scaling the model to the observed density. It can therefore be used when the fit to the observed density is poor. The effect of grid biasing is most severe when fitting single atoms and is reduced by fitting residue fragments.
Autoscaling. This is an option to turn on automatic scaling of model to observed density. It is effective in most of the minor menus in RSR. It may sometimes be advantageous to switch off the autoscale option and use the manual scaling in RSR_scale instead.
Autosubtraction. The user is permitted to switch off the subtraction of model density from observed. This is not recommended, but may be used with the CONV refinement method when the scaling of densities is inaccurate.
Degfine if R-factor or correlation coefficient is calculated.
Nscan. Set the number of search scans in the refinement procedure. Typical value is 5.
Stepsize. Set the size of the Nscan steps in Å / degrees. Typical values are 1.0, 0.5, 0.25, 0.2, 0.05 .
Overall B-factor is applied ot the coords, so that atoms with high B;s stand out
Form_factors. Defines the values Ao and C, used to transform a B factor to an atomic radius A, using the relationship from Deisenhofer & Steigeman (1975): B = 4 a pi ((CA)*(CA) - Ao2)
Typical values are Ao = 0.90; C = 1.04 for high resolution maps (1.7-1.9Å ) and C = 0.82 for medium resolution (2.4Å ).
Irad. Specify how many grid points over which the grid sums are formed. Should be of magnitude 3 Å.

RSR_zone

rsr_zone <id two atoms> or <mol res1 res2>
I do not recomend use of this option.
The RSR_zone option is a "flexible zone" fitting option, allowing rotation / translation real space refinement of residue fragments to electron density. The user is asked to define a zone of residues by picking two atoms on the screen, or by specifying on the terminal, or (more likely) in a macro. A user definable fragment dictionary is consulted to decide how the individual residues are divided into fragments. The standard dictionary divides amino acids into a main chain fragment, and one or more sidechain fragments.
The RSR dictionary is maintained in the O database. It consists of a series of text datablocks, with names RSR_dict_xxx, where xxx is the three-letter code of the residue type. Each line in the entry corresponds to a fragment group. For example, the standard dictionary for isoleucine contains three fragments:
 
RSR_dict_ile T 3 70
CA C O N+
CB CG1 CG2
CD1
 
The '+' after the nitrogen in the main chain fragment means that this nitrogen comes from the next residue. Equivalently, a '-', in front of a C, say, would mean the C atom from the previous residue. These fragment definitions can be changed at will. Be sure to change the number of lines in the datablock header (= 3 in this example). The RSR fragment dictionary is currently also being used for the fragment definitions of the Move_fragment command.
The dictionary can most easily be changed by editing a copy of the file $ODAT/rsr_dict.o. Alternatively, one can write out an entry on a local file, using:
 
write rsr_dict_xxx junk.tmp ;
 
where 'xxx' is the three-letter code of the desired amino acid. The entry can then be edited, and read into the database using
read junk.tmp
Since the name of the data block is part of the header, O knows where to put it.