Structure refinement in PHENIX
 phenix.refine is the general purpose crystallographic structure refinement program Available features
 
 
 
 
 Current limitations
 Remark on using amplitudes (Fobs) vs intensities (Iobs) Although phenix.refine can read in both data types, intensities or amplitudes, internally it uses amplitudes in nearly all calculations. Both ways of doing refinement, with Iobs or Fobs, have their own slight advantages and disadvantages. To our knowledge there is no strong points to argue using one data type w.r.t. another. phenix.refine organizationA refinement run in phenix.refine always consists of three main steps: reading in and processing of the data (model in PDB format, reflections in most known formats, parameters and optionally cif files with stereochemistry definitions), performing requested refinement protocols (bulk solvent and scaling, refinement of coordinates and B-factors, water picking, etc...) and finally writing out refined model, complete refinement statistics and electron density maps in various formats. The figure below illustrates these steps: ![]() The second central step encompassing from bulk solvent correction and scaling to refinement of particular model parameters is called macro-cycles and repeated several times (3 by default). Multiple refinement scenario can be realized at this step and applied to any selected part of a model as illustrated at figure below: ![]() Running phenix.refinephenix.refine is run from the command line: % phenix.refine <pdb-file(s)> <reflection-file(s)> <monomer-library-file(s)> When you do this a number of things happen: 
 
 To get information about command line options type: % phenix.refine --help To have the program generate the default input parameters without running the refinement job (e.g. if you want to modify the parameters prior to running the job): % phenix.refine --dry_run <pdb-file> <reflection-file(s)> If you know the parameter that you want to change you can override it from the command line: % phenix.refine data.hkl model.pdb main.low_resolution=8.0 \ simulated_annealing.start_temperature=5000 Note that you don't have to specify the full parameter name. What you specify on the command line is matched against all known parameters names and the best substring match is used if it is unique. To rerun a job that was previously run: % phenix.refine --overwrite lysozyme_refine_001.def The --overwrite option allows the program to overwrite existing files. By default the program will not overwrite existing files - just in case this would remove the results of a refinement job that took a long time to finish. To see all default parameters: % phenix.refine --show-defaults=all Refinement with all default parameters% phenix.refine data.hkl model.pdb This will perform coordinate refinement and restrained ADP refinement. Three macrocycles will be executed, each consisting of bulk solvent correction, anisotropic scaling of the data, coordinate refinement (25 iterations of the LBFGS minimizer) and ADP refinement (25 iterations of the LBFGS minimizer). At the end the updated coordinates, maps, map coefficients, and statistics are written to files. Giving parameters on the command line or in filesIn phenix.refine parameters to control refinement can be given by the user on the command line: % phenix.refine data.hkl model.pdb simulated_annealing=true However, sometimes the number of parameters is large enough to make it difficult to type them all on the command line, for example: % phenix.refine data.hkl model.pdb refine.adp.tls="chain A" \ refine.adp.tls="chain B" main.number_of_macro_cycles=4 \ main.high_resolution=2.5 wxc_scale=3 wxu_scale=5 \ output.prefix=my_best_model strategy=tls+individual_sites+individual_adp \ simulated_annealing.start_temperature=5000 The same result can be achieved by using: % phenix.refine data.hkl model.pdb custom_par_1.params where the custom_par_1.params file contains the following lines: refinement.refine.strategy=tls+individual_sites+individual_adp refinement.refine.adp.tls="chain A" refinement.refine.adp.tls="chain B" refinement.main.number_of_macro_cycles=4 refinement.main.high_resolution=2.5 refinement.target_weights.wxc_scale=3 refinement.target_weights.wxu_scale=5 refinement.output.prefix=my_best_model refinement.simulated_annealing.start_temperature=5000 which can also be formatted by grouping the parameters under the relevant scopes (custom_par_2.params): 
