![]() |
This command is also available from the pull-down menu system for a zone or a single residue |
This command allows the user to modify how the level is defined in the FastMap slider window. The user can choose to work in absolute units (electron/cubic Å) or in RMS-units. The default value is the current mode.
O > Fm_mode
New> What map? [F21]:
New> Slider mode ([Absolute]/RMSD): r
The slider will then change in style from

to:

Only the 'Level' slider is affected, and in this case was reset to RMS=1.0.
The default value that is used when the map is read into or created in O is controlled by the second item in the .fm_real ODB vector. The default value can, therefore, be changed by the user with the Db_set_d command
O > dir .fm*
Heap> .FM_REAL R W 2
O > wr .FM_REAL ;;
.FM_REAL R 2 (10(1x,f7.5))
0.80000 0.00000
The following will set the default to RMS units:
O > d_s_d .fm_real 2 2 1.
while the following sets the mode back to absolute units:
O > d_s_d .fm_real 2 2 0.
If the ODB .fm_real is deleted, the default mode is set to use absolute units
Fm_multiply (080110)
fm_multiply <map> <value>
This command allows you to apply a multiplicative scale constant to a FastMap that has been read or created in O. It can be used to set the RMS of the map to unity.
O > Fm_multiply
New> What map? [F21]:
New> Min, max, RMS ...... -1.43633 4.53619 0.50280
New> Multiplication constant to apply to map [ 1.99]:
New> Min, max, RMS ...... -2.85669 9.02194 1.00000
- RSR rotamer: to rotamer real space fit the side-chain (Fm_rsr_rotamer) to the 'current' map (Density/Density pull-down)
- Regularize: to restore stereochemically sensible bond lengths and angles. The zone is the complete section that has been built/rebuilt. There is no restore capability, other than clicking on line five again.
- Flip: flips over the peptide oxygen in the linkage between the current residue and the 'previous' one.
- Torsion: activates torsional rotations, as defined in the .bonds_angles ODB for that particular residue. There is no restore capability, other than clicking on line five again.
- Build to : build to the identified skeleton atom (see Build_ed_to command)
This command allows the user to manipulate a small zone of residues using O's main-chain database. It is best used with the the MasterMenu system which provides the user with simple access to the various options as well as the possibility of restoring backups of the coordinates.

After activating the command with 'Grab a CA zone' from the menu, the user is prompted to define the start and end residues for the zone. Two objects are then created; CA contains the central atom object of the zone and SEQ will contain the sequence/residue names. If the user wishes to make use of the existing CA coordinates, one should now click on 'Set mode all CA's'. If one now clicks on an atom and grabs it, the zone will get updated with main-chain fragments as you move the atom. The SEQ object containing the sequence-related text will also get updated as you move the atom around. Click on 'Accept changes' when you are happy or 'Undo changes' to return the start coordinates.

If the starting coordinates are very poor, you can have a little bit more fun. The basic idea is that the atom you grab, as well as the start/end atoms in the zone, are guide points for the database search, and the other residues in the zone are not. This is the default mode of working with the command. If you identify a CA it will be drawn in magenta to indicate it is a guide atom. The strategy, therefore, is to decide that the CA of a particular residue is associated with a particular piece of density and then move it there. Everything else will jiggle around to accomplish this. Next, select where another CA is to go and move it. The first guide atom, stays (roughly) where it was. When you have finished guiding things, you might want to switch mode back to the 'Set mode all CA's' to make the final placement. Alternatively, if you find that you have generated too many guide atoms, you can click on 'Set mode alternate points' to generate more freedom for the database search.

The various macros in MasterMenu that are associated with this command, merely set new values in the database for .grab_integer with values 0, 1, 2, 3 for modes guide points, all CA's, alternate points, and accept changes, respectively
These commands use the diffraction data directly. Commands are available to read the list of reflections into O, to calculate structure factors based on either a map or a model, and to calculate an electron density. When used with the NCS commands, the user can carry out cyclic averaging.
O > hkl
New> HKL is not a unique keyword.
New> HKL_read is a possibility.
New> HKL_SF_map is a possibility.
New> HKL_Fourier is a possibility.
New> HKL_SF_model is a possibility.
New> HKL_SF_expli is a possibility.
New> HKL_SF_chop is a possibility.
New> HKL_chop_Fou is a possibility.
New> HKL_upd_Four is a possibility.
New> HKL is not a visible command.
The structure factor and Fourier calculations are made using the Cooley-Tukey Fast Fourier Transform algorithm with code kindly proved by Lynn Ten Eyck.
All structure factor calculations will make use of NCS-operators if present as a chain entry.
An entry in the O database called .HKL_INTEGER controls 2 important parameters. The first one is the amount of scratch space used in the Fourier calculation, the other the temperature factor (scaled by a factor 100) added to the atomic B’s in HKL_SF_model command. The defaults values are 1,000,000 and 20.0 Å 2 :
O > wr .HKL_INTEGER ;;
.HKL_INTEGER I 2 (10(1x,i7))
1000000 2000
People working with very large unit cells might need more scratch space. If the average B-factor in your model is very high, it might be a good idea to increase the added B-value a bit. Read LTE’s papers to see what this is about.
The O reflection file format is a simple text file with a few required lines defining things like space group, unit cell information that are read in under the control of keywords, and free format. The control lines are then followed by the diffraction data. Each reflection is contained on one line and consists of values for h, k, l, Fobs, SigmaFobs. The line is readunder Fortran format control. Unless the user changes things, the default format is (3i5, 2f15.5). CCP4 users may find it easiest to use mtz2various and select the 'Convert MTZ to TNT format' option:

