Molecular replacement

Using atomic model

The section "Preparing a molecular model for molecular replacement" points out several possibilities of model generation. If you already have a reasonable model ready skip the section.

The "Clear solution(s) found" is when your molecular replacement program has found one ore more soltions which are all correct, so you need to move (rotate and translate) your searching model to the position(s) in the crystal.

The other two sections "Stand alone AMoRe to MAIN" and "CCP4 AMoRe to MAIN" are written to assist you in the cases when things do not go that smoothly.

After you are done continue with one of the "Real cases" (MAIN_DOC:1mol/1mol.html), or (MAIN_DOC:nmol/nmol.html) or some other.

Preparing a molecular model for molecular replacement

A PDB file will usually do. When you search with a single molecular model it makes sense to make all B-values equal,


> set temp sele all end 25

decide if you want to use side chain atoms only or exclude some regions from search and therefore set weights

Clear solution(s) found

Move the model(s) to the final place. Read the file with the search model coordinates


> read file search.pdb coor pdb

Usually at the end of each search programs write the rotation matrices in 3x3 number form. You must check wheather your molecular replacement program and MAIN use the same notation. AMoRe output. for example, is MAIN compatible, it may, however, turn out that you need to invert the matrix and then use the inverted matrix instead.

Set the rotation matrix,


> set matrix 2 numb
> 1. 0. 0. -
> 0. 1. 0. -
> 0. 0. 1.
> ! set matrix 3 invert 2

apply the totation to your model ,


> rotate atom sele segm name * end matr 2

translate it to the final position


> translate atom sele segm name * end vector X-TRAN Y-TRAN Z-TRAN

and save the results:


> write over file model_init.pdb sele segment name * end coor pdb

From here on you continue with initial map calculation, model building and refinement in one of the real case sections (MAIN_DOC:1mol/1mol.html).

AMoRe to MAIN

AMoRe (J. Navaza (1994). Acta. Cryst. 50, 157-163) is a program for solving crystal structures by molecular replacement method.

The below described setup enables you to quickly browse through a number of solutions proposed by AMoRe and check their crystal packing, and maybe, their R-values and electron density maps as well. The procedure describes a case with a single molecule in an asymmetric unit. You can however similarly as in AMoRe, fix certain solutions and check solution tries for additional molecule.

The procedure works with two molecules. The original one (input to AMoRe) and its working copy which position is modified accordingly to a chosen solution. The original one (segment name 'ORIG') must be in the position to which AMoRe rotations and translations apply directly. Start with your search model and reorient it according with 'tabling' output using the MAIN_UTILS:amore_from_tabling.com macro (see below). When using CCP4 AMoRe you can take the file that is created after reorientation of your molecule (tabling.pdb). So that when browsing through a list of solutions, original coordinates will be copied to the working molecule (segment name 'TEST') and reoriented, translated and displayed with an subsequent macro MAIN_UTILS:amore_solut.com. In order to make browsing faster and comfortable a line through a file named solutions_list.com to a small menu block GUESS is created.

The procedure starts with a modified read.com macro. A sample you can find in the MAIN_DOC:1mol/read.com directory. (The modification includes lines which reorient the original molecule.) You can find a read.com, and a sample of the solutions_list.com in the main/doc/amore_to_main/ directory.

If your original file was reoriented with 'tabling' then look into the output and find the shift vector and Euler angles and apply these values to your ORIG coordinate set. The shift vector is in Angstroems.


 rename segm ORIG sele all end
<MAIN_UTILS:amore_from_tabling.com ORIG Alpha Beta Gamma CentX CentY CentZ

The GUESS menu block is created in order to allow you to browse through the list of possible solutions.


 menu block GUESS create
 menu block GUESS color 160
menu block GUESS document>doc/menu/GUESS.txt
menu block GUESS item OPEN add text "open unit 24 file solutions_list.com"
menu block GUESS item NEXT add text "stream unit 24"
menu block GUESS item CLOSE add text "close unit 24"
 menu page 10 add GUESS