refinement.main {
   number_of_macro_cycles=4
   high_resolution=2.5
}
refinement.refine {
  strategy = *individual_sites \
              rigid_body \
             *individual_adp \
              group_adp \
             *tls \
              individual_occupancies \
              group_occupancies \
              group_anomalous \
              none
  adp {
    tls = "chain A"
    tls = "chain B"
  }
}
refinement.target_weights {
  wxc_scale=3
   wxu_scale=5
}
refinement.output.prefix=my_best_model
refinement.simulated_annealing.start_temperature=5000
and the refinement run will be: % phenix.refine data.hkl model.pdb custom_par_2.params The easiest way to create a file like the custom_par_2.params file is to generate a template file containing all parameters by using the command phenix.refine --show-defaults=all and then take the parameters that you want to use (and remove the rest). Refinement scenariosThe refinement of atomic parameters is controlled by the strategy keyword. Those include: - individual_sites (refinement of individual atomic coordinates) - individual_adp (refinement of individual atomic B-factors) - group_adp (group B-factors refinement) - group_anomalous (refinement of f' and f" values) - tls (TLS refinement = refinement of ADP through TLS parameters) - rigid_body (rigid body refinement) - none (bulk solvent and anisotropic scaling only) Below are examples to illustrate the use of the strategy keyword as well as a few others. Refinement of coordinatesphenix.refine offers three ways of coordinate refinement: 
 All types of coordinate refinement listed above can be used separately or combined all together in any combination and can be applied to any selected part of a model. For example, if a model contains three chains A, B and C, than it would require only one single refinement run to perform SA refinement and minimization for atoms in chain A, rigid body refinement with two rigid groups A and B, and refine nothing for chain C. Below we will illustrate this with several examples. The default refinement includes a standard set of stereo-chemical restraints ( covalent bonds, angles, dihedrals, planarities, chiralities, non-bonded). The NCS restrains can be added as well. Completely unrestrained refinement is possible. The total refinement target is defined as: Etotal = wxc_scale * wxc * Exray + wc * Egeom where: Exray is crystallographic refinement target (least-squares, maximum-likelihood, or any other), Egeom is the sum of restraints (including NCS if requested), wc is 1.0 by default and used to turn the restraints off, wxc ~ ratio of gradient's norms for geometry and X-ray targets as defined in (Adams et al, 1997, PNAS, Vol. 94, p. 5018), wc_scale is an 'ad hoc' scale found empirically to be ok for most of the cases. 
 
 Refinement of atomic displacement parameters (commonly named as ADP or B-factors)An ADP in phenix.refine is defined as a sum of three contributions: Utotal = Ulocal + Utls + Ucryst where Utotal is the total ADP, Ulocal reflects the local atomic vibration (also named as residual B) and Ucryst reflects global lattice vibrations. Ucryst is determined and refined at anisotropic scaling stage. phenix.refine offers multiple choices for ADP refinement: 
 All types of ADP refinement listed above can be used separately or combined all together in any combination (except TLS+individual anisotropic) and can be applied to any selected part of a model. For example, if a model contains six chains A, B, C, D, E and F than it would require only one single refinement run to perform refinement of: - individual isotropic ADP for atoms in chain A, - individual anisotropic ADP for atoms in chain B, - grouped B with one B per residue for chain C, - TLS refinement for chain D, - TLS and individual isotropic refinement for chain E, - TLS and grouped B refinement for chain F. Below we will illustrate this with several examples. Restraints are used for default ADP refinement of isotropic and anisotropic atoms. Completely unrestrained refinement is possible. The total refinement target is defined as: Etotal = wxu_scale * wxu * Exray + wu * Eadp where: Exray is crystallographic refinement target (least-squares, maximum-likelihood, ...), Eadp is the ADP restraints term, wu is 1.0 by default and used to turn the restraints off, wxu and wc_scale are defined similarly to coordinates refinement (see Refinement of Coordinates paragraph). It is important to keep in mind: 
 
 Occupancy refinement
 f' and f'' refinementIf the structure contains anomalous scatterers (e.g. Se in a SAD or MAD experiment), and if anomalous data are available, it is possible to refine the dispersive (f') and anomalous (f") scattering contributions (see e.g. Ethan Merritt's tutorial for more information). In phenix.refine, each group of scatterers with common f' and f" values is defined via an anomalous_scatterers scope, e.g.: 
refinement.refine.anomalous_scatterers {
  group {
    selection = name BR
    f_prime = 0
    f_double_prime = 0
    refine = *f_prime *f_double_prime
  }
}
NOTE: The refinement of the f' and f" values is carried out only if group_anomalous is included under refine.strategy! Otherwise the values are simply used as specified but not refined. So the refinement run with the parameters above included into group_anomalous_1.params: % phenix.refine model.pdb data_anom.hkl group_anomalous_1.params \ strategy=individual_sites+individual_adp+group_anomalous If required, multiple scopes can be specified, one for each unique pair of f' and f" values. These values are assigned to all selected atoms (see below for atom selection details). Often it is possible to start the refinement from zero. If the refinement is not stable, it may be necessary to start from better estimates, or even to fix some values. For example (file group_anomalous_2.params): 
refinement.refine.anomalous_scatterers {
  group {
    selection = name BR
    f_prime = -5
    f_double_prime = 2
    refine = f_prime *f_double_prime
  }
}
% phenix.refine model.pdb data_anom.hkl group_anomalous_2.params \
  strategy=individual_sites+individual_adp+group_anomalous
Here f' is fixed at -5 (note the missing * in front of f_prime in the refine definition), and the refinement of f" is initialized at 2. The phenix.form_factor_query command is available for obtaining estimates of f' and f" given an element type and a wavelength, e.g.: % phenix.form_factor_query element=Br wavelength=0.8 Information from Sasaki table about Br (Z = 35) at 0.8 A fp: -1.0333 fdp: 2.9928 Run without arguments for usage information: % phenix.form_factor_query Using NCS restraints in refinementphenix.refine can find NCS automatically or use NCS selections defined by the user. Gaps in selected sequences are allowed - a sequence alignment is performed to detect insertions or deletions. We recommend to check the automatically detected or adjusted NCS groups. 
 Water pickingphenix.refine has very efficient and fully automated protocol for water picking and refinement. One run of phenix.refine is normally necessary to locate waters, refine them, select good ones, add new and refine again, repeating the whole process multiple times. Normally, the default parameter settings are good for most cases: % phenix.refine data.hkl model.pdb ordered_solvent=true This will perform new water picking, analysis of existing waters and refinement of individual coordinates and B-factors for both, macromolecule and waters. Several cycles will be performed allowing sorting out of spurious waters and refinement of well placed ones. Water picking can be combined with all others protocols, like simulated annealing, TLS refinement, etc. Some useful commands are: 
 Hydrogens in refinementphenix.refine offers two possibilities for handling of hydrogen atoms: 
 Although the contribution of hydrogen atoms to X-ray scattering is weak (at high resolution) or negligible (at lower resolutions), the H atoms still present in real structures irrespective the data quality. Including them as riding model makes other model atoms aware of their positions and hence preventing non-physical (bad) contacts at no cost in terms of refinable parameters (= no risk of overfitting). At subatomic resolution (approx. < 1.0 A) X-ray refinement or refinement using neutron data the parameters of H atoms may be refined as for other heavier atoms. Below are some useful commands: 
 Refinement using twinned dataphenix.refine can handle the refinement of hemihedrally twinned data (two twin domains). Least square twin refinement can be carried out using the following commands line instructions: % phenix.refine data.hkl model.pdb twin_law="-k,-h,-l" The twin law (in this case -k,-h,-l) can be obtained from phenix.xtriage. If more than a single twin law is possible for the given unit cell and space group, using phenix.twin_map_utils might give clues which twin law is the most likely candidate to be used in refinement. Correcting maps for anisotropy might be useful: % phenix.refine data.hkl model.pdb twin_law="-k,-h,-l" \ detwin.map_types.aniso_correct=true The detwinning mode is auto by default: it will perform algebraic detwinning for twin fraction below 40%, and detwinning using proportionality rules (SHELXL style) for fractions above 40%. An important point to stress is that phenix.refine will only deal properly with twinning that involves two twin domains. Neutron and joint X-ray and neutron refinementRefinement using neutron data requires having H or/and D atoms added to the model. Use Reduce program to add all potential H atoms: % phenix.reduce model.pdb > model_h.pdb Currently, adding D atoms will require editing of model_h.pdb file to replace H with D where necessary. 
 Examples of frequently used refinement protocols, common problems
 
 
 
 
 Useful optionsChanging the number of refinement cycles and minimizer iterations% phenix.refine data.hkl model.pdb main.number_of_macro_cycles=5 \ main.max_number_of_iterations=20 Creating R-free flags (if not present in the input reflection files)% phenix.refine data.hkl model.pdb main.generate_r_free_flags=True It is important to understand that reflections selected for test set must be never used in any refinement of any parameters. If the newly selected test reflections were used in refinement before then the corresponding R-free statistics will be wrong. In such case "refinement memory" removal procedure must be applied to recover proper statistics. To change the default maximal number of test flags to be generated and the fraction: % phenix.refine data.hkl model.pdb main.generate_r_free_flags=True \ r_free_flags.fraction=0.05 r_free_flags.max_free=500 Specify the name for output files% phenix.refine data.hkl model.pdb output.prefix=lysozyme Reflection outputAt the end of refinement a file with Fobs, Fmodel, Fcalc, Fmask, FOM, R-free_flags can be written out (in MTZ format): % phenix.refine data.hkl model.pdb export_final_f_model=mtz To output the reflections in CNS reflection file format: % phenix.refine data.hkl model.pdb export_final_f_model=cns Note: Fmodel is the total model structure factor including all scales: Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask) Setting the resolution range for the refinement% phenix.refine data.hkl model.pdb main.low_resolution=15.0 main.high_resolution=2.0 Bulk solvent correction and anisotropic scalingBy default phenix.refine always starts with bulk solvent modeling and anisotropic scaling. Here is the list of command that may be of use in some cases: 
 By default phenix.refine adds isotropic component of overall anisotropic scale matrix to atomic B-factors, leaving the trace of overall anisotropic scale matrix equals to zero. This is the reason why one can observe the ADP changed even though the only anisotropic scaling was done and no ADP refinement performed. Default refinement with user specified X-ray target function
 Modifying the initial model before refinement startsphenix.refine offers several options to modify input model before refinement starts: 
 By default, the specified manipulations will be applied to all atoms. However, it is possible to apply them to only selected atoms: % phenix.refine data.hkl model.pdb adp.set_b_iso=25 modify_start_model.selection="chain A" To write out the modified model (without any refinement), add: main.number_of_macro_cycles=0, e.g.: % phenix.refine data.hkl model.pdb adp.set_b_iso=25 \ main.number_of_macro_cycles=0 All the commands listed above plus some more are available from phenix.pdbtools utility which in fact is used internally in phenix.refine to perform these manipulations. For more information on phenix.pdbtools type: % phenix.pdbtools --help Documentation on phenix.pdbtools is also available. Refinement using FFT or direct structure factor calculation algorithm% phenix.refine data.hkl model.pdb \ structure_factors_and_gradients_accuracy.algorithm=fft % phenix.refine data.hkl model.pdb \ structure_factors_and_gradients_accuracy.algorithm=direct Ignoring test (free) flags in refinementSometimes one need to use all reflections ("work" and "test") in the refinement; for example, at very low resolution where each single reflection counts, or at subatomic resolution where the risk of overfitting is very low. In the example below all the reflections are used in the refinement: % phenix.refine data.hkl model.pdb ignore_r_free_flags=true Note: 1) the corresponding statistics (R-factors, ...) will be identical for "work" and "test" sets; 2) it is still necessary to have test flags presented in input reflection file (or automatically generated by phenix.refine). Using phenix.refine to calculate structure factorsThe total structure factor used in phenix.refine nearly in all calculations is defined as: Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask) 
 
 Scattering factorsThere are four choices for the scattering table to be used in phenix.refine: 
 The default is n_gaussian. To switch to different table: % phenix.refine data.hkl model.pdb scattering_table=neutron Suppressing the output of certain filesThe following command will tell phenix,refine to not write .eff, .geo, .def, maps and map coefficients files: % phenix.refine data.hkl model.pdb write_eff_file=false write_geo_file=false \ write_def_file=false write_maps=false write_map_coefficients=false The only output will be: .log and .pdb files. Random seed% phenix.refine data.hkl model.pdb random_seed=7112384 The results of certain refinement protocols, such as restrained refinement of coordinates (with SA or LBFGS minimization), are sensitive to the random seed. This is because: 1) for SA the refinement starts with random assignment of velocities to atoms; 2) the X-ray/geometry target weight calculation involves model shaking with some Cartesian dynamics. As result, running such refinement jobs with exactly the same parameters but different random seeds will produce different refinement statistics. The author's experience includes the case where the difference in R-factors was about 2.0% between two SA runs. Also, this opens a possibility to perform multi-start SA refinement to create an ensemble of slightly different models in average but sometimes containing significant variations in certain parts. Electron density mapsphenix.refine can compute and output three types of maps: k*Fobs-n*Fmodel, 2m*Fobs-D*Fmodel and m*Fobs-D*Fmodel, where k and n are scalar parameters. The result is output either as in ASCII X-PLOR format files. A reflection file with map coefficients is also generated for use in Coot or XtalView. The example below illustrates the main options: % phenix.refine data.hkl model.pdb map.params 
