- map_symmetry: Tom Terwilliger

The routine map_symmetry will identify the symmetry in a map and create a file with the symmetry operations.

Map-symmetry uses the density at a set of randomly-chosen points in a map to identify the symmetry in a map from a set of pre-defined symmetry types that include point-group symmetry as well as helical symmetry. For each possible symmetry, the correlation of values at symmetry-related points is calculated. The score for the symmetry type is the square root of the number of elements in the symmetry multiplied by the map correlation for that symmetry.

By default, map-symmetry assumes that the principal axes of symmetry in a map are along x, y, or z, and that helical symmetry is helical along z. The software has a database of 45 common symmetry elements and point groups, along with alternative settings of some of these. The user can specify a specific symmetry type to examine (e.g., I for icosahedral or D7 for a 7-fold axis along z perpendicular to a 2-fold axis along x or along y), or all elements in the database can be examined.

You can also use map-symmetry to find general (point-group or non-point-group) symmetry using the keyword "find_ncs_directly=True". In this case a density search will be carried out using spheres of density in the regions where the map varies the most as templates. Any similar density (with any translations or rotations) will indicate map symmetry.

For helical symmetry, a Fourier transform of the density is examined along the c* axis to find periodicity along z likely to correspond to the helical translation. These likely translations (and integer fractions of them) are tested along with possible rotations to check for helical symmetry.

Running map_symmetry is easy. From the command-line you can type:

phenix.map_symmetry emd_8750.map symmetry=D7

where emd_8750.map is a map (CCP4, mrc or other related format), and in this case you are specifying that only D7 symmetry should be considered.

Helical symmetry is assumed to be along the z-axis.

- job_title = None Job title in PHENIX GUI, not used on command line
- input_files
- map_file = None File with CCP4-style map.
- symmetry_file = None Optional symmetry file (.ncs_spec format or BIOMT records) with reconstruction symmetry

- output_files
- symmetry_out = symmetry_from_map.ncs_spec Output file (.ncs_spec format) describing symmetry in the map
- temp_dir = temp_dir Temp directory

- crystal_info
- resolution = None High-resolution limit for main search. This can be lower resolution than the data. The search is quicker at lower resolution. .short_caption = High-resolution limit
- use_sg_symmetry = False If you set use_sg_symmetry=True then the symmetry of the space group will be used. For example in P1 a point at one end of the unit cell is next to a point on the other end. Normally for cryo-EM data this should be set to False and for crystal data it should be set to True.

- reconstruction_symmetry
- symmetry = ANY Symmetry used in reconstruction. For example D7, C3, C2 I (icosahedral),T (tetrahedral), or ANY (try everything and use the highest symmetry found). Not needed if symmetry is supplied.
- must_be_consistent_with_space_group_number = None Searches for symmetry must be compatible with this space group number.
- include_helical_symmetry = False You can include or exclude searches for helical symmetry
- symmetry_center = None Center (in A) for Symmetry operators (if ncs is found automatically). If set to None, guess is the center of the cell (see use_unit_cell_center) and then if that fails, found automatically as the center of the density in the map.
- check_grid_offset = True Check optimizing map center by moving up to 1 grid unit in each direction
- use_unit_cell_center = True Use center of full unit cell as guess of center of cell
- find_ncs_directly = False You can use find_ncs_from_density to find arbitrary NCS. Try this if your NCS is not proper NCS and not helical.
- optimize_center = False Optimize position of symmetry center. Also checks for center at (0,0,0) vs center of map
- helical_rot_deg = None helical rotation about z in degrees
- helical_trans_z_angstrom = None helical translation along z in Angstrom units
- max_helical_optimizations = 2 Number of optimizations of helical parameters when finding NCS
- max_helical_ops_to_check = 5 Number of helical operations in each direction to check when finding NCS
- max_helical_rotations_to_check = None Number of helical rotations to check when finding NCS
- two_fold_along_x = None Specifies D or I or T two-fold is along x (True) or y (False). If None, both are tried.
- smallest_object = None Dimension of smallest object to consider when finding symmetry. Default is 5 * resolution
- score_basis = ncs_score cc *None Symmetry score basis. Normally ncs_score (sqrt(n)* cc) is used except for identification of helical symmetry
- scale_weight_fractional_translation = 1.05 Give slight increase in weighting in helical symmetry search to translations that are a fraction (1/2, 1/3) of the d-spacing of the peak of intensity in the fourier transform of the density.
- random_points = 300 Number of random points in map to examine in finding symmetry
- identify_ncs_id = True If Symmetry is not point-group symmetry, try each possible operator when evaluating Symmetry and choose the one that results in the most uniform density at Symmetry-related points.
- min_ncs_cc = 0.80 Minimum Symmetry CC to keep operators when identifying automatically
- n_rescore = 5 Number of Symmetry operators to rescore
- op_max = 14 If ncs_type is ANY, try up to op_max-fold symmetries
- tol_r = 0.02 tolerance in rotations for point group or helical symmetry
- abs_tol_t = 2 tolerance in translations (A) for point group or helical symmetry
- max_helical_operators = None Maximum helical operators (if extending existing helical operators)
- rel_tol_t = .05 tolerance in translations (fractional) for point group or helical symmetry
- require_helical_or_point_group_symmetry = False normally helical or point-group symmetry (or none) is expected. However in some cases (helical + rotational symmetry for example) this is not needed and is not the case.

- control
- nproc = 1 Number of processors to use
- random_seed = 171731 Random seed
- quick = True Run quickly if possible
- verbose = False Verbose output

- guiGUI-specific parameter required for output directory
- output_dir = None