F(ast)m(ap) Commands Overview (980128)
These are a group of new commands that work with electron density maps. They differ from the map_* and rsr_* commands in what they do and how they do it. When a user works with these commands, the electron density maps is kept in computer memory, and will remain there until it is explicitly removed, or the program stops. On program restarts, the user needs to redefine the file being worked with (command Fm_file) and ,in the case of contoruing, the parameters being used (fm_setup).
Some of the commands are used for real time contouring of elctron densities, some for real-space refinement of models into density, one for secondary structure identification, one for secondary structure building, and one assisting in determining the chain directionality.
There is a new pull-down called 'Density' where there is a separate pane for contouring each of the possible 5 maps. These , in turn, allow the user to control real-time contouring by changing the radius, level(s), colour(s) via a set of sliders.
The Fm contouring commands should., in general, replace contouring with the Map_* and Qmap_* commands. However, at present, the Fm contouring commands cannot generate crystallographically related electron density, and require that the envelope of density covers the molecule of interest. At present, the levels used in Fm are in sigma units, so if one needs to contour at an absolute level, you need to do some arithmetic (this will change).
The Fm RSR commands do not subtract neighbouring atoms from the denisty
before refinement. Residue based goodness of fit indicatores are not yet
available.
Fm_file - to define and read in an external file of electron density
Fm_setup - to define parameters for electron density contouring
Fm_draw - to contour a loaded map at the current screen centre
Fm_zap - to remove a loaded density from computer memory
Fm_skel_2ry - to highlight secondary structural elements in a skeleton
Fm_id_2ry - to fit a secondary structure template into a density via a full 3D rotational search
Fm_rsr_group - does a 6D local search, real space refinement of a group of atoms to a density
Fm_rsr_rotamer - finds the best fitting rotamer, carrying out a roational search about Ca
Fm_rsr_torsion - does a stepped torsional search, real-space refinement.
Fm_local_av - local average allows one to enhance the alpha helix Christmas tree affect
This refers to one of the methods I described in 1982 (Jones, 1982) for how to trace a structure in a map using Frodo. It consisted then of recognizing secondary structure elements (helices and strands), building short templates of them, placing them in the density by a least squares fit to guide points, and filling in the bits and pieces by fixing guide points for Ca atoms. As it is now implemented, it makes use of intereactive real-space refinement (Jones & Liljas, 1984), and database fragment building (Jones & Thirup, 1986). In detail, the steps are
1. Load in trace.o from the data directory. This is a molecule called TRACE, consisting of 700 alanine residues, with one extra residue property. The file also includes 4 short template molecules, corresponmding to 7,5 residue alpha helix, 5 & 7 residue beta-strand
2. Recognize a secondary structure element in a skeletonized map, perhaps after using ESSENS (Kleywegt & Jones, 1996)
3. Choose the desired secondary structure unit from the density/2ry unit pull-down menu
4. Choose the electron density map from the density/map pull-down
5. Chose the Fit option from the density/'Template action' pull-down and identify a point on the skelton wher you want to build the template unit. A polyalanine model will appear, oriented to best fit the density. This is the result of a full 3D search of the template using a Buerger sum-function score indicator (as ESSENS). Use Yes to accept the piece of structure. It is now in the TRACE molecule, but don't worry as to where it is. If the skeleton point is at the position of a CA, it's likely that the template will be pointing in the right direction. If not, then the direction could be wrong. If this is part of a maturing trqace, you may already know the correct direction. If the drawn template is wrong, use grab_group and spin it aroun to roughly fit
6. Use density/'density fit' pull-down to optimize the fit of the group in the density
7. So far you have built an alpha helix say, very quickly, that matches the density. There is a high probablity of it being in the wrong direction. To decide the directionality, one could use residue based density fit indicators (Jones et al. 1992), but I prefer a visual alternative. Alpha helices have a CHristmas tree affect, where the side-chains hang, pointing back to the N-terminal. The Display pull-down option 'Helix tree' makes an enhanced Christmas tree for a helix template, just identify the start and end residues of the helix. A new density is made (called LOCAV) that you can display with the Density slider system.
That's it, just go around building templates. Eventually, you will want to combine pairs of them. Either they will overlap, if so use Display/' Template action' trim template to remove single residues. If they don't overlap, then combine pairs of templates, using the same pull-down, allowing a gap between the units. This uses the database to find the most common connection betrween the units (Jones & Thirup, 1986). If you are not certain of the gap, say NO, and try another if you don't like the results. If you like the result, the connection may still not be perfect, in which case use grab_residue and push them into density. You might like using Refi_continuous as you do this.
The TRACE molecule must not be mutated (actually you can't). Once you know where you are in the sequence, merge the TRACE into your real sequence (Merge command), and remove the template from TRACE to free up memory (Density/ 'Template action' menu).
Although the TRACE molecule has most of the properties of a regular molecule, there is one aspect of regular molecules that has got lost in the trace molecule. In a regular molecule there is a sequence, and that implies one residue comes before another. In the TRACE molecule, this is the true locally within a template but is then lost between templates. This may sound a bit esoteric, but it is an important difference.
T.A.Jones (1982) Computational Crystallography, Clarendon Press, Oxford, Editor D.Sayre.,303-317.
T.A.Jones & L.Liljas (1984) Acta Cryst. A40, 50-57.
T.A.Jones & S.Thirup (1986) EMBO J., 5, 819-822
T.A.Jones,J-Y.Zou,S.W.Cowan & M.Kjeldgaard (1991) Acta Cryst A47, 110119
G.J.Kleywgt & T.A.Jones (1996) Acta Cryst. D......
This command defines which electron density file is to be read in. The program can read in the usual binary format used in the map_* commands (O style maps), CCP4, CNS, TNT, EZD formats. I have not tested all of them. Note that the O style maps still have an advantage in terms of size. If you frequently use other maps, the reading time is improved by having them in x fastest, then y , then z (ie. z-sections)
Here is what happens
O > fm_file
Fm> File name? []: ano1.map
Fm> Name of this map? [Q1]: mir
Fm>
Fm> Map type is O
Fm>
Fm> Parameters as read from the map file:
Fm> Grid ................. 76 82 48
Fm> Origin ............... 0 0 0
Fm> Extent ............... 77 83 49
Fm> Fast, medium, slow.... X Y Z
Fm> Cell axes ............ 91.80 99.50 56.50
Fm> Cell angles .......... 90.00 90.00 90.00
Fm> No reslicing of map necessary
Fm> Prod ................. 20.00
Fm> Plus ................. 0
Fm> Min, max, sigma ...... 0.00000 8.35000 0.95545
Fm> Scale ................ 1.000
Fm> No symmetry information is being used
This command defines which map you want to contour and at what parameters are to be used. The map must have been read in with the fm_file command. The user can choose 3 levels to work with.
O > fm_setup
Fm> What map? [MIR]:
Fm> Radius [ 15.0]:
Fm> Line type [solid]:
Fm> Number of levels [1]:
Fm> Level 1? [ 1.000]:
Fm> Colour? [maroon]:
Fm> MIR_1
Fm> Symmetry operators not stored
This command contours a defined map with the current settings for that map
O > fm_draw
Fm> What map? [MIR]:
Fm> Symmetry operators not stored
This command clears the desired map from computer memory
O > fm_zap
Fm> Zzzzap what map? [MIR]:
This command is the first of a new generation of real-space refinement commands in O. Unlike the RSR_* commands, I now use a much simpler goddness of fit indicator (Buerger's Sum Function and more like Essens). This makes it faster.
O > fm_rsr_group
In group 35
0 1 621.6002
0 2 626.0002
0 3 667.3000
0 4 680.8501
1 5 689.8000
0 1 689.8000
0 1 689.8000
The program cycles through a local rotation and translation search for all atoms in the fragment of the identified atom. The score is an indicator of how well the fragment fits the map defined in the last fm_setup, fm_draw, or Fm slider
This command is one of a new generation of real-space refinement commands in O. Unlike the RSR_* commands, I now use a much simpler goddness of fit indicator (Buerger's Sum Function and more like Essens). This makes it faster.
After identifying an atom, the option generates each rotamer for the residue and then carries out a rotaional search pivoting around the CA atom. The roatmer with the best score after the pivot search is drawn and can accepted. For the moment, it can only be used with amino-acids.
O > fm_rsr_group
In group 35
0 1 621.6002
0 2 626.0002
0 3 667.3000
0 4 680.8501
1 5 689.8000
0 1 689.8000
0 1 689.8000
The score is an indicator of how well the rotating atoms fit the map defined in the last fm_setup, fm_draw, or Fm slider
This command isone of a new generation of real-space refinement commands in O. Unlike the RSR_* commands, I now use a much simpler goddness of fit indicator (Buerger's Sum Function and more like Essens). This makes it faster.
The option carries out a stepped torsion rotational search (30 degree stepping interval) around the bonds defined between 2 identified atoms. These atoms cannot be connected by a ring. If one defined N and CD1 of a PHE residue, for example, this command would vary CHI1 and CHI2 angles. The command uses the connectivity on the screen to decide what atoms are affected in the torsional rotation.
O > fm_rsr_group
In group 35
0 1 621.6002
0 2 626.0002
0 3 667.3000
0 4 680.8501
1 5 689.8000
0 1 689.8000
0 1 689.8000
The score is an indicator of how well the rotating atoms fit the map defined in the last fm_setup, fm_draw, or Fm slider
This command takes a skeleton object (or an atomic one for that matter), and then evaluates how well a structural templatet fits a map at each skeleton point. The template is rotated around the central Ca atom and the program evaluates how well it fits the map at each orientation. The goodness of fit indicator is a sum of how well each rotated atom in the template fits the density. The latter is merely the sum of the 8 nearest neigbour points in the density. This goodness indicator is rougher than those used in the RSR_* commands, and is more like the indicator used in ESSENS (Kleywegt & Jones, Acta Cryst.(1997) D53, 179-185)
So far I have made rough templates of a b-strand of 7 residues (b7ala) and an a-helix of 9 residues (a9ala). These could be improved.
O > fm_skel_2ry
Fm> What map? [MIR]:
Fm> Object name [MCSTAR]: aca
Fm> Secondary Structure [alpha]: b7ala
Fm> Number of residues 7
Fm> Number of atoms 35
Fm> Number of atoms in object 131
Fm> Belongs to molecule A
This command allows you to rapidly fit one of the template molecules to a density. It needs the user to load in a molecule called 'TRACE', which will be used to show polyalanine segments
O > dir trace*
Heap> TRACE_RESIDUE_NAME C W 700
Heap> TRACE_RESIDUE_TYPE C W 700
Heap> TRACE_ATOM_NAME C W 3500
Heap> TRACE_ATOM_B R W 3500
Heap> TRACE_ATOM_WT R W 3500
Heap> TRACE_ATOM_Z I W 3500
Heap> TRACE_ATOM_SELECT I W 3500
Heap> TRACE_RESIDUE_POINTERS I W 1400
Heap> TRACE_RESIDUE_CG R W 2800
Heap> TRACE_MOLECULE_TYPE C W 2
Heap> TRACE_MOLECULE_CA C W 1
Heap> TRACE_MOLECULE_CA_MXDST R W 1
Heap> TRACE_ATOM_COLOUR I W 3500
Heap> TRACE_RESIDUE_RAMA R W 1400
An important stage in the tracing of a new structure is when the crystallographer is able to determinine the chain's directionality. One way of doing this is to locate alpha helices and note how the side chain 'hang', pointing towards the N-terminus of the helix. I call this the Christmas tree affect. With this command the user specifies an electron density and then identifies 2 atoms to define a zone. The command builds up an electron density (LOCAV) that can be displayed with the density pull down menu. If the zone of atoms is an alpha helix, the denisty will show an enhanced Christmas tree affect that will in turn help in defining the directionality of the chain.
Heap> TRACE_CELL R W 6
Heap> TRACE_RESIDUE_TRACED I W 700
Heap> TRACE_ATOM_XYZ R W 10500
Heap> TRACE_ATOM_VISIBLE I W 3500
Heap> TRACE_CONNECTIVITY I W 5590
The TRACE molecule is a standard polyalanine, except for the extra residue property trace_residue_trace This is used to keep track of what bits in the molecule are currently being used by the user.
The user defines which template is to be used.
O > fm_id_2ry
Fm> What map? [MIR]:
Fm> Secondary Structure [alpha]: b7ala
Fm> Number of residues 7
Fm> Number of atoms 35
and can then identify an atom in the skeleton being worked on. The best fit of the template (after a complete rotational search) is then shown, together with all of the current trace segments. Here is the output
number/where 7 19
Fm> Starts at resdiue 19
Fm> Macro in database.
Heap> Deleted TRACE_CONNECTIVITY
Mol> No connectivity Db for TRACE
Mol> Database compressed.
mol connectivity is 5590
The program draws the trace segments by activating the macro on_trace_draw that is inlcuded in the menu.o file
O > write @ON_TRACE_DRAW ;;
@ON_TRACE_DRAW T 6 50
mol trace
sel_off trace ;
sel_prop residue_traced = 1 on
sel_vis
db_kill trace_connectivity
zon ; end