Phenix: Difference between revisions
m (→TLS: example for .def file) |
m (→TLS: add example for rigid body and NCS definition) |
||
Line 77: | Line 77: | ||
tls = chain 'B' | tls = chain 'B' | ||
} | } | ||
} | |||
== Rigid body == | |||
example for file rigid_body.def defining 2 rigid bodies: | |||
refinement.refine.sites { | |||
rigid_body = chain 'A' or chain 'B' | |||
rigid_body = chain 'L' or chain 'M' | |||
} | |||
== NCS == | |||
example for ncs.def : | |||
refinement.ncs.restraint_group { | |||
reference = chain 'A' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) | |||
selection = chain 'B' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) | |||
selection = chain 'C' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) | |||
selection = chain 'D' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) | |||
} | } | ||
Revision as of 15:05, 20 March 2009
PHENIX (Python-based Hierarchical ENvironment for Integrated Xtallography) is a new software suite for the automated determination and refinement of macromolecular structures using X-ray crystallography and other methods. It integrates well with CCP4-formatted files for I/O, is highly automated, and very straightforward to use.
The suite has a GUI program (phenix) which can be used to run the programs, but they also work from the command line:
- phenix.refine - refinement program
- phenix.xtriage - assessing data quality
- phenix.find_helices - rapid helix fitting to a map
- phenix.pbdtools - PDB model manipulations and statistics; e.g. phenix.pbdtools your_model.pdb --show-adp-statistics will show you complete statistics about B-factors; phenix.pbdtools your_model.pdb --show-geometry-statistics will show you complete statistics about stereochemistry, and so on
- phenix.elbow - electronic Ligand Builder and Optimisation Workbench
- phenix.reduce - tool for adding hydrogens to a PDB model
- ...
Example
phenix.refine model.pdb data.mtz strategy=rigid_body+individual_sites+individual_adp \ simulated_annealing=true optimize_wxc=true optimize_wxu=true main.number_of_macro_cycles=5
Here "data.mtz" is your reflection data file. PHENIX automatically recognizes most of the known file formats, so it can be MTZ, CNS or ...
This will do the following:
- Rigid body refinement first cycle only (MZ protocol = VERY high convergence radius);
- Refinement of individual xyz and b-factors every cycle with optimized weights;
- Simulated annealing at 2nd and one before the last cycles;
Ligands
If some ligand in model.pdb is unknown, phenix.refine will complain:
Sorry: Fatal problems interpreting PDB file: Number of atoms with unknown nonbonded energy type symbols: 18 Please edit the PDB file to resolve the problems and/or supply a CIF file with matching restraint definitions, along with apply_cif_modification and apply_cif_link parameter definitions if necessary (see phenix.refine documentation). Also note that phenix.elbow is available to create restraint definitions for unknown ligands.
In that case, just running
phenix.elbow model.pdb --do-all --output=all_ligands
will produce all_ligands.cif, which may be fed to phenix.refine by
phenix.refine model.pdb data.mtz all_ligands.cif ...
Occupancy refinement
Adding "occupancy" to the "strategy" options will refine the occupancies of those parts of the model that have alternate conformations.
NCS
Automatic detection of NCS groups:
phenix.refine data.hkl model.pdb main.ncs=True
Manual specification of NCS groups:
phenix.refine data.hkl model.pdb ncs_groups.params main.ncs=True
where ncs_groups.params contains e.g.:
refinement.ncs.restraint_group { reference = chain A selection = chain B selection = chain C } refinement.ncs.restraint_group { reference = chain E selection = chain F }
TLS
- run your model through TLSMD server to identify TLS domains (it will produce PHENIX friendly TLS groups selections);
http://skuld.bmsc.washington.edu/~tlsmd/
- use these selections for TLS refinement in PHENIX: see http://www.phenix-online.org/documentation/refinement.htm
for example:
phenix.refine model.pdb data.hkl strategy=individual_sites+individual_adp+tls tls_selections.def
with tls_selections.def something like:
refinement.refine { adp { tls = chain 'A' tls = chain 'B' } }
Rigid body
example for file rigid_body.def defining 2 rigid bodies:
refinement.refine.sites { rigid_body = chain 'A' or chain 'B' rigid_body = chain 'L' or chain 'M' }
NCS
example for ncs.def :
refinement.ncs.restraint_group { reference = chain 'A' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) selection = chain 'B' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) selection = chain 'C' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) selection = chain 'D' and (resseq 1:44 or resseq 47 or resseq 49:88 ) and (not element H) }