refinement {
  electron_density_map {
    map_types = *k*Fobs-n*Fmodel *2m*Fobs-D*Fmodel *m*Fobs-D*Fmodel
    k = 1
    n = 1
    grid_resolution_factor = 1/4.
    region = *selection cell
    atom_selection = name CA or name N or name C
    apply_sigma_scaling = False
    apply_volume_scaling = True
  }
}
This will output three map files containing Fobs-Fmodel, 2m*Fobs-D*Fmodel and m*Fobs-D*Fmodel maps (which is requested by putting * in front of corresponding map names). All maps will be in absolute scale (in e/A**3). The map finess will be (data resolution)*grid_resolution_factor and the map will be output around main chain atoms. If atom_selection is set to None or all then map will be computed for all atoms. 
 Refining with anomalous data (or what phenix.refine does with Fobs+ and Fobs-).The way phenix.refine uses Fobs+ and Fobs- is controlled by main.force_anomalous_flag_to_be_equal_to parameter. 
 Look this documentation to see how to use and refine f' and f''. Rejecting reflections by sigmaReflections can be rejected by sigma cutoff criterion applied to amplitudes Fobs <= sigma_fobs_rejection_criterion * sigma(Fobs): % phenix.refine model.pdb data_anom.hkl sigma_fobs_rejection_criterion=2 or/and intensities Iobs <= sigma_iobs_rejection_criterion * sigma(Iobs): % phenix.refine model.pdb data_anom.hkl sigma_iobs_rejection_criterion=2 Internally, phenix.refine uses amplitudes. If both sigma_fobs_rejection_criterion and sigma_iobs_rejection_criterion are given as non-zero values, then both criteria will be applied: first to Iobs, then to Fobs (after cutted Iobs got converted to Fobs): % phenix.refine model.pdb data_anom.hkl sigma_fobs_rejection_criterion=2 \ sigma_iobs_rejection_criterion=2 By default, both sigma_fobs_rejection_criterion and sigma_iobs_rejection_criterion are set to zero (no reflections rejected) and, unless strongly motivated, we encourage to not change these values. If amplitudes provided at input then sigma_fobs_rejection_criterion is ignored. Developer's toolsphenix.refine offers a broad functionality for experimenting that may not be useful in everyday practice but handy for testing ideas. Substitute input Fobs with calculated Fcalc, shake model and refine it 
 CIF modifications and linksphenix.refine uses the CCP4 monomer library to build geometry restraints (bond, angle, dihedral, chirality and planarity restraints). The CCP4 monomer library comes with a set of "modifications" and "links" which are defined in the file mon_lib_list.cif. Some of these are used automatically when phenix.refine builds the geometry restraints (e.g. the peptide and RNA/DNA chain links). Other links and modifications have to be applied manually, e.g. (cif_modification.params file): 