The item 'OPEN' opens a macro "solutions_list,com" which you should create, the item 'NEXT' displays solutions with their crystal packing one after the other as you click the item and the item "CLOSE" closes the file, so that you can either restart from the beginning (OPEN) or prepare another macro. The menu block 'GUESS' is added to the page 10 here but you may find some other page more convenient.

You should generate the macro solutions_list.com on the basis of the solutions present in the AMoRe output file "traing.log". So first grep through the file to extract the solution list and then edit the output to create a MAIN macro


> grep -i SOLUT_ traing.log> solutions_list

and then edit the file so that each line


 SOLUT_1      1   39.82   66.23  268.68  0.1683  0.1442  0.1449 51.1 42.0   1

is transformed into two lines


<>utils/amore_solut ORIG TEST 39.82   66.23  268.68  0.1683  0.1442  0.1449
 return

whereas the NEXT invokes the 'amore_solut.com' macro. The first two parameters are the original coordinates ORIG and the TEST segment name to which each solution will be applied, the next three parameters as rotational angles and the second three as the translations in fractional coordinates.

The 'amore_solut.com' macro essentially does the whole work. It creates the new segment from the original one and places it according to an AMoRe solution. At the end the segment is displayed as a chain trace and symmetry equivalents are generated.


 subroutine char FROM char TRIES -
            real Z1 real Y1 real Z2 real C1 real C2 real  C3

The FROM segment gets cloned (after the old one has been deleted):


 dele atom sele segm name TRIES end
 symm select segm name FROM end matr 1 tran 0 0 0
 copy weight sele segm name FROM end sele segm name TRIES end
 copy temp  sele segm name FROM end sele segm name TRIES end

The three rotational angles transform the AMoRe Euler angle convention to MAIN by generating the rotational matrix '3'.


 set matr 2  init z-ax Z1  y-ax  Y1 z-ax Z2

Next the translational shift is converted from fractional coordinates to angstroems units. The SHOW command step is necessary, because it defines the RESULT_0/1/2 variables later used in the 'TRANSLATE' command.


 delete atom sele atom name CX end
 read coor
 *
 CX


 set coor sele atom name CX end values C1 C2 C3
 set coor sele atom name CX end ortho
 set cent calculate sele atom name CX end
 show image center

The 'TRIES' coordinates obtain their original values and are then accordingly modified with a rotation matrix and translation shift to a solution proposal.


 rota atom sele segm name TRIES end matr 3
 tran atom sele segm name TRIES end vector RESULT_0 RESULT_1 RESULT_2
 set weight sele segm name TRIES end = 1.0
 set temp sele segm name TRIES end = 30.

These lines serve to set the center of the display into the center of the newly generated molecule and place the CXX atom to it and pick it.


 set cent calc sele segm name TRIES end
 show image center
 set coor sele atom name CXX end values RESULT_0 RESULT_1 RESULT_2
 ima hist pick natoms

The new segment is then displayed with the 're_image.cmds' macro and its crystal packing is revealed with the 'symmetry_ca.cmds' macro.


<?MAIN_CMDS:re_image.cmds TRIES
<?MAIN_CMDS:symmetry_ca.cmds TRIES
 return

You can try to calculate a map (click items RE_PHASE, MAP_2FOFC) or an kicked omit map, to see if you density makes some sense etc... (Watch for an appropriate value of the WORK_SEGM variable.) If you think that your solution is a reasonable one write the atomic coordinates to a file:


MAIN> write file solution.pdb select segm name TEST end coor pdb

and go on with structure determination. If you realize that the packing is not dens enough and that there are more reasonable solutions, try them against each other first in AMoRe and then redisplay the results.

From here you are directed to the chapter "A real case" for rebuilding and refinment of your model.

Using electron density maps

It is assumed that you have a derivative based electron density map (probably already solvent flattened) and there is either

First you need to get your electron density map into the program. The usual MAIN_DOC:1mol/read.com file, when properly, set will read in a reflection file, which can also contain phase information. For interface with "CCP4" see MAIN:/doc/dens_mod/phase_comb/mtz_2_main.com.

Skeletonize your map

