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_statist(ics)
refi_statistics <molecule_name>
This command gives the user statistics on the optimizer's preferences:
O > ref_stat
Refi > Molecule [A ]:
Refi > Bond deviation (Angstroems) 0.02
Refi > Angle deviation (degrees) 3.90
Refi > Fixed torsion deviation (degrees) 3.03
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.
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.