refinement.pdb_interpretation.apply_cif_modification {
  data_mod = 5pho
  residue_selection = resname GUA and name O5T
}
Here a custom 5pho modification is applied to all GUA residues with an O5T atom. I.e. the modification can be applied to multiple residues with a single apply_cif_modification block. The CIF modification is supplied as a separate file on the phenix.refine command line, e.g. (data_mod_5pho.cif file): data_mod_5pho # loop_ _chem_mod_atom.mod_id _chem_mod_atom.function _chem_mod_atom.atom_id _chem_mod_atom.new_atom_id _chem_mod_atom.new_type_symbol _chem_mod_atom.new_type_energy _chem_mod_atom.new_partial_charge 5pho add . O5T O OH . loop_ _chem_mod_bond.mod_id _chem_mod_bond.function _chem_mod_bond.atom_id_1 _chem_mod_bond.atom_id_2 _chem_mod_bond.new_type _chem_mod_bond.new_value_dist _chem_mod_bond.new_value_dist_esd 5pho add O5T P coval 1.520 0.020 % phenix.refine model_o5t.pdb data.hkl data_mod_5pho.cif cif_modification.params Similarly, a link can be applied like this (cif_link.params file): 
refinement.pdb_interpretation.apply_cif_link {
  data_link = MAN-THR
  residue_selection_1 = chain X and resname MAN and resid 900
  residue_selection_2 = chain X and resname THR and resid 42
}
% phenix.refine model.pdb data.hkl cif_link.params
The residue selections for links must select exactly one residue each. The MAN-THR link is pre-defined in mon_lib_list.cif. Custom links can be supplied as additional files on the phenix.refine command line. See mon_lib_list.cif for examples. The full path to this file can be obtained with the command: % phenix.where_mon_lib_list_cif All apply_cif_modification and apply_cif_link definitions will be included into the .def files. I.e. it is not necessary to specify the definitions again if further refinement runs are started with .def files. Note that all LINK, SSBOND, HYDBND, SLTBRG and CISPEP records in the input PDB files are ignored. Definition of custom bonds and anglesMost geometry restraints (bonds, angles, etc.) are generated automatically based on the CCP4 monomer library. Additional custom bond and angle restraints, e.g. between protein and a ligand or ion, can be specified in this way: 
refinement.geometry_restraints.edits {
  zn_selection = chain X and resname ZN and resid 200 and name ZN
  his117_selection = chain X and resname HIS and resid 117 and name NE2
  asp130_selection = chain X and resname ASP and resid 130 and name OD1
  bond {
    action = *add
    atom_selection_1 = $zn_selection
    atom_selection_2 = $his117_selection
    distance_ideal = 2.1
    sigma = 0.02
  }
  bond {
    action = *add
    atom_selection_1 = $zn_selection
    atom_selection_2 = $asp130_selection
    distance_ideal = 2.1
    sigma = 0.02
  }
  angle {
    action = *add
    atom_selection_1 = $his117_selection
    atom_selection_2 = $zn_selection
    atom_selection_3 = $asp130_selection
    angle_ideal = 109.47
    sigma = 5
  }
}
Placing the above parameters into file restraints_edits.params, one can run: % phenix.refine model.pdb data.hkl restraints_edits.params The atom selections must uniquely select a single atom. Save the geometry_restraints.edits to a file and specify the file name as an additional argument when running phenix.refine for the first time. The edits will be included into the .def files. I.e. it is not necessary to manually specify them again if further refinement runs are started with .def files. Atom selection examplesall All C-alpha atoms (not case sensitive): name ca All atoms with ``H`` in the name (``*`` is a wildcard character): name *H* Atoms names with ``*`` (backslash disables wildcard function): name o2\* name 'O 1' Atom names with primes don't necessarily have to be quoted: name o2' Boolean ``and``, ``or`` and ``not``: resname ALA and (name ca or name c or name n or name o) chain a and not altid b resid 120 and icode c and model 2 segid a and element c and charge 2+ and anisou resseq 188 resid is a synonym for resseq: resid 188 Note that if there are several chains containing residue number 188, all of them will be selected. To be more specific and select residue 188 in particular chain: chain A and resid 188 this will select residue 188 only in chain A. All residues from 188 to the end (including 188): resseq 188: resseq 188- All residues from the beginning to 188 (including 188): resseq :188 resseq -188 Residues 2 through 10 (including 2 and 10): resseq 2:10 resseq 2-10 resname ALA and backbone resname ALA and sidechain peptide backbone rna backbone or dna backbone water or nucleotide dna and not (phosphate or ribose) within(5, (nucleotide or peptide) backbone) Referencing phenix.refineAfonine, P.V., Grosse-Kunstleve, R.W. & Adams, P.D. (2005). CCP4 Newsl. 42, contribution 8. Relevant readingBelow is the list of papers either published in connection with phenix.refine or used to implement specific features in phenix.refine: 
 Questions, problems, bugs, more information
 List of all refinement keywords
