The routine combine_focused_maps uses rigid-body refinement to place a model in several maps. It then uses the map-model correlation to identify which are the best parts of each map and the relationships among the models in the different maps to superpose the best parts of each map and create a composite map.
Combine-focused-maps uses the fit of chains in a model to each map to identify the correspondence between the maps. Using this approach it is not necessary that the maps are all superimposed or even that they have the same gridding or size.
If the maps all do superimpose (approximately), you can supply a single model. The model will be refined separately against each map with rigid-body refinement. The placements of each chain in each map will then be used to identify the transformations needed to superimpose the parts of each map corresponding to each chain.
If the maps are quite different, then you will need to supply one model for each map, where you have already placed each chain so that it superimposes with the appropriate part of each map. The models should all be the same except that they have been rigid-body-refined against the various maps. You can use the phenix tool phenix.dock_in_map to place the chains in each map if you have not done it in some other way.
Once a set of models has been set up to match the maps, the map-model correlation in the region of each chain in each model is calculated. This correlation is calculated in a special way: the B-values of all the atoms in the model are set to zero before map-model correlation is evaluated. This step is important in order to make sure that a perfect high-resolution map always will score better than a perfect low_resolution map. (If B-values are variable then a perfect high-resolution map and a perfect low-resolution map will both have correlations of 1, but with a B-value of zero the high-resolution map will have a higher correlation.)
For each chain in the model, the map-model correlations for each map are then used to identify the weighting on that map.
Alternatively, you can specify what parts of the model are to be grouped together for identifying which map to use in what region. You specify any number of region_selection selections (in Phenix atom selection syntax, like (chain A and resseq 250:360) ). Each one is used to define a region in space and within that region the maps are weighted according to their correlations to the atoms selected with that selection.
An empirical weighting scheme is used. The relative weights of two maps (for this one chain or retion ) with a difference in map_model_cc of delta_cc are given by:
exp(-delta_cc/delta_cc_norm)
where delta_cc_norm is typically about 0.05. This means a map that has a map-model cc 0.1 less than another map gets a weight of about 1/10 of the better-fitting map. Using this weighting scheme and transformations calculated from the positions of this chain after rigid-body refinement against each map, a weighted average map is created for each chain in the model. These maps are all superimposed on the reference map and masked around the chain that each is to represent.
Finally all the weighted average maps are combined to form a composite map.
If you specify get_contribution_maps=True (this is the default), at the end of the procedure you will get one map written out for each input map file, called something like "contribution_map_1.ccp4". This map has values from 0 to 1 showing the contribution of this input map file to the final map. You can use it to color your final composite map, showing how much of the information at each point came from this input map file.
If you specify get_cc_map=True (also default) you will get a map file called cc_map.ccp4 that shows the map correlation between the model and the final composite map. The correlation map will be calculated over whatever regions in the model were used in forming the composite map (i.e. if you used individual chains, then the correlations will be calculated over each chain).
Running combine_focused_maps is easy. From the command-line you can type:
phenix.combine_focused_maps reference_map.map focused_map_1.map \ focused_map_2.map model.pdb resolution=4
where reference_map is the map (CCP4, mrc or other related format) that will be used as the template to superimpose all other maps will be superimposed, and focused_map_1.map and focused_map_2.map are maps that are focused on some part of the map (and the remainder of those maps may be poor). The model will be rigid-body refined against all three maps (keeping chains fixed as rigid bodies). The best parts of each map will be selected and combined to create a composite map.
If the density in some of your maps is rather poor, the rigid-body refinement step may not work well. One thing to try in this case is to refine with rigid_body_refinement_single_unit=True. This will tend to hold everything together (but it won't give you an adjustment of individual chain positions). Another option is to refine (with rigid-body refinement only) the models before using combine_focused_maps. That way you have full control over the refinement process. Then in combine_focused_maps use rigid_body_refinement=False.
You cannot use region_selection with use_model_symmetry.
If you supply a model for each map, the models are used to define what parts of each map are included in the analysis. If the model for your target map has chains ABC and one focused map has just chain A, then only chain A from the focused map will be transferred to the target map. If the model for the focused map has chains ABC then weighted versions of the map in the vicinities of ABC will be included.
If you have a model with symmetry (say, chains A B C D are all the same) and just one focused map (say, focused on A), then you can supply your target map, target model with chains ABCD, an one focused map and a model for the focused map that contains just chain A. Then you add the keyword "use_model_symmetry=True" and the focused map from chain A is applied to A B C and D in the target map.
If you supply half-maps corresponding to each full map, the half-maps will be processed in the same way as the full map, yielding one pair of half-maps at the end of the procedure. You can use these half-maps to estimate the local resolution of the final composite map (using phenix.local_resolution) or for other procedures requiring half maps. Note that the half maps could have discontinuities so they may not be appropriate for all uses of half maps.