In the following example, we have generated a TNT-style reflection data-set and then added the extra keywords needed by O using a text editor.
short_name NATI The CCP4 output is already formated, and can be read into O with the indicated statement.
The reflection data are not stored in the user's ODB. O allocates memory on the fly as it is needed for most HKL-related activities. There are no limitations on the number of reflections that can be handled other than the user's virtual address space assignments.
In the following example, I select a chop Fourier around a single residue and since there are only 14 atoms (and symmetry related copies), the calculation is essentially instantaneous.
O > sel_off
Sel> What molecule [1OGM ]:
Sel> Residue range [all molecule]:
O > sel_on
Sel> What molecule [1OGM ]:
Sel> Residue range [all molecule]: x541 x541
O > HKL_chop_Fou
New> What molecule? []: 1ogm
New> What hkl project? [NATI]:
New> Resolution [ 1.80]:
New> Fourier Coefficients a*|Fo|-b*|Fc| [1 1]: 1 1
New> New map: []: chop11
New> Grid points along cell axes [ 180 204 84]:
8.000000 Ang. lower resolution mods to coefficients
The new map appear in the FastMap system.
This command is also available from the master-menu Rebuild menu where it allows you to generate a chopped |Fo|-|Fc| Fourier for a zone or a single residue. The new map is called CHOP11 and the FastMap slider is opened and positioned at the bottom centre of the screen.
This command is used to calculate an electron density map from a set of structure factor amplitudes and phases. The user is able to control which amplitudes are used in the Fourier calculation. The resulting map becomes part of the O FastMap system.
O > hkl_fou
New> What hkl project? [NATI]:
New> Fourier Coefficients a*|Fo|-b*|Fc|: 1 1
New> Resolution [2.5]: 1.8
New> New map: []: f11
New> Grid points along cell axes [ 180 204 84]:
New> Min, max, sigma ...... -1.57960 2.07567 0.24386
In the above example, a map is calculated with |Fo|-|Fc| amp l itudes and model phases. In the FastMap system, the map has the name F11 and can be controlled by the usual O slider system.
The grid is calculated at ~1/3 of the resolution, suitable for use with LTE’s FFT routines. For cyclic averaging, a finer grid may be appropriate. If O does not like the grid supplied by the user, you will be told.
At the moment, no weighting is applied to the Fourier coefficients. The Fo and Fc data are scaled in resolution shells. The low resolution data, however, often scale poorly because of the solvent contribution. In maps where the absolute value of (a-b) is > 0.1 (2|Fo|-|Fc| maps, for example), O uses |Fo| and calculated phases for low resolution terms. Otherwise, the low resolution reflection is skipped.
This command allows the user to load reflection data into O from the external file system. This data is not stored in the user's O database, and as such it is best read in from the on_startup macro.
O > hkl_read
New> HKL reflection file name : nati.hkl
New> Getting reflection count
New> Number of reflections 56267
New> HKL project name : [NATI]:
New> Reading cell and space group info...
New> O-style symm-ops for spacegroup P21212
New> Database compressed.
In the above example, the external file nati.hkl looks like this:
Short_name Nati
Cell 103.670 115.516 50.040 90.000 90.000 90.000
Space_group P21212
SF_field Fo SigF Fc PhiC
hkl 0 0 3 1042.70320 21.35019 1923.24020 180.00001
hkl 0 0 4 239.20133 4.77582 672.92940 0.00000
hkl 0 0 5 739.09470 11.14824 1663.80600 180.00001
hkl 0 0 6 108.29800 9.91356 491.62040 0.00000
hkl 0 0 7 617.38494 9.61245 433.17780 180.00001
hkl 0 0 8 854.39910 12.70748 1279.51100 0.00000
hkl 0 0 9 256.52813 8.69932 308.32882 0.00000
hkl 0 0 10 2363.87600 34.43382 2788.15130 180.00001
....
hkl 57 8 1 81.25087 32.56689 163.01560 311.40802
hkl 57 9 0 68.22990 43.17918 110.47620 0.00004
Each line begins with a code-word that is almost self-explanatory. The space group name is the one used within O. All records are parsed with free format input. The diffraction data must be already scaled and merged. If you use CCP4, for example, you could write out the (h,k,l) , Fobs, Sigma (Fobs) reflection data with format (‘hkl’, 3i5, 2f15.5), or as a TNT-style reflection file (see the HKL Overview, above). You would then need edit in the other bits-and-pieces with your favourite editor.
At the moment, only h,k,l, Fo and SigF are read for each reflection record.
This command is used to remove the effect of a group of atoms from the current phases and to then calculate a new electron density map. The atoms are removed from the phases by explicit summations of the trigonometric terms making up the structure factor equations. The map is made with the FFT at the moment, but this will e ventually be changed to make an explicit calculation around the atoms that are removed from the phases.
The atoms are specified using the O selection system. Those atoms in the molecule that are select ON, are removed. In the following example, a zone of 3 residues are used to generate a chopped Fourier.
O > sel_off
Sel> What molecule [1OGM ]:
Sel> Residue range [all molecule]:
O > sel_on ; x349 x351
O > hkl_sf_chop
New> What molecule? []: 1ogm
New> What hkl project? [NATI]:
New> Resolution [2.5]: 1.8
New> Fourier Coefficients a*|Fo|-b*|Fc|: 1 1
New> New map: []: chop11
New> Grid points along cell axes [ 180 204 84]:
New> Min, max, sigma ...... -1.57437 4.51231 0.25020
In the above example, a map is calculated with |Fo|-|Fc| amp l itudes and chopped model phases. In the FastMap system, the map has the name CHOP11 and can be controlled by the usual O slider system.
This command is used to calculate structure factors from an O molecular model. All atoms in the molecule are used in the calculation. Each atom type must have Forsyth & Wells (1959, Acta Cryst. 12, 412-415)) form factors in the O database. Parameters for the most common atom types (C, N, O, P, S) are included in the menu.odb file.
This command uses explicit summations of the trigonometric terms making up the structure factor equations. It is, therefore, much slower than the HKL_SF_model command which works by generating an electron density and then taking a Fourier transform using the FFT algorithm. The following calculation took 240 seconds while HKL_SF_model took only 10 seconds.
O > hkl_sf_exp
New> What molecule? []: 1ogm
New> What hkl project? [NATI]:
New> Resolution [2.5]: 1.8
read F&W for 7
read F&W for 6
read F&W for 8
read F&W for 16
number of atoms of type 6 2777
number of atoms of type 7 734
number of atoms of type 8 1402
number of atoms of type 16 18
Percentage done 10
Percentage done 20
Percentage done 30
Percentage done 40
Percentage done 50
Percentage done 60
Percentage done 70
Percentage done 80
Percentage done 90
Percentage done 100
New> R-factor = 0.1913
This is the usual linear R-factor. The Forsyth & Wells constants look like these ODB entries:
O > dir *f&w*
Heap> .F&W_6 R W 5
Heap> .F&W_7 R W 5
Heap> .F&W_8 R W 5
Heap> .F&W_15 R W 5
Heap> .F&W_16 R W 5
for carbon, nitrogen, phosphorous and sulphur, for example.
This command is used to calculate structure factors from an electron density. It would be used, for example, as part of a cyclic averaging procedure. If the input map does not contain a complete unit cell, it is expanded on the fly, provided an asymmetric unit is defined.
O > hkl_sf_map
New> What map? [AV]:
New> What hkl project? [NATI]:
New> Resolution [2.5]: 2.2
New> R-factor = 0.2893
The map must be a part of the O FastMap system.
This command is used to calculate structure factors from an O molecular model. All atoms in the molecule are used in the calculation. Each atom type must have Forsyth & Wells (1959, Acta Cryst. 12, 412-415)) form factors in the O database. Parameters for the most common atom types (C, N, O, P, S) are included in the menu.odb file.
O > hkl_sf_model
New> What molecule? []: 1ogm
New> What hkl project? [NATI]:
New> Resolution [2.5]: 1.8
read F&W for 7
read F&W for 6
read F&W for 8
read F&W for 16
number of atoms of type 6 2777
number of atoms of type 7 734
number of atoms of type 8 1402
number of atoms of type 16 18
New> R-factor = 0.1936
This is the usual linear R-factor. The Forsyth & Wells constants look like these ODB entries:
O > dir *f&w*
Heap> .F&W_6 R W 5
Heap> .F&W_7 R W 5
Heap> .F&W_8 R W 5
Heap> .F&W_15 R W 5
Heap> .F&W_16 R W 5
for carbon, nitrogen, phosphorous and sulphur, for example.
This allows a user to submit a job into the O ‘job system’. This system makes user of a number of template files that describe a shell script, a start macro (that gets activated before the shell script, and is therefore used to prepare files for the script), and a second macro that is used to load in the results from running the script. The template files are stored in a directory defined by the OJOB environment variable, and all files that are generated are put in directory defined by the OTMP variable. The templates are built according to a naming convention that is best explained by example. There is a script called lsq_brute that uses Gerard Kleywegt’s LSQMAN program with the so-called BRUTE option to align a pair of molecules. There are 2 macro templates associated with this example that are called lsq_ brute_1st.omac and lsq_brute_2nd.omac . Of these, lsq_ brute_1st.omac is a template for the macro that gets run before the shell script starts, and lsq_ brute_2nd.omac is the template for the macro that gets run when the user wishes to see the result of running the script. The first macro MUST indicate that it is completed by setting the Continue_Yes flag. O’s job system also has a command to check what scripts are finished (Job_check ), and this is accomplished by creating a so-called done-file at the end of the script. Submitted scripts that have not been ‘done’, are stored in the ODB entry .job_scripts , while macros that have not yet been activated are stored in .job_macros . As the job system gets used, a counter gets incremented and appended to the templates that are produced. These files will end up in the OTMP directory which should be periodicallt cleared of old files.
Template files will usually contain symbols that need expanding by the user. The user will be prompted for all symbols before the script gets started. If a symbol already has a value, it’s current value will be offered as the default.
Here is what happens when you run the brute script:
O > jo_suHere you just need to specify a reference molecule (1295) and the molecule to be moved onto it (1uim). The first macro, then writes out the 2 PDB files, and then the script gets started. The last line in the above is from LSQMAN
Here is the contents of the lsq_brute script:
#!/bin/csh -f
cd `PRINTENV OTMP`
~/USF/dejavu_osx/osx_lsqman << EOF > q
re a job_a.pdb
re b job_b.pdb
brute a a b a 50 25 50
sa a b job_b_to_a.odb .lsq_rt_b_to_a
quit
EOF
grep 'atoms have an RMS distance of' q > lsq_brute_##JOB_ID##.done
and here is the first macro:
! macro to align 2 PDB files using LSQMAN Brute option
pdb_wr ##OTMP##job_a.pdb ##A molecule## ;;;;;
pdb_wr ##OTMP##job_b.pdb ##B molecule## ;;;;;
mol ##A molecule## obj ##A molecule##ca ca ; end
mol ##B molecule## obj ##B molecule##ca ca ; end
con_yes
The symbol JOB_ID is maintained by the job-system, getting incremented each time a script is submitted. Note that the script extracts output from LSQMAN’s listing to make the done-file. Also note that the start script creates 2 molecular objects, CA objects of each molecule which will be manipulated by the 2nd macro, as follows:
! macro to align 2 PDB files using LSQMAN Brute optionThis macro reads in the result of the super-positioning, does an improve, and then applies the operator to the CA object of the second molecule. How this macro gets activated is described under Job_Check.
Once a job has been submitted, and run it MUST create a done-file. O keeps a list of jobs to check for such files. The Job_check command looks for completed jobs in this list, and if present updates the Jobs pull-down menu to add the appropriate macro. Clicking on any entry in this menu will then start the second macro associated with the relevant script.
The first entry in the Job pull-down will start Job_check :