------------------------------------------------------------------------------- 
Legend: black bold - scope names
        black - parameter names
        red - parameter values
        blue - parameter help
        blue bold - scope help
        Parameter values:
          * means selected parameter (where multiple choices are available)
          False is No
          True is Yes
          None means not provided, not predefined, or left up to the program
          "%3d" is a Python style formatting descriptor
------------------------------------------------------------------------------- 
refinement Scope of parameters for structure refinement with phenix.refine
   crystal_symmetry Scope of space group and unit cell parameters
      unit_cell= None
      space_group= None
   input Scope of input file names, labels, processing directions
      symmetry_safety_check= *error warning Check for consistency of crystall
                             symmetry from model and data files
      pdb
         file_name= None Model file(s) name (PDB)
      neutron_data Scope of neutron data
         file_name= None
         labels= None
      neutron_r_free_flags Scope of r-free flags for neutron data
         file_name= None Name of file containing free-R flags
         label= None
         test_flag_value= None
         disable_suitability_test= False XXX
         ignore_pdb_hexdigest= False If True, disables safety check based on
                               MD5 hexdigests stored in PDB files produced by
                               previous runs.
      xray_data Scope of X-ray data
         file_name= None
         labels= None
      r_free_flags Scope of r-free flags for X-ray data
         file_name= None Name of file containing free-R flags
         label= None
         test_flag_value= None
         disable_suitability_test= False XXX
         ignore_pdb_hexdigest= False If True, disables safety check based on
                               MD5 hexdigests stored in PDB files produced by
                               previous runs.
      experimental_phases Scope of experimental phase information (HL
                          coeeficients)
         file_name= None
         labels= None
      monomers Scope of monomers information (CIF files)
         file_name= None Monomer file(s) name (CIF)
   output Scope for output files
      prefix= None Prefix for all output files
      serial= None Serial number for consequtive refinement runs
      serial_format= "%03d" Format serial number in output file name
      write_eff_file= True
      write_geo_file= True
      write_def_file= True
      export_final_f_model= mtz cns Write Fobs, Fmodel, various scales and
                            more to MTZ or CNS file
      write_maps= True
      write_map_coefficients= True
   electron_density_map Electron density maps calculation parameters
      map_types= k*Fobs-n*Fmodel *2m*Fobs-D*Fmodel *m*Fobs-D*Fmodel
      k= 2.0
      n= 1.0
      map_format= *xplor
      map_coefficients_format= *mtz phs
      grid_resolution_factor= 1/3
      region= *selection cell
      atom_selection= None
      atom_selection_buffer= 3
      apply_sigma_scaling= True
      apply_volume_scaling= False
      mtz_labels
         map_type= 2m*Fobs-D*Fmodel
         amplitudes= 2FOFCWT
         phases= PH2FOFCWT
      mtz_labels
         map_type= m*Fobs-D*Fmodel
         amplitudes= FOFCWT
         phases= PHFOFCWT
      mtz_labels
         map_type= k*Fobs-n*Fmodel
         amplitudes= oFOoFCWT
         phases= oPHFOoFCWT
   refine Scope of refinement flags (=flags defining what to refine) and atom
          selections (=atoms to be refined)
      strategy= *individual_sites rigid_body *individual_adp group_adp tls
                individual_occupancies group_occupancies group_anomalous none
               Atomic parameters to be refined
      sites Scope of atom selections for coordinates refinement
         individual= None Selections for individual atoms
         rigid_body= None Selections for rigid groups
      adp Scope of atom selections for ADP (Atomic Displacement Parameters)
          refinement
         group= None One isotropic ADP for group of selected here atoms will
                be refined
         one_adp_group_per_residue= True Refine one isotropic ADP per residue
         tls= None Selection(s) for TLS group(s)
         individual Scope of atom selections for refinement of individual ADP
            isotropic= None Selections for atoms to be refinement with
                       isotropic ADP
            anisotropic= None Selections for atoms to be refinement with
                         anisotropic ADP
      occupancies Scope of atom selections for occupancy refinement
         individual= None Selection(s) for indivudual atoms
         group= None One occupancy per group of selected atoms will be refined
         one_occupancy_group_per_residue= False Refine one occupancy per
                                          residue
      anomalous_scatterers
         group
            selection= None
            f_prime= 0
            f_double_prime= 0
            refine= *f_prime *f_double_prime
   main Scope for most common and frequently used parameters
      high_resolution= None High resolution cutoff for the data to be used in
                       refinement
      low_resolution= None Low resolution cutoff for the data to be used in
                      refinement
      bulk_solvent_and_scale= True Do bulk solvent correction and anisotropic
                              scaling
      simulated_annealing= False Do simulated annealing
      ordered_solvent= False Add (or/and remove) and refine ordered solvent
                       molecules (water)
      ncs= False Use restraints NCS in refinement (can be determined
           automatically)
      dbe= False Build and use IAS (interatomic scatterers) model (at
           resolutions higher than approx. 0.9 A)
      number_of_macro_cycles= 3 Number of macro-cycles to be performed
      max_number_of_iterations= 25
      generate_neutron_r_free_flags= False Generate R-free flags for neutron
                                     dataset (if not available in input files)
      generate_r_free_flags= False Generate R-free flags (if not available in
                             input files)
      use_form_factor_weights= False
      tan_u_iso= False Use tan() reparameterization in ADP refinement
                 (currently disabeled)
      use_convergence_test= False Determine if refinement converged and stop
                            then
      target= *ml mlhl ml_sad ls Choices for refinement target
      min_number_of_test_set_reflections_for_max_likelihood_target= 50 minimum
                                                                    number of
                                                                    test
                                                                    reflections
                                                                    required
                                                                    for use of
                                                                    ML target
      max_number_of_resolution_bins= 30
      sigma_fobs_rejection_criterion= 0.0 Value for sigma cutoff for Fobs
      sigma_iobs_rejection_criterion= 0.0 Value for sigma cutoff for Iobs
      reference_xray_structure= None
      use_experimental_phases= None Use experimental phases if available
      force_anomalous_flag_to_be_equal_to= None
      compute_optimal_errors= False
      random_seed= 2679941 Ransom seed
      scattering_table= wk1995 it1992 *n_gaussian neutron Choices of
                        scattering table for structure factors calculations
      use_normalized_geometry_target= True
      target_weights_only= False Calculate target weights only and exit
                           refinement
      use_f_model_scaled= False Use Fmodel structure factors multiplied by
                          overall scale factor scale_k1
      max_d_min= 0.25 Highest allowable resolution limit for refinement
      fake_f_obs= False Substitute real experimental Fobs with those
                  calculated from input model (scales and solvent can be
                  added)
      optimize_mask= False Refine mask parameters (solvent_radius and
                     shrink_truncation_radius)
      occupancy_max= 1.0 Maximum allowable occupancy of an atom
      occupancy_min= 0.0 Minimum allowable occupancy of an atom
      stir= None Stepwise increase of resolution: start refinement at lower
            resolution and gradually proceed with higher resolution
      fft_vs_direct= False Check accuracy of approximations used in Fcalc
                     calculations
      ignore_r_free_flags= False Use all reflections in refinement (work and
                           test)
      rigid_bond_test= False Compute Hirshfeld's rigid bond test value (RBT)
      use_xn_grads_filtering= False
   modify_start_model Scope of parameters to modify initial model before
                      refinement
      selection= None Selection for atoms to be modified
      adp Scope of options to modify ADP of selected atoms
         randomize= None Randomize ADP within a certain range
         set_b_iso= None Set ADP of atoms to set_b_iso
         convert_to_isotropic= None Convert atoms to isotropic
         convert_to_anisotropic= None Convert atoms to anisotropic
         shift_b_iso= None Add shift_b_iso value to ADP
         scale_adp= None Multiply ADP by scale_adp
      sites Scope of options to modify coordinates of selected atoms
         shake= None Randomize coordinates with mean error value equal to shake
         translate= 0 0 0 Translational shift
         rotate= 0 0 0 Rotational shift
         euler_angle_convention= *xyz zyz Euler angles convention to be used
                                 for rotation
      occupancies Scope of options to modify occupancies of selected atoms
         randomize= None Randomize occupancies within a certain range
      output Write out PDB file with modified model (file name is defined in
             write_modified)
         pdb
            file_name= None
   fake_f_obs Scope of parameters to simulate Fobs
      k_sol= 0.0 Bulk solvent k_sol values
      b_sol= 0.0 Bulk solvent b_sol values
      b_cart= 0 0 0 0 0 0 Anisotropic scale matrix
      scale= 1.0 Overall scale factor
   hydrogens Scope of parameters for H atoms refinement
      mode= full *riding Choice for refinement: riding model or full (H is
            refined as other atoms; useful at very high resolutions only)
      refine= one_b_per_residue *one_b_per_molecule Startegy for ADP
              refinement of H atoms (used only if mode=riding)
      fix_xh_distances= False Keep X-H distances unchanges during refinement
                        (H is hydrogen atom X is any atom bonded with H)
   group_b_iso
      number_of_macro_cycles= 3
      max_number_of_iterations= 25
      convergence_test= False
      run_finite_differences_test= False
   adp
      iso
         max_number_of_iterations= 25
         automatic_randomization_if_all_equal= True
         scaling
            scale_max= 3.0
            scale_min= 10.0
   tls
      one_residue_one_group= None
      refine_T= True
      refine_L= True
      refine_S= True
      number_of_macro_cycles= 2
      max_number_of_iterations= 25
      start_tls_value= None
      run_finite_differences_test= False
      eps= 1.e-6
   adp_restraints
      iso
         use_u_local_only= False
         sphere_radius= 5.0
         distance_power= 1.69
         average_power= 1.03
         wilson_b_weight_auto= False
         wilson_b_weight= None
         plain_pairs_radius= 5.0
         refine_ap_and_dp= False
         b_iso_max= None
   group_occupancy
      number_of_macro_cycles= 3
      max_number_of_iterations= 25
      convergence_test= False
      run_finite_differences_test= False
   group_anomalous
      number_of_minimizer_cycles= 3
      lbfgs_max_iterations= 20
      number_of_finite_difference_tests= 0
   rigid_body Scope of parameters for rigid body refinement
      protocol= one_zone *multiple_zones Choices for rigid body refinement
                protocol
      mode= *first_macro_cycle_only every_macro_cycle Defines how many times
            perform rigid body refinement during refinement run:
            first_macro_cycle_only - run only once at the first macrocycle;
            every_macro_cycle - rigid body refinement is performed
            main.number_of_macro_cycles times
      target= ls_wunit_k1 *ml Rigid body refinement target function:
              least-squares or maximum-likelihood
      refine_rotation= True
      refine_translation= True
      min_number_of_reflections= 250 Number of reflections that defines the
                                 first lowest resolution zone for
                                 multiple_zones protocol
      max_iterations= 25 Number of minimization iterations
      bulk_solvent_and_scale= True Do bulk-solvent and scaling within rigid
                              body refinement
      euler_angle_convention= *xyz zyz
      high_resolution= 2.0 High resolution cutoff (used for rigid body
                       refinement only)
      max_low_high_res_limit= 8.0 Maxumum value for high resolution cutoff for
                              the first lowest resolution zone
      number_of_zones= 5 Number of resolution zones for MZ protocol
      lbfgs_line_search_max_function_evaluations= 10
   ncs
      find_automatically= True
      coordinate_sigma= None
      b_factor_weight= None
      excessive_distance_limit= 1.5
      find_ncs
         temp_dir= "" temporary directory (it must exist if you define it)
         min_length= 10 minimum number of matching residues in a segment
         njump= 1 Take every njumpth residue instead of each 1
         njump_recursion= 10 Take every njump_recursion residue instead of
                          each 1 on recursive call
         min_length_recursion= 50 minimum number of matching residues in a
                               segment for recursive call
         min_percent= 95. min percent identity of matching residues
         max_rmsd= 2. max rmsd of 2 chains. If 0, then only search for domains
         quick= True If quick is set and all chains match, just look for 1 NCS
                group
         max_rmsd_user= 3. max rmsd of chains suggested by user (i.e., if
                        called from phenix.refine with suggested ncs groups)
         verbose= False Verbose output
         domain_finding_parameters
            find_invariant_domains= True Find the parts of a set of chains
                                    that follow NCS
            initial_rms= 0.5 Guess of RMS among chains
            match_radius= 2.0 Keep atoms that are within match_radius of
                          NCS-related atoms
            similarity_threshold= 0.75 Threshold for similarity between
                                  segments
            smooth_length= 0 two segments separated by smooth_length or less
                           get connected
            min_contig_length= 3 segments < min_contig_length rejected
            min_fraction_domain= 0.2 domain must be this fraction of a chain
            max_rmsd_domain= 2. max rmsd of domains
      restraint_group
         reference= None
         selection= None
         coordinate_sigma= 0.05
         b_factor_weight= 10
   pdb_interpretation
      link_distance_cutoff= 3
      disulfide_distance_cutoff= 3
      chir_volume_esd= 0.2
      nonbonded_distance_cutoff= None
      default_vdw_distance= 1
      min_vdw_distance= 1
      nonbonded_buffer= 1
      vdw_1_4_factor= 0.8
      translate_cns_dna_rna_residue_names= None
      apply_cif_modification
         data_mod= None
         residue_selection= None
      apply_cif_link
         data_link= None
         residue_selection_1= None
         residue_selection_2= None
      peptide_link
         cis_threshold= 45
         discard_psi_phi= True
         omega_esd_override_value= None
      clash_guard
         nonbonded_distance_threshold= 0.5
         max_number_of_distances_below_threshold= 100
         max_fraction_of_distances_below_threshold= 0.1
   geometry_restraints
      edits
         bond
            action= *add delete change
            atom_selection_1= None
            atom_selection_2= None
            symmetry_operation= None The bond is between atom_1 and
                                symmetry_operation * atom_2, with atom_1 and
                                atom_2 given in fractional coordinates.
            distance_ideal= None
            sigma= None
         angle
            action= *add delete change
            atom_selection_1= None
            atom_selection_2= None
            atom_selection_3= None
            angle_ideal= None
            sigma= None
   geometry_restraints
      remove
         angles= None
         dihedrals= None
         chiralities= None
         planarities= None
   ordered_solvent
      low_resolution= 2.8 Low resolution limit for water picking (at lower
                      resolution water will not be picked even if requessted)
      mode= *auto filter_only every_macro_cycle Choices for water picking
            strategy: auto - start water picking after ferst few macro-cycles,
            filter_only - remove water only, every_macro_cycle - do water
            update every macro-cycle
      output_residue_name= HOH
      output_chain_id= S
      output_atom_name= O
      b_iso_min= 1.0 Minimum B-factor value, waters with smaller value will be
                 rejected
      b_iso_max= 50.0 Maximum B-factor value, waters with bigger value will be
                 rejected
      b_iso= None Initial B-factor value for newly added water
      scattering_type= O Defines scattering factors for newly added waters
      occupancy_min= 0.1 Minimum occupancy value, waters with smaller value
                     will be rejected
      occupancy_max= 1.2 Maximum occupancy value, waters with bigger value
                     will be rejected
      occupancy= 1.0 Initial occupancy value for newly added water
      bulk_solvent_mask_exclusions= True Do water selection based on
                                    bulk-solvent mask
      use_sigma_scaled_maps= True Use sigma scales maps for water pick picking
      primary_map_type= m*Fobs-D*Fmodel
      primary_map_k= None
      primary_map_n= None
      primary_map_cutoff= 3.0
      secondary_map_type= 2m*Fobs-D*Fmodel
      secondary_map_k= None
      secondary_map_n= None
      secondary_map_cutoff= 1.0
      peak_map_matching_tolerance= 2.0
      resolution_factor= 1./4.
      min_solv_macromol_dist= 1.8
      max_solv_macromol_dist= 6.0
      min_solv_solv_dist= 1.8
      max_number_of_peaks= None
      verbose= 1
      peak_search
         peak_search_level= 1
         max_peaks= 0
         interpolate= True
         min_distance_sym_equiv= 1.e-6
         general_positions_only= False
         min_cross_distance= 2.0
   bulk_solvent_and_scale
      bulk_solvent= True
      anisotropic_scaling= True
      statistical_solvent= False
      k_sol_b_sol_grid_search= True
      minimization_k_sol_b_sol= True
      minimization_b_cart= True
      target= ls_wunit_k1 *ml
      symmetry_constraints_on_b_cart= True
      k_sol_max= 0.6
      k_sol_min= 0.0
      b_sol_max= 150.0
      b_sol_min= 10.0
      k_sol_grid_search_max= 0.6
      k_sol_grid_search_min= 0.0
      b_sol_grid_search_max= 100.0
      b_sol_grid_search_min= 10.0
      k_sol_step= 0.05
      b_sol_step= 5.0
      number_of_macro_cycles= 3
      number_of_minimization_macro_cycles= 3
      number_of_cycles_for_anisotropic_scaling= 3
      fix_k_sol= None
      fix_b_sol= None
      apply_back_trace_of_b_cart= False
      start_minimization_from_k_sol= 0.35
      start_minimization_from_b_sol= 46.0
      nu_fix_n_atoms= None
      nu_fix_b_atoms= None
      verbose= -1
      fix_b_cart
         u11= None
         u22= None
         u33= None
         u12= None
         u13= None
         u23= None
      start_minimization_from_b_cart
         u11= 0.0
         u22= 0.0
         u33= 0.0
         u12= 0.0
         u13= 0.0
         u23= 0.0
   alpha_beta
      free_reflections_per_bin= 140
      number_of_macromolecule_atoms_absent= 225
      n_atoms_included= 0
      bf_atoms_absent= 15.0
      final_error= 0.0
      absent_atom_type= "O"
      method= *est calc
      estimation_algorithm= *analytical iterative
      verbose= -1
      interpolation= True
      fix_scale_for_calc_option= None
      number_of_waters_absent= 613
      sigmaa_estimator
         kernel_width_free_reflections= 100
         kernel_on_chebyshev_nodes= True
         number_of_sampling_points= 20
         number_of_chebyshev_terms= 10
         use_sampling_sum_weights= True
   mask
      solvent_radius= 1.11
      shrink_truncation_radius= 0.9
      grid_step_factor= 4.0 The grid step for the mask calculation is
                        determined as highest_resolution devided by
                        grid_step_factor
      verbose= 1
      mean_shift_for_mask_update= 0.1 Values of model shift in refinement to
                                  updates the mask
   cartesian_dynamics
      temperature= 300
      number_of_steps= 200
      time_step= 0.0005
      n_print= 100
      verbose= -1
   simulated_annealing
      start_temperature= 5000
      final_temperature= 300
      cool_rate= 100
      number_of_steps= 25
      time_step= 0.0005
      n_print= 100
      update_grads_shift= 0.3
      refine_sites= True
      refine_adp= False
      max_number_of_iterations= 25
      mode= every_macro_cycle *second_and_before_last once first
      verbose= -1
   target_weights
      wxc_scale= 0.5
      wxu_scale= 1.0
      wc= 1.0
      wu= 1.0
      fix_wxc= None
      fix_wxu= None
      allow_automatic_adjustment= False
      delta_r_free_r_work= 6.0
      wxc_scale_drop= 3.0
      wxu_scale_drop= 3.0
      max_number_of_macro_cycles= 12
      optimize_wxc= False
      optimization_criterion= *r_free gradient_angle
      optimize_wxu= False
      shake_sites= True
      shake_adp= 10.0
      regularize_ncycles= 50
      gradient_filtering= True
      gradient_filtering_method= *cns new
      rmsd_cutoff_for_gradient_filtering= 3.0
      verbose= 1
      neutrons
         wxnc_scale= 1.0
         wxnu_scale= 1.0
   dbe
      b_iso_max= 100.0
      occupancy_min= -1.0
      occupancy_max= 1.5
      ias_b_iso_max= 100.0
      ias_b_iso_min= 0.0
      ias_occupancy_min= 0.01
      ias_occupancy_max= 3.0
      initial_dbe_occupancy= 1.0
      build_dbe_types= L R B BH
      use_map= True
      build_only= False
      file_prefix= None
      peak_search_map
         map_type= *k*Fobs-n*Fmodel m*Fobs-D*Fmodel
         grid_step= 0.1
         scaling= *volume sigma
   ls_target_names
      target_name= *ls_wunit_k1 ls_wunit_k2 ls_wunit_kunit ls_wunit_k1_fixed
                   ls_wunit_k1ask3_fixed ls_wexp_k1 ls_wexp_k2 ls_wexp_kunit
                   ls_wff_k1 ls_wff_k2 ls_wff_kunit ls_wff_k1_fixed
                   ls_wff_k1ask3_fixed lsm_kunit lsm_k1 lsm_k2 lsm_k1_fixed
                   lsm_k1ask3_fixed
   neutron
      low_resolution= None
      high_resolution= None
   twinning
      twin_law= None
      detwin
         mode= algebraic proportional *auto
         map_types
            twofofc= *two_m_dtfo_d_fc two_dtfo_fc
            fofc= *m_dtfo_d_fc gradient m_gradient
            aniso_correct= False
   structure_factors_and_gradients_accuracy
      algorithm= *fft direct
      cos_sin_table= False
      grid_resolution_factor= 1/3.
      quality_factor= None
      u_base= None
      b_base= None
      wing_cutoff= None
      exp_table_one_over_step_size= None
   r_free_flags
      fraction= 0.1
      max_free= 2000
      lattice_symmetry_max_delta= 5.0 Tolerance used in the determination of
                                  the highest lattice symmetry. Can be thought
                                  of as angle between lattice vectors that
                                  should line up perfectly if the symmetry is
                                  ideal. A typical value is 3 degrees.
      use_lattice_symmetry= True When generating Rfree flags, do so in the
                            asymmetric unit of the highest lattice symmetry.
                            The result is an Rfree set suitable for twin
                            refinement.
 | |