| Python-based Hierarchical ENvironment for Integrated Xtallography |
| Documentation Home |
Structure refinement in PHENIX
phenix.refine is the general purpose crystallographic structure refinement program Available features
Current limitations
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: ![]() ![]() 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 --helpTo 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 xray_data.low_resolution=8.0 \ simulated_annealing.start_temperature=5000Note 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.defThe --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 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=trueHowever, 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 \ xray_data.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=5000The same result can be achieved by using: % phenix.refine data.hkl model.pdb custom_par_1.paramswhere 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.input.xray_data.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=5000which can also be formatted by grouping the parameters under the relevant scopes (custom_par_2.params):
refinement.main {
number_of_macro_cycles=4
}
refinement.input.xray_data.high_resolution=2.5
refinement.refine {
strategy = *individual_sites \
rigid_body \
*individual_adp \
group_adp \
*tls \
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.paramsThe 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). Comments in parameter files Use # for comments: % phenix.refine data.hkl model.pdb comments_in_params_file.paramswhere comments_in_params_file.params file contains the lines:
refinement {
refine {
#strategy = individual_sites rigid_body individual_adp group_adp tls \
# occupancies group_anomalous *none
}
#main {
# number_of_macro_cycles = 1
#}
}
refinement.target_weights.wxc_scale = 1.5
#refinement.input.xray_data.low_resolution=5.0
In this example the only parameter that is used to overwrite the defaults is
target_weights.wxc_scale and the rest is commented.
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) - occupancies (occupancy refinement: individual, group, group constrained) - 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 with all default parameters% phenix.refine data.hkl model.pdbThis 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. 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 * Egeomwhere: 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. Important to note: When a refinement of coordinates (individual or rigid body) is run without using selections, then the coordinates of all atoms will be refined. Otherwise, if selections are used, the only coordinates of selected atoms will be refined and the rest will be fixed. Using strategy=rigid_body or strategy=individual_sites will ask phenix.refine to refine only coordinates while other parameters (ADP, occupancies) will be fixed. phenix.refine will stop if an atom at special position is included in rigid body group. The solution is to make a new rigid body group selection containing no atoms at special positions.
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 + Ucrystwhere 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:
- individual isotropic ADP for atoms in chain A, - individual anisotropic ADP for atoms in chain B, - grouped B with one B per all atoms in 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 * Eadpwhere: 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: If a model was previously refined using TLS that means all atoms participating in TLS groups are reported in output PDB file as anisotropic (have ANISOU records). Now if a PDB file like this is submitted for default refinement then all atoms with ANISOU records will be refined as individual anisotropic which is most likely not desired. When performing TLS refinement along with individual isotropic refinement of Ulocal, the restraints are applied to Ulocal and not to the total ADP (Ulocal+Utls). When performing group B or TLS refinement only, no ADP restrains is used. When ADP refinement is run without using selections then ADP for all atoms will be refined. Otherwise, if selections are used, the only ADP of selected atoms will be refined and the ADP of the rest will be unchanged. If a TLS parametrization is used for a model previously refined with individual anisotropic ADP then normally an increase of R-factors is expected. phenix.refine will stop if an atom at special position is included in TLS group. The solution is to make a new TLS group selection containing no atoms at special positions. When refining TLS, the output PDB file always has the ANISOU records for the atoms involved in TLS groups. The anisotropic B-factor in ANISOU records is the total B-factor (B_tls + B_individual). The isotropic equivalent B-factor in ATOM records is the mean of the trace of the ANISOU matrix divided by 10000 and multiplied by 8*pi^2 and represents the isotropic equivalent of the total B-factor (B_tls + B_individual). To obtain the individual B-factors, one needs to compute the TLS component (B_tls) using the TLS records in the PDB file header and then subtract it from the total B-factors (on the ANISOU records).
Occupancy refinementHere is the list of facts that are important to know about occupancy refinement in phenix.refine:
% phenix.refine data.hkl model.pdb strategy=occupancies occ.paramsThe amount of atom selections makes it inconvenient to type them all from the command line. This is why the parameter file occ.params is used and it contains following lines:
refinement {
refine {
occupancies {
individual = element BR or water
individual = element Zn
constrained_group {
selection = chain A and resseq 1
}
constrained_group {
selection = chain A and resseq 2
selection = chain A and resseq 3
}
constrained_group {
selection = chain X and resname MAN
selection = chain X and resseq 42
selection = chain X and resseq 121
}
remove_selection = chain B and resseq 1 and name O
remove_selection = chain B and resseq 3 and name O
}
}
}
which defines:
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_anomalousIf 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.9928Run 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=trueThis 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 refinementDepending on data type (X-ray or neutron), data quality (resolution, completeness) phenix.refine offers different options for parametrization of hydrogen atoms:
% phenix.refine model.pdb data.hkl hydrogens.contribute_to_f_calc=falseIf neutron data is used then the parameters of H atoms should always be refined individually, except the cases where data resolution and/or completeness are poor. In that case riding model can be used. If partially deuterated structure is used in refinement then the constrained occupancies of exchangeable H/D sites are refined so they add up to 1. Currently, phenix.refine does not add the H atoms (except a few cases mentioned below), so it is necessary to use a different program from PHENIX suite (ReadySet!) to add H, D or H/D atoms to your structure. Internally ReadySet! uses Reduce program to add hydrogens to macromolecule (protein, DNA/RNA) and it uses its own resources to add hydrogens to ligands or water. Hydrogens are added to their ideal geometrical positions. If a structure contains a ligand unknown to phenix.refine, ReadySet! will create a library CIF file which will include the definitions for all newly added hydrogens. phenix.refine can build H or D atoms for water molecules only. To do so it uses residual density map, mFo-DFc. This option is normally used at relatively high resolution neutron data (~2.0...2.5A and higher) or at subatomic X-ray resolution: % phenix.refine model.pdb data.hkl main.find_and_add_hydrogens=trueAlthough this is not thoroughly studied yet, it seems that hydrogens should not be included into NCS or TLS groups. This is why they are automatically excluded from them. However, if NCS selections are created manually and the structure contains H atoms, it might be a good idea to add and not (element H or element D) to all selection strings. 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=trueThe 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 ReadySet! program to add all H, D or H/D atoms. See "Hydrogens in refinement" section for details.
Optimizing target weightsphenix.refine uses automatic procedure to determine the weights between X-ray target and stereochemistry or ADP restraints. To optimize these weights (that is to find those resulting in lowest Rfree factors): % phenix.refine data.hkl model.pdb optimize_wxc=true optimize_wxu=truewhere optimize_wxc will turn on the optimization of X-ray/stereochemistry weight and optimize_wxu will turn on the optimization of X-ray/ADP weight. Note that this could be very slow since the procedure involves a grid search over an array of weights-candidates. It could be a good idea to run this overnight for a final model tune up. Refinement at high resolution (higher than approx. 1.0 Angstrom)Guidelines for structure refinement at high resolution: This example illustrates most of the above points: % phenix.refine model_h.pdb data.hkl high_res.paramswhere the file high_res.params contains following lines (for more parameters under each scope look at complete list of parameters):
refinement.main {
number_of_macro_cycles = 5
ordered_solvent=true
}
refinement.refine {
adp {
individual {
isotropic = element H
anisotropic = not element H
}
}
}
refinement.target_weights {
wxc_scale = 0.25
wxu_scale = 0.3
}
refinement {
ordered_solvent {
mode = auto filter_only *every_macro_cycle
new_solvent = isotropic *anisotropic
refine_occupancies = True
}
}
In the example above phenix.refine will perform 5 macro-cycles with ordered
solvent update (add/remove) every macro-cycles, all atoms including newly added
water will be refined with anisotropic B-factors (except hydrogens), riding
model will be used for positional refinement of H atoms, one occupancy and
isotropic B-factor will be refined per all hydrogens within a residue,
occupancies of waters will be refined as well, the default stereochemistry and
ADP restraints weights are scaled down by the factors of 0.25 and 0.3
respectively. If starting model is far enough from the "final" one, more
macro-cycles may be required (than 5 used in this example).
Examples of frequently used refinement protocols, common problems
Depending on data resolution, refinement of individual ADP may be replaced with grouped B refinement:% phenix.refine data.hkl model.pdb ordered_solvent=true simulated_annealing=true \ strategy=rigid_body+individual_sites+group_adp main.number_of_macro_cycles=10Adding TLS refinement may be a good idea. Note, unlike other programs, phenix.refine does not require "good model" for doing TLS refinement; TLS refinement is always stable in phenix.refine (please report if noticed otherwise):% phenix.refine data.hkl model.pdb ordered_solvent=true simulated_annealing=true \ strategy=rigid_body+individual_sites+individual_adp+tls main.number_of_macro_cycles=10If NCS is present - once can use it:% phenix.refine data.hkl model.pdb ordered_solvent=true simulated_annealing=true \ strategy=rigid_body+individual_sites+individual_adp+tls main.ncs=true \ main.number_of_macro_cycles=10 tls_group_selections.params \ rigid_body_selections.paramswhere tls_groups_selections.txt, rigid_body_groups_selections.txt are the files TLS and rigid body groups selections, NCS will be determined automatically from input PDB file. See this document for details on how specify these selections. Note: in these four examples above we re-defined the default number of refinement macro-cycles from 3 to 10, since a start model with high R-factors most likely requires more cycles to become a good one. Also in these examples, the rigid body refinement will be run only once at first macro-cycle, the water picking will start after half of macro-cycles is done (after 5th), the SA will be done only twice - the first and before the last macro-cycles. Even though it is requested, the water picking may not be performed if the resolution is too low. All these default behaviors can be changed: see parameter's help for more details. The last command looks too long to type it in the command line. Look this document for an example of how to make it like this:% phenix.refine data.hkl model.pdb custom_par_1.params
Refining at higher resolution one may consider:Supposing the H atoms were added to the model, below is an example of what may want to do at higher resolution:
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 xray_data.r_free_flags.generate=TrueIt 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 xray_data.r_free_flags.generate=True \ xray_data.r_free_flags.fraction=0.05 xray_data.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=mtzTo output the reflections in CNS reflection file format: % phenix.refine data.hkl model.pdb export_final_f_model=cnsNote: 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 xray_data.low_resolution=15.0 xray_data.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:
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:
% 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=0All 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 --helpDocumentation 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=fftor: % 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 xray_data.r_free_flags.ignore_r_free_flags=trueNote: 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:
% phenix.refine data.hkl model.pdb main.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=falseThe only output will be: .log and .pdb files. Random seed% phenix.refine data.hkl model.pdb main.random_seed=7112384The 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 mapsBy phenix.refine outputs two likelihood-weighted maps: 2mFo-DFc and mFo-DFc. The user can also choose between likelihood-weighted and regular maps with any specified coefficients, for example: 2mFo-DFc, 2.7mFo-1.3DFc, Fo-Fc, 3Fo-2Fc. The result is output as ASCII X-PLOR format. 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.paramswhere map.params contains:
refinement {
electron_density_maps {
map {
mtz_label_amplitudes = 2FOFCWT_ml
mtz_label_phases = PH2FOFCWT_ml
likelihood_weighted = True
obs_factor = 2
calc_factor = 1
}
map {
mtz_label_amplitudes = FOFCWT_ml
mtz_label_phases = PHFOFCWT_ml
likelihood_weighted = True
obs_factor = 1
calc_factor = 1
}
map {
mtz_label_amplitudes = 3FO2FCWT
mtz_label_phases = PH3FO2FCWT
likelihood_weighted = False
obs_factor = 3
calc_factor = 2
}
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 mFo-DFc, 2mFo-DFc and 3Fo-2Fc maps.
All maps will be in absolute scale (in e/A**3). The map finesse 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. The corresponding MTZ file will also contain the map
coefficients for these three maps.
Refining with anomalous data (or what phenix.refine does with Fobs+ and Fobs-).The way phenix.refine uses Fobs+ and Fobs- is controlled by xray_data.force_anomalous_flag_to_be_equal_to parameter. Here are 3 possibilities:
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 xray_data.sigma_fobs_rejection_criterion=2or/and intensities Iobs <= sigma_iobs_rejection_criterion * sigma(Iobs): % phenix.refine model.pdb data_anom.hkl xray_data.sigma_iobs_rejection_criterion=2Internally, 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 truncated Iobs got converted to Fobs): % phenix.refine model.pdb data_anom.hkl xray_data.sigma_fobs_rejection_criterion=2 \ xray_data.sigma_iobs_rejection_criterion=2By 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 Instead of using Fobs from input data file one can ask phenix.refine to use the calculated structure factors Fcalc using the input model. Obviously, the R-factors will be zero throughout the refinement. One can also shake various model parameters (see this document for details), then refinement will start with some bad statistics (big R-factors at least) and hopefully will converge to unmodified start model (if not shaken too well). Also it's possible to simulate Flat bulk solvent model contribution and anisotropic scaling:% phenix.refine model.pdb data.hkl experiment.paramswhere experiment.params contains the following: 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.020The whole command will be: % phenix.refine model_o5t.pdb data.hkl data_mod_5pho.cif cif_modification.paramsSimilarly, 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_cifAll 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
slack = None
}
bond {
action = *add
atom_selection_1 = $zn_selection
atom_selection_2 = $asp130_selection
distance_ideal = 2.1
sigma = 0.02
slack = None
}
angle {
action = *add
atom_selection_1 = $his117_selection
atom_selection_2 = $zn_selection
atom_selection_3 = $asp130_selection
angle_ideal = 109.47
sigma = 5
}
}
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. For example:
% phenix.refine model.pdb data.hkl restraints_edits.paramsThe 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. The bond.slack parameter above can be used to disable a bond restraint within the slack tolerance around distance_ideal. This is useful for hydrogen bond restraints, or when refining with very high-resolution data (e.g. better than 1 A). The bond restraint is activated only if the discrepancy between the model bond distance and distance_ideal is greater than the slack value. The slack is subtracted from the discrepancy. The resulting potential is called a "square-well potential" by some authors. The formula for the contribution to the refinement target function is: weight * delta_slack**2with: delta_slack = sign(delta) * max(0, (abs(delta) - slack)) delta = distance_ideal - distance_model weight = 1 / sigma**2The slack value must be greater than or equal to zero (it can also be None, which is equivalent to zero in this case). Atom selection examplesallAll C-alpha atoms (not case sensitive) name caAll atoms with ``H`` in the name (``*`` is a wildcard character) name *H*Atoms names with ``*`` (backslash disables wildcard function) name o2\*Atom names with spaces 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 anisouResidue 188 resseq 188resid is a synonym for resseq: resid 188Note 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 188this will select residue 188 only in chain A. Residues 2 through 10 (including 2 and 10) resseq 2:10"Smart" selections 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) Depositing refined structure with PDBphenix.refine reports a comprehensive statistics in PDB file header of refined model. This statistics consists of two parts: the first (upper, formatted with REMARK record) part is relevant to the current refinement run and contains the information about input data and model files, time stamp, start and final R-factors, refinement statistics from macro-cycle to macro-cycle, etc. The second (lower, formatted with REMARK 3 record) part is abstracted from a particular refinement run (no intermediate statistics, time, no file names, etc.). This part is supposed to go in PDB and the first part should be removed manually. 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:
Feedback, 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 and neutron free-R flags
ignore_xn_free_r_mismatch= False
file_name= None
labels= None
high_resolution= None
low_resolution= None
outliers_rejection= True
sigma_fobs_rejection_criterion= 0.0
sigma_iobs_rejection_criterion= 0.0
ignore_all_zeros= True
force_anomalous_flag_to_be_equal_to= None
r_free_flags
file_name= None This is normally the same as the file containing
Fobs and is usually selected automatically.
label= None
test_flag_value= None This value is usually selected automatically
- do not change unless you really know what
you're doing!
disable_suitability_test= False
ignore_pdb_hexdigest= False If True, disables safety check based
on MD5 hexdigests stored in PDB files
produced by previous runs.
ignore_r_free_flags= False Use all reflections in refinement (work
and test)
generate= False Generate R-free flags (if not available in input
files)
fraction= 0.1
max_free= 2000
lattice_symmetry_max_delta= 5
use_lattice_symmetry= True
xray_data Scope of X-ray data and free-R flags
file_name= None
labels= None
high_resolution= None
low_resolution= None
outliers_rejection= True
sigma_fobs_rejection_criterion= 0.0
sigma_iobs_rejection_criterion= 0.0
ignore_all_zeros= True
force_anomalous_flag_to_be_equal_to= None
r_free_flags
file_name= None This is normally the same as the file containing
Fobs and is usually selected automatically.
label= None
test_flag_value= None This value is usually selected automatically
- do not change unless you really know what
you're doing!
disable_suitability_test= False
ignore_pdb_hexdigest= False If True, disables safety check based
on MD5 hexdigests stored in PDB files
produced by previous runs.
ignore_r_free_flags= False Use all reflections in refinement (work
and test)
generate= False Generate R-free flags (if not available in input
files)
fraction= 0.1
max_free= 2000
lattice_symmetry_max_delta= 5
use_lattice_symmetry= True
experimental_phases Scope of experimental phase information (HL
coefficients)
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= False
write_map_coefficients= True
pickle_fmodel= False Dump final fmodel object into a pickle file.
electron_density_maps Electron density maps calculation parameters
map_format= *xplor
map_coefficients_format= *mtz phs
suppress= None List of mtz_label_amplitudes of maps to be suppressed.
Intended to selectively suppress computation and writing of
the standard maps.
reverse_scale= True Apply scales to Fobs and remove them from Fmodel
(for maps only).
grid_resolution_factor= 1/4
region= *selection cell
atom_selection= None
atom_selection_buffer= 3
apply_sigma_scaling= True
apply_volume_scaling= False
map
mtz_label_amplitudes= None
mtz_label_phases= None
likelihood_weighted= None
obs_factor= None
calc_factor= None
kicked= False
fill_missing_f_obs_with_weighted_f_model= True
map
mtz_label_amplitudes= 2FOFCWT
mtz_label_phases= PH2FOFCWT
likelihood_weighted= True
obs_factor= 2
calc_factor= 1
kicked= False
fill_missing_f_obs_with_weighted_f_model= True
map
mtz_label_amplitudes= FOFCWT
mtz_label_phases= PHFOFCWT
likelihood_weighted= True
obs_factor= 1
calc_factor= 1
kicked= False
fill_missing_f_obs_with_weighted_f_model= False
map
mtz_label_amplitudes= 2FOFCWT_no_fill
mtz_label_phases= PH2FOFCWT_no_fill
likelihood_weighted= True
obs_factor= 2
calc_factor= 1
kicked= False
fill_missing_f_obs_with_weighted_f_model= False
anomalous_difference_map
mtz_label_amplitudes= ANOM
mtz_label_phases= PHANOM
refine Scope of refinement flags (=flags defining what to refine) and atom
selections (=atoms to be refined)
strategy= *individual_sites individual_sites_real_space rigid_body
*individual_adp group_adp tls *occupancies group_anomalous
Atomic parameters to be refined
sites Scope of atom selections for coordinates refinement
individual= None Atom selections for individual atoms
torsion_angles= None Atom selections for Torsion Angle Refinement and
Dynamics
rigid_body= None Atom selections for rigid groups
adp Scope of atom selections for ADP (Atomic Displacement Parameters)
refinement
group_adp_refinement_mode= *one_adp_group_per_residue
two_adp_groups_per_residue group_selection
Select one of three available modes for
group B-factors refinement. For two groups
per residue, the groups will be main-chain
and side-chain atoms. Provide selections
for groups if group_selection is chosen.
group= None One isotropic ADP for group of selected here atoms will
be refined
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 individual atoms. None is default
which is to refine the individual occupancies for atoms
in alternative conformations or for atoms with partial
occupancies only.
remove_selection= None Occupancies of selected atoms will not be
refined (even though they might satisfy the default
criteria for occupancy refinement).
constrained_group Selections to define constrained occupancies. If
only one selection is provided then one occupancy
factor per selected atoms will be refined and it
will be constrained between predefined max and min
values.
selection= None Atom selection string.
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
bulk_solvent_and_scale= True Do bulk solvent correction and anisotropic
scaling
fix_rotamers= False
simulated_annealing= False Do simulated annealing
simulated_annealing_torsion= False Do simulated annealing in torsion
angle space
ordered_solvent= False Add (or/and remove) and refine ordered solvent
molecules (water)
ncs= False Use restraints NCS in refinement (can be determined
automatically)
ias= 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
use_form_factor_weights= False
tan_u_iso= False Use tan() reparameterization in ADP refinement
(currently disabeled)
use_geometry_restratints= True
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
reference_xray_structure= None
use_experimental_phases= None Use experimental phases if available. If
true, the target function must be set to mlhl .
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
rigid_bond_test= False Compute Hirshfeld's rigid bond test value (RBT)
show_residual_map_peaks_and_holes= False Show highest peaks and deepest
holes in residual_map.
fft_vs_direct= False Check accuracy of approximations used in Fcalc
calculations
outliers_rejection= True Remove basic wilson outliers , extreme wilson
outliers , and beamstop shadow outliers
switch_to_isotropic_high_res_limit= 1.7 If the resolution is lower than
this limit, all atoms selected for
individual ADP refinement and not
participating in TLS groups will be
automatically converted to
isotropic.
find_and_add_hydrogens= False Find H or D atoms using difference map and
add them to the model. This option should be
used if ultra-high resolution data is available
or when refining againts neutron data.
modify_start_model Scope of parameters to modify initial model before
refinement
selection= None Selection for atoms to be modified
truncate_to_polyala= None Truncate a model to poly-Ala.
set_chemical_element_simple_if_necessary= None Make a simple guess about
what the chemical element is
(based on atom name and the
way how it is formatted) and
write it into output file.
random_seed= None Random seed
adp Scope of options to modify ADP of selected atoms
atom_selection= None Selection for atoms to be modified. Overrides
parent-level selection.
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
atom_selection= None Selection for atoms to be modified. Overrides
parent-level selection.
shake= None Randomize coordinates with mean error value equal to shake
max_rotomer_distortion= None Switch to a rotomer maximally distant
from the current one
min_rotomer_distortion= None Switch to a rotomer minimally distant
from the current one
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
set= None Set all or selected occupancies to given value
rename_chain_id Rename chains
old_id= None
new_id= None
output Write out PDB file with modified model (file name is defined in
write_modified)
file_name= None Default is the original file name with the file
extension replaced by _modified.pdb .
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
scattering_table= wk1995 it1992 *n_gaussian neutron Choices of
scattering table for structure factors calculations
r_free_flags_fraction= None
structure_factors_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
mask
use_asu_masks= True
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 divided by
grid_step_factor. This is considered as suggested
value and may be adjusted internally based on the
resolution.
verbose= 1
mean_shift_for_mask_update= 0.1 Value of overall model shift in
refinement to updates the mask.
ignore_zero_occupancy_atoms= True Include atoms with zero occupancy
into mask calculation
ignore_hydrogens= True Ignore H or D atoms in mask calculation
hydrogens Scope of parameters for H atoms refinement
refine= individual *riding Choice for refinement: riding model or full
(H is refined as other atoms; useful at very high resolutions
only)
contribute_to_f_calc= True Add H contribution to Xray (Fcalc)
calculations
high_resolution_limit_to_include_scattering_from_h= 1.6
real_space_optimize_x_h_orientation= True
xh_bond_distance_deviation_limit= 0.0 Idealize XH bond distances if
deviation from ideal is greater than
xh_bond_distance_deviation_limit
local_real_space_fit_angular_step= 0.5
build
map_type= mFobs-DFmodel Map type to be used to find hydrogens
map_cutoff= 2.0 Map cutoff
angular_step= 3.0 Step in degrees for 6D rigid body search for best
fit
use_sigma_scaled_maps= True Default is sigma scaled map, map in
absolute scale is used otherwise.
resolution_factor= 1./4.
max_number_of_peaks= None
map_next_to_model
min_model_peak_dist= 0.7
max_model_peak_dist= 1.05
min_peak_peak_dist= 1.0
use_hydrogens= False
peak_search
peak_search_level= 1
max_peaks= 0
interpolate= True
min_distance_sym_equiv= None
general_positions_only= False
min_cross_distance= 1.0
min_cubicle_edge= 5
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
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
mode= *first_macro_cycle_only every_macro_cycle Defines how many times
the rigid body refinement is performed during refinement run.
first_macro_cycle_only to run only once at first macrocycle,
every_macro_cycle to do rigid body refinement
main.number_of_macro_cycles times
target= ls_wunit_k1 ml *auto Rigid body refinement target function:
least-squares or maximum-likelihood
target_auto_switch_resolution= 6.0 Used if target=auto, use optimal
target for given working resolution.
refine_rotation= True Only rotation is refined (translation is fixed).
refine_translation= True Only translation is refined (rotation is fixed).
max_iterations= 25 Number of LBFGS minimization iterations
bulk_solvent_and_scale= True Bulk-solvent and scaling within rigid body
refinement (needed since large rigid body shifts
invalidate the mask).
euler_angle_convention= *xyz zyz Euler angles convention
lbfgs_line_search_max_function_evaluations= 10
min_number_of_reflections= 200 Number of reflections that defines the
first lowest resolution zone for the
multiple_zones protocol. If very large
displacements are expected, decreasing this
parameter to 100 may lead to a larger
convergence radius.
multi_body_factor= 1
zone_exponent= 3.0
high_resolution= 3.0 High resolution cutoff (used for rigid body
refinement only)
max_low_high_res_limit= None Maximum value for high resolution cutoff
for the first lowest resolution zone
number_of_zones= 5 Number of resolution zones for MZ protocol
ncs
find_automatically= True
coordinate_sigma= None
b_factor_weight= None
excessive_distance_limit= 1.5
special_position_warnings_only= False
simple_ncs_from_pdb
pdb_in= None Input PDB file to be used to identify ncs
temp_dir= "" temporary directory (ncs_domain_pdb will be written
there)
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)
maximize_size_of_groups= False You can request that the scoring be
set up to maximize the number of members in
NCS groups
require_equal_start_match= True You can require that all matching
segments start at the same relative
residue number for all members of an NCS
group, trimming the matching region as
necessary. This is required if residue
numbers in different chains are not the
same, but not otherwise
ncs_domain_pdb_stem= None NCS domains will be written to
ncs_domain_pdb_stem+"group_"+nn
write_ncs_domain_pdb= False You can write out PDB files representing
NCS domains for density modification if you
want
verbose= False Verbose output
debug= False Debugging output
dry_run= False Just read in and check parameter names
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
modify_f_obs
remove= random strong weak strong_and_weak low other
remove_fraction= 0.1
fill_mode= fobs_mean_mixed_with_dfmodel random fobs_mean *dfmodel
pdb_interpretation
link_distance_cutoff= 3
disulfide_distance_cutoff= 3
dihedral_function_type= *determined_by_sign_of_periodicity
all_sinusoidal all_harmonic
chir_volume_esd= 0.2
max_reasonable_bond_distance= 50.0
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
proceed_with_excessive_length_bonds= False
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
rna_sugar_pucker_analysis
bond_min_distance= 1.2
bond_max_distance= 1.8
epsilon_range_not_2p_min= 155
epsilon_range_not_2p_max= 310
delta_range_2p_min= 115
delta_range_2p_max= 180
p_distance_c1p_outbound_line_2p_max= 2.9
o3p_distance_c1p_outbound_line_2p_max= 2.4
bond_detection_distance_tolerance= 0.5
show_histogram_slots
bond_lengths= 5
nonbonded_interaction_distances= 5
bond_angle_deviations_from_ideal= 5
dihedral_angle_deviations_from_ideal= 5
chiral_volume_deviations_from_ideal= 5
show_max_items
not_linked= 5
bond_restraints_sorted_by_residual= 5
nonbonded_interactions_sorted_by_model_distance= 5
bond_angle_restraints_sorted_by_residual= 5
dihedral_angle_restraints_sorted_by_residual= 3
chirality_restraints_sorted_by_residual= 3
planarity_restraints_sorted_by_residual= 3
residues_with_excluded_nonbonded_symmetry_interactions= 12
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
excessive_bond_distance_limit= 10
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.
Example: symmetry_operation = -x-1,-y,z
distance_ideal= None
sigma= None
slack= 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
n_cycles= 1
output_residue_name= HOH
output_chain_id= S
output_atom_name= O
scattering_type= O Defines scattering factors for newly added waters
primary_map_type= mFobs-DFmodel
primary_map_cutoff= 3.0
h_bond_min_mac= 1.8
h_bond_min_sol= 1.8
h_bond_max= 3.2
new_solvent= *isotropic anisotropic Based on the choice, added solvent
will have isotropic or anisotropic b-factors
refine_adp= True Refine ADP for newly placed solvent.
b_iso_min= 1.0 Minimum B-factor value, waters with smaller value will be
rejected
b_iso_max= 80.0 Maximum B-factor value, waters with bigger value will be
rejected
anisotropy_min= 0.1 For solvent refined as anisotropic: remove is less
than this value
b_iso= None Initial B-factor value for newly added water
refine_occupancies= False Refine solvent occupancies.
occupancy_min= 0.1 Minimum occupancy value, waters with smaller value
will be rejected
occupancy_max= 1.0 Maximum occupancy value, waters with bigger value
will be rejected
occupancy= 1.0 Initial occupancy value for newly added water
filter_at_start= True
ignore_final_filtering_step= False
correct_drifted_waters= True
use_kick_maps= False Use Dusan's Turk kick maps for peak picking
secondary_map_and_map_cc_filter
cc_map_1_type= "Fc"
cc_map_2_type= 2mFo-DFmodel
atom_radius= 1.5 Atomic radius for map CC calculation. Determined
automatically if if None is given
number_of_grid_points= 50 Requesteed number of grid points to be used
in CC calculation. Together with atom_radius
it will define the grid step.
set_cc_to_zero_if_n_grid_points_less_than= 10 Return zero CC if
number of grid nodes is
less than defined above
poor_cc_threshold= 0.7 Ad hoc definition of poor map CC
poor_map_value_threshold= 1.0 Ad hoc value (less than) defining a
week density (in sigma) for maps involved
in map CC calculation
crystal_symmetry
unit_cell= None
space_group= None
kick_map parameters for kick maps
kick_size= 0.5
number_of_kicks= 100
peak_search
use_sigma_scaled_maps= True Default is sigma scaled map, map in absolute
scale is used otherwise.
resolution_factor= 1./4.
max_number_of_peaks= None
map_next_to_model
min_model_peak_dist= 1.8
max_model_peak_dist= 6.0
min_peak_peak_dist= 1.8
use_hydrogens= False
peak_search
peak_search_level= 1
max_peaks= 0
interpolate= True
min_distance_sym_equiv= None
general_positions_only= False
min_cross_distance= 1.8
min_cubicle_edge= 5
bulk_solvent_and_scale
bulk_solvent= True
anisotropic_scaling= True
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= 300.0
b_sol_min= 0.0
k_sol_grid_search_max= 0.6
k_sol_grid_search_min= 0.0
b_sol_grid_search_max= 80.0
b_sol_grid_search_min= 20.0
k_sol_step= 0.2
b_sol_step= 20.0
number_of_macro_cycles= 2
max_iterations= 25
min_iterations= 25
fix_k_sol= None
fix_b_sol= None
apply_back_trace_of_b_cart= False
verbose= -1
ignore_bulk_solvent_and_scale_failure= False
fix_b_cart
b11= None
b22= None
b33= None
b12= None
b13= None
b23= None
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
use_asu_masks= True
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 divided by
grid_step_factor. This is considered as suggested
value and may be adjusted internally based on the
resolution.
verbose= 1
mean_shift_for_mask_update= 0.1 Value of overall model shift in
refinement to updates the mask.
ignore_zero_occupancy_atoms= True Include atoms with zero occupancy into
mask calculation
ignore_hydrogens= True Ignore H or D atoms in mask calculation
tardy Under development
mode= every_macro_cycle *second_and_before_last once first first_half
xray_weight_factor= 10
start_temperature_kelvin= 2500
final_temperature_kelvin= 300
velocity_scaling= True
temperature_cap_factor= 1.5
excessive_temperature_factor= 5
number_of_cooling_steps= 500
number_of_time_steps= 1
time_step_pico_seconds= 0.001
temperature_degrees_of_freedom= *cartesian constrained
minimization_max_iterations= 0
omit_bonds_with_slack_greater_than= 0
constrain_dihedrals_with_sigma_less_than= 10
near_singular_hinges_angular_tolerance_deg= 5
emulate_cartesian= False
trajectory_directory= None
prolsq_repulsion_function_changes energy(delta) =
c_rep*(max(0,(k_rep*vdw_distance)**irex
p-delta**irexp))**rexp
c_rep= None Usual value: 16
k_rep= 0.75 Usual value: 1. Smaller values reduce the distance
threshold at which the repulsive force becomes active.
irexp= None Usual value: 1
rexp= None Usual value: 4
cartesian_dynamics
temperature= 300
number_of_steps= 200
time_step= 0.0005
initial_velocities_zero_fraction= 0
n_print= 100
verbose= -1
simulated_annealing
start_temperature= 5000
final_temperature= 300
cool_rate= 100
number_of_steps= 50
time_step= 0.0005
initial_velocities_zero_fraction= 0
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 first_half
verbose= -1
interleaved_minimization
number_of_iterations= 0
time_step_factor= 10
restraints= *bonds *angles
target_weights
optimize_wxc= False
optimize_wxu= False
mode= *automatic every_macro_cycle
wxc_scale= 0.5
wxu_scale= 1.0
wc= 1.0
wu= 1.0
fix_wxc= None
fix_wxu= None
bonds_rmsd_max= 0.05
angles_rmsd_max= 3.5
shake_sites= True
shake_adp= 10.0
regularize_ncycles= 50
verbose= 1
wnc_scale= 0.5
wnu_scale= 1.0
rmsd_cutoff_for_gradient_filtering= 3.0
ias
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_ias_occupancy= 1.0
build_ias_types= L R B BH
use_map= True
build_only= False
file_prefix= None
peak_search_map
map_type= *Fobs-Fmodel mFobs-DFmodel
grid_step= 0.25
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
twinning
twin_law= None
twin_target= *twin_lsq_f
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.
real_space_refinement
mode= simple *diff_map Real space refinement method (diff_map is much
slower but might have larger convergence radius especially at low
resolution)
target_map_name= 2mFo-DFc Target map type to refine against
model_map_name= Fc Current model map type (used only if diff_map is
selected)
grid_resolution_factor= 1./4 Defines coarseness of the map
target_weights= value grid_search *gradients_ratio Method for relative
target weight determination
real_space_target_weight= None Weight for the real-space target (used
only if diff_map is selected)
restraints_target_weight= None Weight for the restraints target (used
only if diff_map is selected)
number_of_cycles= 1 Number of minimization cycles
rmsd_max_bonds= 0.07 Refinement result is ignored if this max allowable
deviation exceeded
rmsd_max_angles= 5.0 Refinement result is ignored if this max allowable
deviation exceeded
grid_search_scales= 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 2.5 3.0 Defines
the range of values for the weight grid search
verbose= 1 All output is supressed if it is negative
gui Miscellaneous parameters for phenix.refine GUI
add_hydrogens= False Runs phenix.ready_set to add hydrogens prior to
refinement.
| |