Clicking on ‘Check’ produces :
As2> Done file made /Users/alwyn/o/temp/lsq_brute_2.donewithin O, indicating the result of running the script. The pull-down also gets updated:

with the macro associated with the script. Clicking on this macro produced (truncated output):
Heap> Created by LSQMAN V. 050218/9.6 at Thu Mar 17 08:31:08 2005 for alwynOn the screen, the 2 CA objects will be superimposed.
This command resets all ODB entries associated with O’s JOB system. It also deletes all files of type .done in the OTMP directory, and clears the job menu.
The job-script assumes that an environment variable CCP4 has been defined so that the REFMAC5 program is present in $CCP4/bin/refmac5. If this assumption does not apply, the script needs to be edited. This script may need more editing if you need something a little more exotic. It has place-holders for the MTZ file, the resolution, and the various MTZ label fields FP, SIGFP, and FREE. The symbols are used in the O macro that reads in the PDB file output by REFMAC5.
If the script is activated with Job_submit, the user will be prompted to specify the location of the CCP4 MTZ file (in full, and must be <= 72 characters), the MTZ labels, the resolution, and the molecule. If activated from the rebuild-menu, these values are added automatically. When the script is running the user can continue working within O. When completed, the user gets some statistics from the run in the done file. When the job macro is activated, the name of the molecule defined by the REBUILD_MOL symbol is incremented, and F21 & F11 maps are recalculated.
If the user does not like the results of the refinement run, the molecule should be deleted from the ODB (pdb_kill $REBUILD_MOL), and the the REBUILD_MOL symbol redefined to the earlier model (Symbol_defin $REBUILD_MOL ...)
The done file lists the RMSDs to bond distance and angle restraints during the course of running the script, as well as the crystallographic R-factor.
Repeated runs will start to generate numerous files in the OTMP directory, so do a periodic clean-up (and a Job_reset) to keep things tidy.
O > job_su
New> Define the template file: refmac
New> There is no data in the JOB system
New> New symbol to expand <MTZ file> : /Users/smith/O/1ogm/1ogm.mtz
New> New symbol to expand <Resolution> : 1.8
New> New symbol to expand <FP label> : FP
New> New symbol to expand <SIGFP label> : SIGFP
New> New symbol to expand <FREE label> : FREE
New> New symbol to expand <Molecule> : 1ogm
Util> SEGIDs will be written out
Util> Chain & SEG IDs not concatenated.
Util> Contains alternate locations
Util> 2 molecules of alternates
Util> Anis Us not present
Util> 4938 atoms written out.
New> Script started
O > job_ch
New> Done file made /Users/smith/o/temp/refmac_1.done
New> Bond distances: refined atoms 4525 0.010 0.022
New> Bond distances: refined atoms 4525 0.011 0.022
New> Bond distances: refined atoms 4525 0.011 0.022
New> Bond distances: refined atoms 4525 0.011 0.022
New> Bond distances: refined atoms 4525 0.011 0.022
New> Bond distances: refined atoms 4525 0.011 0.022
New> Bond angles : refined atoms 6187 1.374 1.921
New> Bond angles : refined atoms 6187 1.236 1.921
New> Bond angles : refined atoms 6187 1.237 1.921
New> Overall R factor = 0.1503
New> Overall R factor = 0.1492
New> Overall R factor = 0.1498
New> Overall R factor = 0.1499
New> Overall R factor = 0.1499
New> Overall R factor = 0.1499
New> Macro list created in the JOB system
As2> Symbol has new value: m2
Util> Database compressed.
Util> Space for 9583958 atoms
Util> Space for 100000 residues
Util> Element information at end of line
Util> Chain name >X<
Util> Chain name >C<
Util> Molecule M2 contained 1112 residues and 4931 atoms
Util> Alternative conformations result in 2 molecules
Util> O-style symm-ops for spacegroup P21212
Util> Database compressed.
Util> Skipped Hs 0
Util> SEGID :
Util> Database compressed.
Util> Space for 9575701 atoms
Util> Space for 100000 residues
Util> Element information at end of line
Util> Chain name >X<
Util> Molecule M2B contained 1 residues and 7 atoms
Util> O-style symm-ops for spacegroup P21212
Util> Database compressed.
Util> Skipped Hs 0
Util> SEGID :
Util> @on_stereo_chem will be activated
Mol> Database compressed.
Mol> Created connectivity Db for M2
New> R-factor = 0.1960
8.000000 Ang. lower resolution mods to coefficients
New> Multi-scale R-factor = 0.1816
New> Min, max, RMS ...... -1.24588 4.85430 0.47400
8.000000 Ang. lower resolution mods to coefficients
New> Multi-scale R-factor = 0.1816
New> Min, max, RMS ...... -0.74374 0.87733 0.08583
As4> The refined coordinates are loaded into molecule m2
Job Script REFMAC chop (080222)
This script provides an interface between O and the crystallographic refinement program REFMAC5 from the CCP4 system. The script is also dependent on a number of symbols used by the rebuild-menu (REBUILD_MOL, REBUILD_F21, REBUILD_F11, HKL_PROJ, HKL_RESOL), from which the script can be activated.
The script differs from the REFMAC script in that the user is only interested in a small zone of residues which may be absorbed into the O molecule upon refinement.
The job-script assumes that an environment variable CCP4 has been defined so that the REFMAC5 program is present in $CCP4/bin/refmac5. If this assumption does not apply, the script needs to be edited. This script may need more editing if you need something a little more exotic. It has place-holders for the MTZ file, the resolution, and the various MTZ label fields FP, SIGFP, and FREE. The symbols are used in the O macro that reads in the PDB file output by REFMAC5.
If the script is activated with Job_submit, the user will be prompted to specify the location of the CCP4 MTZ file (in full, and must be <= 72 characters), the MTZ labels, the resolution, start and end residues, and the molecule. If activated from the rebuild-menu, these values are added automatically. When the script is running the user can continue working within O. When completed, the user gets some statistics from the run in the done file.
When the job macro is activated, the user will be taken back to the zone of interest, a map will be generated (using O's HKL-system and the current HKL project), and the refined structure in the zone will be displayed. The user can merge this portion into the working molecule by Yes, or ignore it with No.
The macros assume that the start/end residues that get merged at the end are the main conformers if there are multiple conformers. If the user is interested in minor conformers, use Clear_flags to reset the If_yes_no flag, and then explicitly merge them from the CHOP molecule into the working molecule.
The done file lists the RMSDs to bond distance and angle restraints during the course of running the script, as well as the crystallographic R-factor.
Repeated runs will start to generate numerous files in the OTMP directory, so do a periodic clean-up (and a Job_reset) to keep things tidy.
O > jo_su
New> Define the template file: ccp4_refmac
New> There is no data in the JOB system
New> New symbol to expand <MTZ file> : /Users/smith/O/r1ogmsf.mtz
New> New symbol to expand <FP label> : FP
New> New symbol to expand <SIGFP label> : SIGFP
New> New symbol to expand <FREE label> : FREE
New> New symbol to expand <Resolution> : 1.8
New> New symbol to expand <Start residue> : x349
New> New symbol to expand <End residue> : x351
New> New symbol to expand <Molecule> : 1ogm
Util> SEGIDs will be written out
Util> Chain & SEG IDs not concatenated.
Util> Contains alternate locations
Util> 2 molecules of alternates
Util> Anis Us not present
Util> 4938 atoms written out.
New> Script started
The job is now running. The user can click on the job-menu to check the status and, when completed, activate the macro to see the results of the refinement.
As2> Done file made /Users/smith/o/temp/refmac_chop_1.done
As2> Bond distances: refined atoms 4525 0.010 0.022
As2> Bond distances: refined atoms 4525 0.011 0.022
As2> Bond distances: refined atoms 4525 0.011 0.022
As2> Bond distances: refined atoms 4525 0.011 0.022
As2> Bond distances: refined atoms 4525 0.011 0.022
As2> Bond distances: refined atoms 4525 0.011 0.022
As2> Bond angles : refined atoms 6187 1.374 1.921
As2> Bond angles : refined atoms 6187 1.236 1.921
As2> Bond angles : refined atoms 6187 1.237 1.921
As2> Overall R factor = 0.1503
As2> Overall R factor = 0.1492
As2> Overall R factor = 0.1498
As2> Overall R factor = 0.1499
As2> Overall R factor = 0.1499
As2> Overall R factor = 0.1499
As2> Macro list created in the JOB system
Util> Database compressed.
Util> Space for 9583958 atoms
Util> Space for 100000 residues
Util> Element information at end of line
Util> Chain name >X<
Util> Chain name >C<
Util> Molecule CHOP contained 1112 residues and 4931 atoms
Util> Alternative conformations result in 2 molecules
Util> O-style symm-ops for spacegroup P21212
Util> Database compressed.
Util> Skipped Hs 0
Util> SEGID :
Util> Nothing marked for deletion, so no compression.
Util> Space for 9575679 atoms
Util> Space for 100000 residues
Util> Element information at end of line
Util> Chain name >X<
Util> Molecule CHOPB contained 1 residues and 7 atoms
Util> O-style symm-ops for spacegroup P21212
Util> Database compressed.
Util> Skipped Hs 0
Util> SEGID :
Util> @on_stereo_chem will be activated
Mol> Database compressed.
Mol> Created connectivity Db for CHOP
As4> x349
As4> x351
As4> 1.8
As4> No object defined.
As4> Centering on zone from X349 to X351
As4> SF calculation
New> R-factor = 0.1960
As4> Making the map
8.000000 Ang. lower resolution mods to coefficients
New> Multi-scale R-factor = 0.1816
New> Min, max, RMS ...... -1.24588 4.85430 0.47400
As4> Yes or No to accept or not
The molecule is centred on the area of the chopped residues and O is now waiting for the user to Yes/No the results.
O > no
As4> Cleaning up
New> Deleted CHOP_ATOM_XYZ
New> Deleted CHOP_ATOM_B
New> Deleted CHOP_ATOM_WT
New> Deleted CHOP_ATOM_Z...
New> Deleted CHOP_CONNECTIVITY
New> Deleted CHOP_ATOM_COLOUR
As4> ----------------------------------------------------
As4> Done: Not Merged
As4> ----------------------------------------------------
Job script eds_fetch (051010)
This script, written by Gerard Kleywegt, provides an interface between O and the Uppsala Electron Density Server (EDS). The user needs to specify the PDB code of the desired EDS entry to start downloading a complete EDS package. This package is copied into the directory specified by the environment variable OTMP.
O > jo_su
New> Define the template file: eds_fetch
New> There is no data in the JOB system
New> New symbol to expand <PDB code> : 1ogm
As4> Fetching EDS entry 1ogm for you ...
As4> ...
As4> IMPORTANT ... Make sure that there is room for *at least*
As4> *two* fm_maps (e.g., by using fm_zap on existing maps)
As4> ...
New> Script started
As2> Done file made /Users/smith/o/temp/eds_fetch_1.done
As2> 9408 -rw-r--r-- 1 alwyn staff - 4813069 Oct 10 16:48 1ogm.tar.gz
As2> Macro list created in the JOB system
The downloaded EDS entry is now in the OTMP directory. Activating the associated macro, loads the EDS package into the O session.
If the PDB code does not exist, error messages will appear when trying to load the respective files.
- 1 Defines a distance cutoff limit for Lsq_improve, default of 38 corresponds to 3.8Å.
- 2 Defines smallest fragment size for Lsq_improve, default 3.
- 3 Defines the colour of the vector between paired atoms, default red.
- This is the transformation matrix, as the following 12 real numbers
- x = R1 x + R4 y + R7 z + R10
- y = R2 x + R5 y + R8 z + R11
- z = R3 x + R6 y + R9 z + R12
- This data block can be used to specify operators that are applied to 3-D objects such as maps (command Rot_tran_obj), objects (command Lsq_obj) or molecular coordinates (command Lsq_mol).
- Holds the names of the two molecules being compared.
- Holds the paired set of atoms from each molecule.
- A description of the vectors between paired atoms in the O graphics object descriptor language. This is a large entry and should be deleted if not needed.
This command draws a line representing the location the rotation axis associated with an O rotation-translation (RT) operator. The user needs to define the the operator(s) of interest. O is able to work with a group of operators, usually associated with oligomer of multiple chains or with single operators. In the following example, the structure is ClpP1 protease from Mycobacterium tuberculosis, Rv2461c, refined at a resolution of 3 Å with tight NCS restraints but no enforcement of proper symmetry. The crystal has two rings, each of 7 chains, in the asymmetric unit. The various operators have been determined with the lsq_explicit command.
O > lsq_axis
Lsq > There is a chain-operator called 2C8T
Lsq > Which chain operator ? 2c8t
Lsq > RT-operator b
Lsq > Rotation 51.07
Lsq > Rossmann & Blow angles 86.21 169.79 51.07
Lsq > Euler angles -8.68 -50.21 -0.98
Lsq > Translation along rotation axis -1.08
Lsq > Point 1 on rotation axis -46.92 1.13 27.04
Lsq > Point 2 on rotation axis -86.87 3.82 19.85
Lsq > -------------------------------------------------------
Lsq > RT-operator c
Lsq > Rotation -103.20
Lsq > Rossmann & Blow angles -84.90 -10.02 -103.20
Lsq > Euler angles -17.52 -101.04 -7.16
Lsq > Translation along rotation axis -0.45
Lsq > Point 1 on rotation axis -46.44 0.34 26.74
Lsq > Point 2 on rotation axis -86.65 3.99 19.63
Lsq > -------------------------------------------------------
Lsq > RT-operator d
Lsq > Rotation 152.92
Lsq > Rossmann & Blow angles 94.29 -10.53 152.92
Lsq > Euler angles -41.48 -145.85 -32.74
Lsq > Translation along rotation axis 0.39
Lsq > Point 1 on rotation axis -86.95 4.15 19.68
Lsq > Point 2 on rotation axis -46.96 1.09 27.12
Lsq > -------------------------------------------------------
Lsq > RT-operator e
Lsq > Rotation -153.81
Lsq > Rossmann & Blow angles 83.66 169.29 -153.81
Lsq > Euler angles 32.00 146.37 44.89
Lsq > Translation along rotation axis 0.28
Lsq > Point 1 on rotation axis -46.62 -0.42 27.16
Lsq > Point 2 on rotation axis -86.92 4.13 19.54
Lsq > -------------------------------------------------------
Lsq > RT-operator f
Lsq > Rotation -256.58
Lsq > Rossmann & Blow angles 83.37 170.90 -256.58
Lsq > Euler angles -175.45 -101.63 -162.03
Lsq > Translation along rotation axis -0.96
Lsq > Point 1 on rotation axis -45.52 -0.46 26.32
Lsq > Point 2 on rotation axis -86.08 4.32 19.82
Lsq > -------------------------------------------------------
Lsq > RT-operator g
Lsq > Rotation 53.00
Lsq > Rossmann & Blow angles -85.88 -7.52 53.00
Lsq > Euler angles -0.43 52.51 7.88
Lsq > Translation along rotation axis 0.62
Lsq > Point 1 on rotation axis -45.08 0.99 25.07
Lsq > Point 2 on rotation axis -85.42 3.91 19.74
Lsq > -------------------------------------------------------
Lsq > RT-operator h
Lsq > Rotation 177.04
Lsq > Rossmann & Blow angles 110.58 82.16 177.04
Lsq > Euler angles 18.38 -43.91 158.43
Lsq > Translation along rotation axis 1.98
Lsq > Point 1 on rotation axis -45.56 -0.60 23.37
Lsq > Point 2 on rotation axis -39.98 -15.98 -17.18
Lsq > -------------------------------------------------------
Lsq > RT-operator i
Lsq > Rotation -50.42
Lsq > Rossmann & Blow angles -81.87 -9.38 -50.42
Lsq > Euler angles -12.58 -49.71 3.90
Lsq > Translation along rotation axis -0.62
Lsq > Point 1 on rotation axis -5.25 -4.29 35.35
Lsq > Point 2 on rotation axis -45.19 1.50 28.76
Lsq > -------------------------------------------------------
Lsq > RT-operator j
Lsq > Rotation 101.94
Lsq > Rossmann & Blow angles 83.00 169.73 101.94
Lsq > Euler angles -19.43 -99.74 -5.20
Lsq > Translation along rotation axis -0.76
Lsq > Point 1 on rotation axis -5.98 -4.14 35.36
Lsq > Point 2 on rotation axis -45.89 0.84 28.13
Lsq > -------------------------------------------------------
Lsq > RT-operator k
Lsq > Rotation -153.92
Lsq > Rossmann & Blow angles -83.35 -10.55 -153.92
Lsq > Euler angles -44.90 -146.66 -31.37
Lsq > Translation along rotation axis -0.88
Lsq > Point 1 on rotation axis -6.23 -4.29 35.36
Lsq > Point 2 on rotation axis -46.13 0.44 27.93
Lsq > -------------------------------------------------------
Lsq > RT-operator l
Lsq > Rotation -154.64
Lsq > Rossmann & Blow angles 96.42 -11.77 -154.64
Lsq > Euler angles 35.46 145.63 48.57
Lsq > Translation along rotation axis -0.74
Lsq > Point 1 on rotation axis -46.77 0.26 27.16
Lsq > Point 2 on rotation axis -6.86 -4.33 35.47
Lsq > -------------------------------------------------------
Lsq > RT-operator m
Lsq > Rotation 104.40
Lsq > Rossmann & Blow angles 81.84 167.33 104.40
Lsq > Euler angles 7.28 100.94 23.99
Lsq > Translation along rotation axis -0.81
Lsq > Point 1 on rotation axis -6.73 -4.76 35.27
Lsq > Point 2 on rotation axis -46.76 1.12 26.27
Lsq > -------------------------------------------------------
Lsq > RT-operator n
Lsq > Rotation -52.00
Lsq > Rossmann & Blow angles 80.74 169.10 -52.00
Lsq > Euler angles -4.22 51.02 14.62
Lsq > Translation along rotation axis -0.84
Lsq > Point 1 on rotation axis -5.65 -5.24 35.06
Lsq > Point 2 on rotation axis -45.71 1.41 27.35
Lsq > -------------------------------------------------------
I have input a chain-operator that specifies the operators between the different chains. In the above, the A chain in one ring has operators to BCDEFG and the H chain, in the other ring, to IJKLMN. For each operator, O outputs the rotation angle around each axis, its orientation in the spherical polar angles definition used by Rossmann & Blow (1961), and in Euler angles. Two points,one at each end of the line are also given.
One clearly sees in the figure that the rotation axes are not collinear, nor exactly parallel.
The chain operator is a text ODB containing the names of the relevant operators like this:
.lsq_ncs_rt_2c8t t 8 25
.lsq_rt_ident
.lsq_rt_b
.lsq_rt_c
.lsq_rt_d
.lsq_rt_e
.lsq_rt_f
.lsq_rt_g
.lsq_rt_h
!done
In this example, I have 7 operators describing the chains in one ring, and an eighth operator to describe the transformation between rings.
If the user calculates the chain operator with lsq_chain_op or has loaded a PDB file containing MTRIX records to describe the NCS restraints, the information describing which molecules are related by the RT-operators will be missing. In this case, the user will be prompted to desecribe the NCS molecule, zone and atom as follows for this M. tuberculosis glutamine synthetase structure which consists of two rings of hexamers:
O > lsq_ax
Lsq > There is a chain-operator called NCS1
Lsq > Which chain operator ?
Lsq > No RT chain-operators in ODB.
Lsq > There is an RT-operator called IDENT
Lsq > There is an RT-operator called NCS1_1
Lsq > There is an RT-operator called NCS1_2
Lsq > There is an RT-operator called NCS1_3
Lsq > There is an RT-operator called NCS1_4
Lsq > There is an RT-operator called NCS1_5
Lsq > There is an RT-operator called NCS1_6
Lsq > There is an RT-operator called NCS1_7
Lsq > There is an RT-operator called NCS1_8
Lsq > There is an RT-operator called NCS1_9
Lsq > There is an RT-operator called NCS1_10
Lsq > There is an RT-operator called NCS1_11
Lsq > There is an RT-operator called NCS1_12
Lsq > Which RT operator ? NCS1_7
Lsq > Molecule names missing for RT-operator
Lsq > You need to identify the NCS asyymetric unit
Lsq > NCS molecule (<cr> to exit): ncs1
Lsq > Zone [all molecule]:
Lsq > Atom [CA]:
Lsq > Rotation 179.99
Lsq > Rossmann & Blow angles 90.02 91.20 179.99
Lsq > Euler angles 90.87 2.40 89.11
Lsq > The object name of the axis is truncated
Lsq > Translation along rotation axis -0.49
Lsq > Point 1 on rotation axis 0.86 -0.07 14.06
Lsq > Point 2 on rotation axis -0.34 -0.08 -42.96
This command is used to create a so-called chain operator which is a set of O-style LSQ operators linking one chain to a set of NCS-related chains. Once this chain operator has been generated, it can be used in O's averaging system, and to generate a new PDB files consisting of the coordinates for one chain plus the NCS operators.
The specified molecule must contain a set of separate chains with different chain identifier letters (A,B etc). The first chain is taken as the reference for least-squares calculations. In the following example, the chains have been refined with strict NCS-symmetry
O > lsq_chain
Lsq > Create chain LSQ ops from a molecule of chains.
Lsq > Molecule name [NCS1]: m1
Lsq > Reference chain is A
Lsq > Chains A and B , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and C , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and D , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and E , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and F , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and G , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and H , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and I , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and J , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and K , RMSD = 0.0 , on 475 CA atoms.
Lsq > Chains A and L , RMSD = 0.0 , on 475 CA atoms.
Lsq > 12 NCS operators are stored.
The command generates an LSQ O-style rotation/translation operator for each chain, including a unit operator for the reference chain. It then creates the chain operator which is an O text ODB entry, containing the names of all the separate chain operators. The chain operator is called .lsq_ncs_rt_<mol> , M1 in this example.
O > dir .lsq*m1*
Heap> .LSQ_RT_M1_1 R W 12
Heap> .LSQ_RT_M1_2 R W 12
Heap> .LSQ_RT_M1_3 R W 12
Heap> .LSQ_RT_M1_4 R W 12
Heap> .LSQ_RT_M1_5 R W 12
Heap> .LSQ_RT_M1_6 R W 12
Heap> .LSQ_RT_M1_7 R W 12
Heap> .LSQ_RT_M1_8 R W 12
Heap> .LSQ_RT_M1_9 R W 12
Heap> .LSQ_RT_M1_10 R W 12
Heap> .LSQ_RT_M1_11 R W 12
Heap> .LSQ_RT_M1_12 R W 12
Heap> .LSQ_NCS_RT_M1 T W 252
O > wr .LSQ_NCS_RT_M1 ;;
.LSQ_NCS_RT_M1 T 12 20
.lsq_rt_m1_1
.lsq_rt_m1_2
.lsq_rt_m1_3
.lsq_rt_m1_4
.lsq_rt_m1_5
.lsq_rt_m1_6
.lsq_rt_m1_7
.lsq_rt_m1_8
.lsq_rt_m1_9
.lsq_rt_m1_10
.lsq_rt_m1_11
.lsq_rt_m1_12
The averaging program A (Jones, 199x) and the developments made by Gerard Kleywegt in the program RAVE treat proper and improper non-crystallographic symmetry in the same way. The tools we have provided over the years do not force improper symmetry, even if it is present. So for example, if a structure is made up of a dimer where one chain is related to the other by a rotation of 178º, the crystallographer has at least three problems: is it really 180º, how do I make it 180º and how do I prove it should be 180º. The Lsq_proper command is a tool to solve the second of these problems. The user needs the NCS operators that are required to describe the improper symmetry (including the identity operator) in O-style rotation-translation ODB entries. The names of these operators are stored in the ODB in a chain-operator entry, i.e. as a set of names of the actual operator entries. The ODB describing the proper symmetry must also be in the user’s database, except for the rotational N and N2 proper symmetries, where N is an N-fold rotation. So for example, if we have 32 symmetry, we need to have an ODB called .ncs_proper_32 in the database describing all of the 32 symmetry operators. The order of operators that is defined by the user MUST match the order defined in the proper symmetry ODB.
This command is very easy to use if you have simple rotational N or N2 symmetry. For other proper symmetries, you must have the complete set of symmetry operators exactly describing the proper symmetry. I only supply the operators for 32 symmetry in the file proper_ncs.odb in the O data directory. Even if you have this symmetry, the order of operators in my file, must match the order in your chain-operator.
The following example is ClpP1 protease from M. tuberculosis, which has 2 rings, each of 7 chains. I will input a chain-operator that specifies the operators between the different chains in one ring. In this example, the A chain in one of the rings has operators to chains BCDEFG. These operators have been previously calculated with Lsq_explicit and are stored in the ODB with names like qb, qc,... qg. They have been grouped into a chain-operator called ring_1 as follows:
O > dir *ring_1
Heap> .LSQ_NCS_RT_RING_1 T W 182
O > wr .LSQ_NCS_RT_RING_1 ;;
.LSQ_NCS_RT_RING_1 T 7 25
.lsq_rt_ident
.lsq_rt_qb
.lsq_rt_qc
.lsq_rt_qd
.lsq_rt_qe
.lsq_rt_qf
.lsq_rt_qg
where each line in the chain operator is the full name of an O-style rotation/translation operator. The chain-operator could be generated by reading in a PDB file that has the strict NCS MTRIX cards, or could be generated from a molecule of separate chains using the Lsq_chain_op command, or by creating the ODB in the file system with your favourite editor and then reading it into O.
We will specify this group of operators in Lsq_proper. Note that we need to define a zone of resides. This zone corresponds to the set of chains that are related by the operators, i.e. just the one ring in this case, and is required to calculate the centre of gravity.
O > lsq_propO types out an ODL that you might cut and paste to see how the improper and proper operators are oriented relative to one-another. The RMS refers to how well the rotation axes are superimposed. The vectors representing each axis are shifted to the origin and a superposition made of the improper and proper groups, after the unit vectors are scaled to a length of 25 Å. The proper set are then translated to pass through the centre of gravity of the chains.
The command generates a new set of RT operators with the text 'new' appended to the names:
O > dir .lsq*rt*new
Heap> .LSQ_RT_QBNEW R W 12
Heap> .LSQ_RT_QCNEW R W 12
Heap> .LSQ_RT_QDNEW R W 12
Heap> .LSQ_RT_QENEW R W 12
Heap> .LSQ_RT_QFNEW R W 12
Heap> .LSQ_RT_QGNEW R W 12
NB if you want to see the orientation of the proper-axes with LSQ_axis, there is a problem. Lsq_axis needs ALL the results generated by Lsq_exp or Lsq_improve, not just the operators. I choose not to duplicate all this extra information. You’ll therefore have to write out the new operators and edit the names back to the whatever they were when you ran Lsq_exp, qa, qb etc in this case. If you just want the operators for averaging or for applying to objects, there is no need to do this edit step.
Here is what happened before and after running Lsq_proper. First you can see the axes from Lsq_exp on each chain in ring 1, then ring 2:

The operator rotation axes are clearly not co-linear, nor when viewed down the axes (ring 1 axes only):

After creating the proper operators, the axes are co-linear (6 lines are drawn here, honest)