Skeletonize your unit cell map (click menu item "SKEL_GEN" on page 10). After your skeleton has been created copy the file MAIN_CMDS:map_mask_skel_gen.cmds to your working directory and decide first about your density CUT_OFF value. Repeat until you the skeleton seems to contain the best presentation of your electron density.

Decide where about your molecule is allocated (in the middle of the cell, along the unit cell edges, ...). After you you have decided, select parts in the middle of it by using the menu block "NICE_SEL" items "ACT_NEIG" and "ACT_SEGM" ... Delete all the non "active" skeleton atoms and rename the segment of "active" skeleton atoms to SKEL, or whatever and empty the "skeleton" key:


 delete atom sele .not. active .and. skeleton end
 rename segm SKEL sele active end SKEL
 key skeleton sele .not all end

and save the skeleton as a PDB file with connctivity table


 write file skeleton_0.pdb sele active end coor pdb
 write file skeleton_0.ctab sele active end ctab first sele active end

Now uncomment the following lines in the "get_skel.cmds", specify the CUSHION grids and repeat the procedure.


 set vari MAP_DENS = 3
 set vari CUSHION = 15
 make map MAP_DENS from MAP_ORIG init 9999 \
      around CUSHION sele segm name SKEL end
 make map MAP_DENS from MAP_ORIG copy

If the obesrved portion of the map does not correspond to what you've expected add to or remove skeleton atoms from some the SKEL segment atoms and repeat the procedure or restart from some other position. Once you've got it more or less right it is time to define your asymmetric unit more exactly.

Define your asymmetric unit

An asymmetric unit is the smallest part of a unit cell from which it is possible, using symmetry operators, reconstruct the whole unit cell. This definition does not imply where such asymmetric unit should be positioned and wheather it is fragmented or not. For convenience and eas of handling it makes sense to select a contigous part of the unit cell. The essential tools are available via menu block "MAP_MASK" (MAIN_MENU:map_mask.html).

First create a score map of your current map ("SCOR_MAP"), display it and try to demark the protein and solvent regions by choosing the right contour and thereby with help of


> anal map ????
> show anal

also visually confirm your solvent content. In a molecular replacement case, missing parts require lower contouring than expected form expected solvent content level. As a side effect, however, solvent regions, are likely included into protein mask. In order to reduce the wrongly assigned regions, interactive molecular mask manipulation with help of skeleton can be of great help.

The aim is to assign to the key "active" as large as possible fragment of the skeleton so that the symmetry images of the "active" atoms do not overlap with the "active" fragments and that no substantial part of the skeleton remains uncovered by the "active" atoms and its symmetry images. The "active" atoms, remaining skeleton atoms and symmetry images of the "active" atoms appear in different colors. The current "active" skeleton status is inspected by "SKEL_IMA" (MAIN_CMDS:map_mask_skel_ima.cmds) and "SKEL_SYM (MAIN_CMDS:map_mask_skel_sym.cmds) menu items.

The macros utilize keys "active" and "skeleton" to differentiate by color the images of the "active" and not "active" "skeleton" atoms.

There is a number of selection menu items appearing within menu blocks NICE_SEL (MAIN_MENU:nice_sel.html) on pages 8, 9, 10, 1, SELECT (MAIN_MENU:select.html) on page 1, that are to be applied in order to define a skeleton based asymmetric unit.

The essential items you will need are (using more doesn't hurt)

After you are done, save the skeleton as specified above and get ready for the next steps. It will quite often turn out that your definition of the asymmetric unit needs corrections, so you may restart the skeleton definition session by firts reading the skeleton asymmetric unit, generate a new skeleton and assign as "active" the new skeleton atoms from vicinity from your saved file "SKEL"


> read file skeleton_0.pdb coor pdb
> read file skeleton_0.ctab ctab first sele segm name SKEL end
> key xx sele segm name SKEL end
> key active sele around key xx dist 1.0 .a skeleton end

and then start editing the "active" skeleton atoms.

Search for local symmetry within the same crystal form

Patterson based searches

Real space search

Searching in other crystal forms