Cookies help us deliver our services. By using our services, you agree to our use of cookies. More information


From CCP4 wiki


19,780 bytes added, 10:03, 26 August 2020
Tips and Tricks: regression tests
PHENIX (Python-based Hierarchical ENvironment for Integrated Xtallography) is a 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 ([ Phenix home page]; [ documentation]) has a GUI program (phenix) which can be used to run the programs, but they also work from the command line.
There is also version-specific documentation, e.g. You can join the [ documents development version 572phenixbb PHENIX bulletin board] and/or view its archives.
The documentation below focuses on the non-GUI commandline tools and may not be complete, nor up-to-date or even correct.
== Installation problem on NFS for Mac OSX (posting of 23 Jan 2015) ==
The problem:
In an effort to save us from malware, OS X now adds a 'quarantine' attribute to downloaded files. This includes tar and compressed tar files. For most users the quarantine flag only really comes into play if the downloaded file is an application or installer package.
When Yosemite untars an archive with the quarantine attribute, it adds the quarantine attribute to every file it extracts from the archive.
This doesn't present a problem if you're extracting the archive to a local disk, or an AFP-mounted network volume. If you're extracting the archive to an NFS-mounted network volume, it can't store the quarantine flag as a resource fork on the file itself. Instead, it creates a ._<filename> file for each extracted file.
The Phenix installer doesn't like having an install tree full of unexpected ._ files. In some cases, such as where tries to generate tables from all the files in a directory, it tries to read ._ files as normal files and dies.
The solution:
The solution is trivial once you know what the problem is. Remove the quarantine attribute from the tar file before extracting its contents. For example:
xattr -d phenix-installer-1.9-1692-mac-intel-osx-x86_64.tar.gz
Of course, if the Phenix installer could be modified so that it doesn?t die when it finds unexpected ._ files, that would be lovely.
Dr Chris Richardson :: Sysadmin, structural biology,
== Crystallographic data ==
=== [ html phenix.xtriage] - assessing data quality ===
=== [ html phenix.explore_metric_symmetry] - investigate different settings ===
phenix.explore_metric_symmetry --unit_cell=145,44,67,90,110.5,90 --space_group=C2 --other_unit_cell=67,44,136,90,96,90 --other_space_group=p2
The CCP4 equivalent is "[".html othercell].
=== [ html phenix.reflection_statistics] - compare datasets ===
There may be one or two data files.
=== [ html phenix.xmanip] - structure factor file manipulations ===
=== [ html phenix.model_vs_data] - statistics ===
Just use "phenix.model_vs_data model.pdb data.hkl" where data.hkl is a reflection file in most of known formats. phenix.model_vs_data can output the map defined as:
Like phenix.model_vs_data plus gives you more options and controls.
=== [ html phenix.fmodel] - calculate structure factors from model ===
=== phenix.cif_as_mtz - convert cif to mtz format ===
== Experimental phasing ==
=== [ html phenix.autosol] - experimental phasing "wizard" ===
phenix.autosol uses HYSS, SOLVE, Phaser, RESOLVE, xtriage and phenix.refine to solve a structure and generate experimental phases with the MAD, MIR, SIR, or SAD methods
=== [ html phenix.phaser] - SAD phasing with Phaser ===
[ Phaser] can do SAD phasing - it is therefore called phaser_ep (ep stands for "experimental phasing"). The most recent version of Phaser Phenix documentation is 2.3 in Phenix, and 2.1 in CCP4. Please note that the "Phaser" link of at [] in the sentence "consult the documentation for AutoSol or Phaser, or the Phaser WIKI" points to the 2.1 documentation. The keywords are concisely (but somewhat lightly) documented at []. A script documenting the following features
# using a PDB file (with origin-centered coordinates) as a heavy atom cluster template
# using two different substructure atomtypes (the cluster, and Fe)
== Molecular replacement ==
=== [ html phenix.automr] - interface to Phaser and Resolve ===
This "wizard" provides an interface to Phaser molecular replacement and feeds the results of molecular replacement directly into the AutoBuild Wizard for automated model rebuilding
=== phaser.brunett ===
* automated molecular replacement using incremental exploration, with support for parallelization
=== phenix.phaser ===
=== [ html phenix.sculptor] - automate selection and editing of molecular replacement (MR) models ===
=== [ html phenix.ensembler] - multiple superposition tool to automate construction of ensembles for MR ===
== Ligands ==
=== [ html phenix.reel] - restraints editor especially for ligands === === [ phenix.elbow] - electronic Ligand Builder and Optimisation Workbench === Using taxol as an example: this is also named Paclitaxel and one can easily obtain the [ SMILES string]. Then just watch [ this video on phenix.elbow]. But before you make restraints yourself, check whether it is already in thedictionary - search on . Taxol should be [ TA1]. This can then be used in elbow as a chemical component. This option provides more information than the SMILES string.
=== [http://www. phenix.elbow] - electronic Ligand Builder and Optimisation Workbench ==-chemical_components=TA1
== Model building and completion ==
=== [ html phenix.autobuild] - "wizard" for model rebuilding and completion ===
phenix.phase_and_build, phenix.build_one_model are fast ways to obtain results.
=== [ html phenix.ligandfit] - "wizard" carrying out fitting of flexible ligands to electron density maps ====== [ html phenix.find_helicesfind_helices_strands] - rapid helix /strand fitting to a map ===
=== phenix.fit_loops - fill short gaps using a loop library, and longer gaps (up to 15 residues) iteratively ===
=== [ html phenix.assign_sequence] - sequence assignment and linkage of neighboring segments ===
=== phenix.ligand_identification ===
== Refinement with [ html phenix.refine] ==
=== Example for use of phenix.refine ===
# Simulated annealing at 2nd and one before the last cycles;
# find (and remove if necessary) water molecules
===== restricting the resolution =====
will restrict the high resolution limit to 2.5 A.
=== Ligands ===
definitions for unknown ligands.
In that case, just running
phenix.elbow ready_set model.pdb --do-all --output=all_ligandswill produce all_ligandsmodel.updated.pdb and model.ligands.cif, which may be fed to phenix.refine by phenix.refine model.updated.pdb data.mtz all_ligandsmodel.ligands.cif ...
If no PDB file for a ligand is available, its SMILES string should be input to phenix.elbow, and phenix.ready_set should run to generate the LINK records (e.g. for a non-natural amino acid that is part of the polypeptide chain), using phenix.elbow's CIF file.
==== Hydrogens ====
Use phenix.ready_set to add hydrogens to your PDB file, and use (except at ultra-high resolution) the riding hydrogen model in phenix.refine (this is the default so you do not have to specify anything).
phenix.ready_set internally uses phenix.elbow for ligands and phenix.reduce for the protein. phenix.pdbtools can also add hydrogens (FIXME: what are the differences?).
Hydrogens should not be used in NCS and TLS groups - it might be a good idea to add <font face="Courier"> and not (element H or element D)</font> to all selection strings.
See the [ phenix.refine documentation].
==== Occupancy ====
are different - this turn the non-bonded interaction off so the residues
will get pushed apart.
==== Special positions ====
Single atoms on (or close enough to) a special position (i.e. on one or more 2-,3-,4- or 6-fold rotation axis/axes) are automatically restrained to stay on that special position. For anything else (like a ligand crossing a symmetry element) the trick is: reducing occupancy to 1/n for a n-fold rotation axis, and excluding atoms from non-bonded repulsions with their symmetry mates - see [[Phenix#Switching_off_specific_interactions]] .
==== Bond across symmetry axis ====
There is a small hint at
For bonds to symmetry copies, specify the symmetry operation in xyz notation, for example:
symmetry_operation = -x-1/2,y-1/2,-z+1/2
The whole .eff file might look like:
refinement.geometry_restraints.edits {
bond {
action = *add delete change
atom_selection_1 = chain A and resid 1199 and name O4
atom_selection_2 = chain A and resid 1196 and name C1
symmetry_operation = X-1/2,-Y+1/2,-Z
distance_ideal = 1.439
sigma = 0.020
(this is from a posting of Oleg Sobolev to PHENIXBB on Wed, 27 May 2020 15:55:27 -0700)
==== NCS ====
more on this: see [[Phenix#NCS_usage]]
* Automatic detection of NCS groups:
phenix.refine data.hkl model.pdb mainncs=True ncs_search.ncsenabled=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 {
selection = chain F
* switching to torsion-angle NCS:
See the [ documentation].
==== DEN refinement (similar to what is in CNS) ====
* run your model through TLSMD server to identify TLS domains (it will produce PHENIX friendly TLS groups selections);
* or use <code>phenix.find_tls_groups</code> to find TLS groups, and to generate a tls_selections.def file.* use these selections for TLS refinement in PHENIX: see
for example:
Alternatively, phenix.refine can identify TLS groups on-the-fly, using <pre>tls.find_automatically=True * phenix.find_tls_groups now can find TLS groups automatically, and generate a tls_selections.def file.</pre>
At lower resolution than 1.5A if you run two consecutive refinements, first with TLS
==== [ Fix His/Asn/Gln sidechain orientations] ====
to automatically flip these sidechains to make them better fit the density and/or hydrogen bonding pattern.
==== [ Using a reference model] ====
A good idea if refinement is done at low resolution but a high resolution model is available.
phenix.refine data.hkl model.pdb mainreference_model.reference_model_restraintsenabled=True \ reference_model.file=reference.pdb
Use reference_model.sigma=0.5 to tighten the restraints (default 1.0 Angstrom), and use reference_model.limit=30 to enlarge the limit (default 15 degrees) up to which the reference torsion angle will be used.
It would probably be a good idea to also use main.nqh_flips=True (but maybe this is already integrated into fix_rotamers=true ?)
=== [ Atom selection ] ===
sel = "chain A and resseq 123 and resname LIG and name C1 and altloc A"
where "resseq 123" and "resname LIG" are probably redundant.
Yet another example:
sel = "altloc A or altloc ' ' or element H"
would select hydrogens of the only (or first, if there are several) alternate conformation of each residue.
=== Switching off specific interactions ===
* In specific (rare !) situations one wants to exclude specific interactions. The pdb_interpretation.custom_nonbonded_symmetry_exclusion=<selection> command line keyword was designed for this purpose. Example (either simply add this on the commandline, after setting the selection appropriately, or if using GUI, find this parameter in "All parameters", and type in atom selection): custom_nonbonded_symmetry_exclusions="chain A and resseq 123 and sidechain"
* To switch off the interaction between a specific atom and its environment, e.g. to obtain unbiased (by restraints) estimates of distances, see - you just add restraints of the form:
refinement.geometry_restraints.edits {
to the phenix.refine command line results in the log file containing memory usage throughout the run. Look for the max memory intake in the last record (towards the end of log file). This will give you an idea about how much memory you may need.
It might well be that this also works for the other phenix tools.
== Refinement with mmtbx.lockit ==
From RWGK's posting to [ phenixbb] on Nov 14, 2010:
We have a tool for quick real-space refinement that's geared towards making the
geometry ideal in the end. I'm not sure it is useful in your situation, but may
be worth a try. It works like this:
mmtbx.lockit your.pdb your_refine_001_map_coeffs.mtz \
map.coeff_labels.f=2FOFCWT,PH2FOFCWT \
atom_selection='resname LIG'
It works in two stages. First it attempts to maximize the real-space weight
allowing for a significant (but not totally unreasonable) distortion of the
geometry. This is meant to move the ligand into the density. In the second stage
it scales down the "best" real-space weight and runs a number of real-space
refinements until the selected atoms do not move anymore. The expected result is
nearly ideal geometry.
The procedure is usually very quick. If it turns out to be useful we could
integrate it into phenix.refine, to be run after reciprocal-space refinement.
The mmtbx.lockit command is not as user-friendly as phenix.refine. It only works
with mtz files, you have to manually specify the mtz labels, and the error
messages may be unhelpful. Also be sure there is a valid CRYST1 card in your pdb
== Maps ==
Can work with ensembles of structures. Seems to have no specific documentation. Can also calculate map CC for all atoms or per residue.
=== [ html phenix.get_cc_mtz_mtz] ===
=== phenix.fobs_minus_fobs_map - calculate difference density ===
Seems to have no specific documentation.
=== [ html phenix.multi_crystal_average] ===
=== phenix.grow_density - local density improvement ===
with output=xplor produces an X-PLOR style map. Adding a PDB file will result in a masked map.
=== [ html phenix.reciprocal_space_arrays] ===
computes various arrays such as Fcalc, Fmask, Fmodel, Fbulk, and more.
== NCS usage ==
=== [ html phenix.find_ncs] - identification of NCS operators ===
from protein coordinates (chains), heavy atom coordinates, or a density map. Example:
phenix.find_ncs my_8_molecules.pdb
Seems to have no specific documentation.
=== [ html phenix.apply_ncs] - applying NCS to a molecule to generate all NCS copies ===
phenix.apply_ncs find_ncs.ncs_spec chainA.pdb
== Model analysis and manipulation ==
=== [ html phenix.pbdtools] - PDB model manipulations and statistics ===
phenix.pdbtools your_model.pdb model_statistics=True
phenix.pbdtools your_model.pdb set_b_iso=25.3 selection="chain A and resname ALA and name CA"
will set all B=25 for all CA atoms in all ALA residues of chain A.
Useful to prepare a model for Molecular Replacement:
phenix.pdbtools convert_to_isotropic=true keep="not (altloc B or element H or hetero)" occupancies.set=1 stop_for_unknowns=false model.pdb
=== phenix.pdb_interpretation - PDB bonds, distances, dihedrals, ... ===
will result in a output file model_1.pdb.geo which contains ALL geometry information (bonds, angles, torsions, planarity, non-bonded ...) for each and every atom in your model.
=== [ html phenix.reduce] - tool for adding hydrogens to a PDB model ===
=== phenix.pdb_atom_selection ===
In this example, selects all atoms within 3 A from CA atom in chain A of residue number 9, and writes them into cut.pdb file.
=== [ html phenix.superpose_pdbs] - Superposition of models ===
=== phenix.superpose_ligands - Superposition of ligands ===
Example files at []
mmtbx.validation_summary model.pdb
=== [ phenix.polygon] ===starts can be run from the GUI and runs calculations resulting in a [ POLYGON] drawing of important characteristics of your PDB file in relation to the data
=== phenix.validate_model and phenix.validate ===
will split the total B-factor in ATOM records into TLS component and 'residual' part.
== List of programs ==
This is the output of phenix.list (version 1630):
durandal.cluster_pdbs: Entropy-accelerated exact clustering of protein decoys
durandal.rank_pdbs: Entropy-accelerated exact clustering of protein decoys
fable.cout: Convert Fortran sources to C++
fable.show_calls: Show Fortran call graph
iotbx.cif.validate: Validation of CIF files against core CIF dictionary
iotbx.cns.transfer_crystal_symmetry: Read unit cell and space group from many file formats, add to CNS input file
iotbx.crystal_symmetry_from_any: Read unit cell and space group from many file formats
iotbx.dtrek.to_cns: Convert d*trek reflection file to CNS format
iotbx.lattice_symmetry: Determination of lattice symmetry given unit cell
iotbx.pdb.add_conformations: Add alternate conformation to a PDB file (for entire model or atom selection)
iotbx.pdb.join_fragment_files: Join multiple PDB files constituting one model
iotbx.pdb.link_as_geometry_restraints_edits: Convert PDB LINK records to phenix.refine parameter file format
iotbx.pdb.print_sequence: Extract FASTA sequence string from PDB file
iotbx.pdb_as_fasta: Extract FASTA sequence string from PDB file
iotbx.pdb_labels_comparison: Compare two pdb files, ignoring coordinates
iotbx.pdb_labels_diff: Diff between two pdb files, ignoring coordinates
iotbx.phil: Check syntax of parameter file
iotbx.r_free_flags_accumulation: Determine fraction of R-free flags as function of Miller indices sorted by resolution
iotbx.shelx.as_cif: Convert SHELX .ins or .res file to CIF format
iotbx.show_distances: Show interatomic distances given input in PDB format
labelit.image: Illustrate the raw data with marked up Bragg spots
labelit.pdf: Illustrate the raw data with marked up Bragg spots
mmtbx.lockit: Experimental command for real-space refinement, mainly ligands
mmtbx.mon_lib_cif_triage: Check syntax of monomer library CIF files
phaser.MRage: Molecular replacement pipeline Calculates model and map from MRage results
phaser.domain_analysis: Determine domain boundaries from homologues
phaser.ensembler: Superpose PDB files to create ensemble for MR
phaser.sculptor: Improve molecular replacment models using sequence alignment and structural infomation
phaser.unit: Run phaser unittests
phenix: Run Phenix graphical user interface
phenix.about: Summarize contributors, packages, and info for phenix
phenix.acknowledgments: Summarize third-party components of Phenix
phenix.adjust_robetta_resid: Apply sequence offset to a fragments file
phenix.apply_ncs: Apply NCS (.ncs_spec file) to a chain to create molecule
phenix.assign_sequence: Assign sequence to a chain using a map and seq file
phenix.autobuild: Iterative model-building density modification and refinement
phenix.automr: Automated MR and model-building
phenix.autosol: Automated structure solution by MR/MAD/SAD
phenix.average_map_coeffs: Average a set of map coefficients from several files
phenix.b_factor_statistics: Display summary of atomic displacement parameters for a model (or atom selection)
phenix.build_one_model: Build one model using a map and data file
phenix.build_rna_helices: Build RNA helices into a map
phenix.cablam_training: C-alpha-based protein secondary structure exploration
phenix.cablam_validate: C-alpha-based protein secondary structure exploration
phenix.cbetadev: Validate protein sidechain C-beta geometry
phenix.cc_star: Calculate cc_star values for correlation of data vs resolution
phenix.cif_as_mtz: Convert CIF to MTZ
phenix.cif_as_pdb: Convert CIF to PDB format
phenix.clashscore: Evaluate model based on all-atom contacts
phenix.cns_as_mtz: Convert CNS to MTZ
phenix.combine_models: Take best parts of two models
phenix.commands: List command line Phenix methods
phenix.compare_datasets: Similar to phenix.data_viewer, as side-by-side view
phenix.composite_omit_map: Generate composite omit map, with our without refinement and simulated annealing
phenix.csv_as_mtz: Convert csv reflection files to MTZ
phenix.cut_out_density: Create MTZ coeffs with density cut out from a map
phenix.data_viewer: View pseudo-precession planes through a dataset
phenix.default_gui_settings: Print out base PHENIX GUI configuration (mostly useful for site admins)
phenix.den_refine: Carry out DEN refinement of a model
phenix.density_outside_model: Remove density near a model from a map
phenix.doc: Phenix documentation
phenix.dynamics: Shake up structure with simple molecular dynamics
phenix.elbow: Ligand builder (CIF from PDB, SMILES etc)
phenix.emma: Compare heavy-atom solutions
phenix.ensemble_refinement: run ensemble refinement
phenix.ensembler: Superpose PDB files to create ensemble for MR
phenix.erraser: Run ERRASER
phenix.explore_metric_symmetry: Compare unit cells
phenix.fest: Experimental Delta F and FA estimation
phenix.find_all_ligands: Find ligands from a list in a map
phenix.find_alt_orig_sym_mate: Superimpose structures allowing origin shifts (see also map_to_object)
phenix.find_helices_strands: Build helices and strands into a map
phenix.find_ncs: Find NCS in a model, map or heavy-atom sites
phenix.find_ncs_from_density: Find NCS from a map (use phenix.find_ncs)
phenix.find_tls_groups: Automatic identification of appropriate TLS groups in model
phenix.fit_loops: Fit missing loops in a model
phenix.fmodel: Calculate structure factors from model
phenix.form_factor_query: f' and f" table lookup given element and wavelength
phenix.get_cc_mtz_mtz: Offset maps using allowed origin shifts and get correlation
phenix.get_cc_mtz_pdb: Offset PDB to match map using allowed origin shifts and get residue correlation
phenix.get_latest_version: Download most recent installer replacing current installation
phenix.get_ligand_pdb: Create PDB file for a 3-letter ligand in the PDB
phenix.grow_density: Density modification to enhance chain ends
phenix.guess_molecular_centers: Guess molecular centers from local RMS density Load Phenix documentation (same as phenix.doc)
phenix.hyss: Identify heavy-atom sites from anomalous dataset
phenix.import_and_add_free: Import a data file and add Free R set
phenix.kinemage: Generates a multi-criterion validation kinemage file, for viewing in KiNG
phenix.king: Run KiNG molecular graphics
phenix.ksdssp: Identify secondary structure in a model
phenix.ligand_identification: Identify ligands from a map
phenix.ligand_pipeline: Automated molecular replacement, refinement, and ligand fitting for high-throughput crystallography
phenix.ligandfit: Fit ligands into a map
phenix.list: Use instead: phenix.commands
phenix.map_box: Simple cut out map around a PDB file
phenix.map_to_model_histogram: Compute averaged radial density distribution
phenix.map_to_object: Superimpose using SG symmetry only (see also find_alt_orig_sym_mate)
phenix.map_to_structure_factors: Calculate structure factors and HL coefficients from ccp4 map file and save in MTZ
phenix.map_value_at_point: Get map value at given coordinates
phenix.maps: Create maps from PDB and MTZ files
phenix.maximum_entropy_map: Compute maximum entropy map from map coefficients
phenix.merging_statistics: Calculate statistics on unmerged data
phenix.metal_coordination: Generate metal coordination bond and angle restraints
phenix.model_model_distances: Distance between two PDB files: per atom, residue, chain, model and overall
phenix.model_vs_data: Evaluate model using experimental data
phenix.model_vs_sequence: Detect residue mismatches in a PDB file
phenix.molprobity: Run molprobity
phenix.morph_model: Morph a model to match a map
phenix.mr_model_preparation: Download and edit PDB files for MR
phenix.mr_rescoring: Model scoring for mr_rosetta
phenix.mr_rosetta: MR and model improvement with phaser/autobuild/Rosetta
phenix.mr_rosetta_rebuild: Rebuild model with Rosetta
phenix.mtz.dump: Dump MTZ file contents
phenix.mtz2map: Convert MTZ file to map (superseded by phenix.maps)
phenix.mtz_as_cif: Convert mtz to CIF format
phenix.multi_crystal_average: Multi-crystal averaging
phenix.muscle: sequence alignment tool
phenix.ncs_and_number_of_ha: Guess solvent content and number of heavy-atom sites
phenix.ncs_average: NCS average (no density modification) and write map file
phenix.old_gui: Run old version of Phenix GUI
phenix.pdb.hierarchy: Quick summary of PDB file content
phenix.pdb_as_cif: Convert PDB format to CIF
phenix.pdb_atom_selection: Extract selected atoms from PDB file (useful for experimenting with atom selections)
phenix.pdb_editor: Edit PDB files graphically
phenix.pdb_interpretation: Read PDB file and build restraints for refinement (useful for trouble-shooting)
phenix.pdbtools: Manipulate PDB files
phenix.perigee: Interaction finder
phenix.phase_and_build: Rapid density modification and model-building
phenix.phaser: Run PHASER
phenix.print_sequence: Print sequence from PDB file
phenix.probe: Run PROBE, for analysis of all-atom contacts
phenix.pulchra: PULCHRA conversion from CA to full chain
phenix.pymol: Pymol
phenix.python: Run phenix-cognizant version of python
phenix.r_factor_statistics: Distribution of Rfree, Rwork and Rfree-Rwork for PDB models at similar resolution
phenix.ramalyze: Validate protein backbone Ramachandran dihedral angles
phenix.ready_set: Set up files for refinement, including addition of hydrogens, generation of ligand restraints, and metal coordination restraints
phenix.real_space_refine: Extensive real-space refinement
phenix.reciprocal_space_arrays: Create MTZ file with Fmodel,Fcalc,Fbulk,Fmask,FOM,HL, resolution and more
phenix.reduce: Run REDUCE, software for addition or trimming of hydrogens
phenix.reel: Graphical ligand restraints editor
phenix.refine: Carry out refinement of a model
phenix.reflection_file_converter: Basic conversion between reflection file formats (command-line)
phenix.reflection_statistics: Evaluation and comparison of reflection data (e.g. anomalous difference correlations)
phenix.reindex: Reindex an MTZ file
phenix.remove_aniso: Remove anisotropy from columns of an MTZ dataset
phenix.remove_free_from_map: Set all map coeffs of free reflections to zero
phenix.resolve: Run resolve
phenix.resolve_pattern: run resolve_pattern
phenix.rna_validate: Validate RNA sugar puckers, backbone bond and angle geometry, and backbone suite conformations
phenix.rotalyze: Validate protein sidechain rotamers
phenix.run_example: Run an example from the phenix_examples directory
phenix.sculptor: Improve molecular replacment models using sequence alignment and structural infomation
phenix.secondary_structure_restraints: generate pseudo H-bond restraints for alpha helices, beta sheets, and nucleic acid base pairs
phenix.show_build_path: Show path to Phenix build directory
phenix.show_dist_paths: Show paths to all components of Phenix
phenix.simple_ncs_from_pdb: NCS from a PDB file (use instead phenix.find_ncs)
phenix.solve: Run SOLVE
phenix.start_coot: Coot molecular graphics
phenix.superpose_ligands: Superimpose two ligands
phenix.superpose_maps: Superimpose PDB files and transform map to match
phenix.superpose_pdbs: Superimpose PDB files using aligned sequences
phenix.trim_pdb: Remove hydrogen atoms from a PDB file
phenix.version: Print version of Phenix
phenix.where_mon_lib_list_cif: Show location of monomer library used by Phenix
phenix.xmanip: Experimental tool for manipulation of reflection data
phenix.xtriage: Analyze data files for quality and unusual conditions
phenix_regression.phenix_doc.test_phenix_html: Test generation of documentation
phenix_regression.run_tests_mp: Run solve-resolve tests in parallel
phenix_regression.test_all_parallel: Test wizards
phenix_regression.test_apps: Relatively short tests of selected major phenix applications
phenix_regression.test_rosetta_refine: Test rosetta refine
phenix_regression.testwizard: Run wizard tests
phenix_regression.wizards.list: list all wizard regression tests
phenix_regression.wizards.test_all: Run all wizard tests
phenix_regression.wizards.test_all_parallel: Run all wizard tests in parallel
phenix_regression.wizards.test_command_line: General wizard tests
phenix_regression.wizards.test_command_line_build: Wizard model-building tests
phenix_regression.wizards.test_command_line_ligands: Wizard ligand-building tests
phenix_regression.wizards.test_command_line_loops: Wizard loop-fitting tests
phenix_regression.wizards.test_command_line_misc: misc wizard tests
phenix_regression.wizards.test_command_line_ncs: Wizard NCS tests
phenix_regression.wizards.test_command_line_non_standard: Wizard non-standard SG tests
phenix_regression.wizards.test_command_line_omit: Wizard omit tests
phenix_regression.wizards.test_command_line_resolve_memory: resolve in memory
phenix_regression.wizards.test_command_line_rosetta: mr_rosetta tests
phenix_regression.wizards.test_command_line_rosetta_iter: multi-cycle mr_rosetta tests
phenix_regression.wizards.test_command_line_rosetta_quick: quick mr_rosetta tests
phenix_regression.wizards.test_command_line_trace: tests of trace_chain
phenix_regression.wizards.test_commands_in_doc: Test Wizard commands in documentation
phenix_regression.wizards.test_help: Test Wizard help commands
phenix_regression.wizards.test_input_files: Test data files in Wizards
phenix_regression.wizards.test_labels: Test various label formats in Wizards
phenix_regression.wizards.test_map_to_object: Test map_to_object
phenix_regression.wizards.test_maps_only: Test making maps in wizards
phenix_regression.wizards.test_misc_methods: Test misc Wizard methods
phenix_regression.wizards.test_missing_data: Test Wizards with missing data
phenix_regression.wizards.test_mult: Test multiple-model autobuild
phenix_regression.wizards.test_multi: Test multi-crystal averaging
phenix_regression.wizards.test_ncs: Test NCS identification
phenix_regression.wizards.test_ncs_in_phenix_refine: Test using NCS in phenix.refine
phenix_regression.wizards.test_omit: Test omit maps
phenix_regression.wizards.test_omit_lig: Test omit maps with ligand
phenix_regression.wizards.test_residue_codes: Test residue names
phenix_regression.wizards.test_resno: Test rebuild_in_place residue numbers
phenix_regression.wizards.test_resolve: Run comprehensive solve/resolve tests
phenix_regression.wizards.test_short_seq: Test Wizards with short sequence
== Tips and Tricks ==
1) To check the syntax of a Phenix parameter file (for any program, not just phenix.refine), you
can run this command (replacing params.eff with the file of interest):
libtbx.phil params.eff
If it works, it will just print out the parameters - if not, the error message should give some indication where the error occurred.
2) To check the proper functioning of a Phenix program, e.g. phenix.auto_sharpen, with Phenix's regression tests, type this on the command line:
phenix_regression.list auto_sharpen
This will then list the command(s) that you can run on your computer to test
phenix.auto_sharpen. On Tom Terwilliger's computer the output looks like:
libtbx.python "/net/anaconda/raid1/terwill/misc/PHENIX/modules/phenix_regression/segment_and_split_map/"
Copy and paste the line with the regression test you are interested in, and make sure that it runs and
ends with "OK". (For phenix.refine, there are >300 regression tests!)
== Installation from source, and of Rosetta interface ==
A handy tip: to check Phenix can be installed from a ''binary'' installer. Despite this designation, it has the syntax of a Phenix parameter file (source files for any programre-compilation. However, re-compilation is normally not just phenixrequired, and requires to specify the --source option to the .refine), youcan run this /install command (replacing params.eff with the file of interest):
[ phenix.rosetta_refine] (and [ phenix.mr_rosetta]) requires a working Rosetta installation. The easiest way is to download one of the weekly binary+source Rosetta bundles (to be found following this [ link]). The tar-file only has to be unpacked; binaries and libraries are pre-compiled. Your .bashrc has to be modified to have e.g. libtbxexport PHENIX_ROSETTA_PATH=/usr/local/src/rosetta_src_2017.08.59291_bundle(or similarly for .cshrc) and rosetta.build_phenix_interface nproc=2needs to be run; the latter step takes hours when doing it for the first time.phil params(According to the docs, this is only needed for rosetta_refine.eff)
If it worksthis fails (for example, it will just print out the parameters compiler error messages), then one must re-compile Phenix and/or Rosetta. Try to re-compile only Phenix first (and after that, try rosetta.build_phenix_interface again); Rosetta re-compilation may take hours. There are several issues associated with re- compilation:* if the Phenix binary installer is notused: the Phenix source installer requires (on Fedora and RHEL) the openssl-devel, libXt-devel, libtiff, libtiff-devel and bzip2-devel RPM to be installed on the error message should give some indication where system* to re-compile Rosetta: go to the error occurredmain/source directory and issue: phenix.python bin mode=release extras=python -j 2
== See also ==

Navigation menu