Phenix ( is the most common program for protein crystallographic refinement.
It is available for free.

Phenix 1.20.1-4487 is installed on Aurora (Feb. 2022).
To run it, add the following lines to you .bash_profile file:

Phenix 1.14.3260 is installed on Aurora (Feb. 2019).
To run it, add the following lines to you .bash_profile file:
export PHENIX="/lunarc/nobackup/projects/bio/PHENIX/phenix-1.14-3260"
export PHENIX_VERSION=1.14-3260
. $PHENIX/build/

On Kebnekaise:
source /proj/nobackup/teobio/Bio/PHENIX/Phenix-19.1.1/phenix-1.19.1-4122/

You can easily install it on other computers.
On Macintosh, you typically need to issue something like
. /Applications/phenix-1.17.1-3660/
to get it running on command line.

Refinement with Phenix

  1. Open Phenix
  2. Refinement - phenix.refine
  3. Enter the pdb and mtz files
  4. Often, you also need a restraints file (in cif format)
    Is so, the program tells you so
    Then, you need to first run ReadySet (traffic-light symbol)
  5. Refinement settings
    Unclick xyz (real-space)
    Select Atoms
    Unclick Automatically correct N/Q/H errors

Neutron refinement

Ensemble refinement with Phenix

Octav - dec-19

  1. Start from a refined pdb file and structure factor
  2. In the parameters.def input
  3. Test various pTLS: 0.5–1.0 and select the one that gives the best R/Rfree
  4. Optional: test various wxray_coupled_tbath_offset, 2.0, 5.0, 10.0, select the one that gives the best R/Rfree
  5. Optional: select various tx – tx=1/dmin^2, can select 0.5*tx or 2*tx, usually not needed
  6. Optional: select ensemble_reduction = False if you want to keep all the structures in the ensemble
  7. Run phenix.ensemble_refinement parameters.def
    The output files are XX_final_ensemble.pdb and XX_final_ensemble.mtz

ComQum-X with Phenix-Amber interface

I have made some progress doing quantum refinement with Phenix, so I thought I would inform you what can be done with phenix.refine so far after some (small) changes to the code (basically I’m exploiting the Amber interface already present in phenix.refine).


To use the hacked version, on

$ source /lunarc/nobackup/projects/teobio/Kristoffer/phenix-dev/phenix-1.20.1-4487/


An initial model + structure factors are needed. If the structure is published you can use


$ phenix.fetch_pdb <PDB accession code> --mtz


to download the files needed.


To prepare the files for running refinement with Phenix and Amber:


$ phenix.AmberPrep <PDB file>


and pray (literally – neutron structures have so far proven difficult). If all goes well, four new files are generated:


4amber_<PDB accession code>.prmtop

4amber_<PDB accession code>.rst7

4amber_<PDB accession code>.order

4phenix_<PDB accession code>.pdb


as well as <PDB accession code>_uc.pdb (and possibly some other files if unusual ligands are parametrized).


To use Amber force fields instead of CDL, supply phenix.refine with the flag use_amber=True. This by default uses the ff14SB force field (and just MM).


To use QM/MM, qmmask=’’ can be supplied to phenix.refine, where between ‘’ should be a string identifying the residues in the QM system following ordinary Amber syntax (you will need to check the Amber manual how to prepare the mask). Per default PM6 is used for the QM system.


Now the interesting parts, I have added a few keywords:


qmatoms = ‘’, where the supplied string would be the atom numbering found in the file <PDB accession code>_uc.pdb file, comma separated (this can easily be changed into reading a file or similar). Currently explicit numbering is needed, i.e. no intervals (also very easy to change). The keywords qmmask and qmatoms are currently mutually exclusive; if both are supplied at the same time, MM will be used over QM/MM.


qmtheory = ‘’, which allows one to change which Hamiltonian is used. Default is PM6 if not supplied (check the Amber manual for supported Hamiltonians and which atom types they in turn can handle). Hopefully I can further exploit this part of the code by linking Amber towards QUICK, which would then allow higher level of theory for the QM system.


qmcut = <float>, specifies the cut-off for electrostatic interaction between QM and MM parts. For some reason this value needs to be rather low to avoid a sander bomb (which I think relates to the box size used by Amber). Defaulted to 4.0, which seems to work fine in terms of at least not crashing.


An example run could thus look something like


$ phenix.fetch_pdb 4Lzt

$ phenix.AmberPrep 4Lzt.pdb

$ phenix.refine 4phenix_4Lzt.pdb 4Lzt.mtz use_amber=True topology_file_name=4amber_4Lzt.prmtop coordinate_file_name=4amber_4Lzt.rst7 order_file_name=4amber_4Lzt.order refinement.input.xray_data.r_free_flags.generate=True qmatoms='371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381'


Kristoffer 16/2-22

Installation on Kebnekaise
  1. untar
  2. Run ./install --prefix=/proj/nobackup/teobio/Bio/PHENIX/Phenix-19.1.1
  3. It took ~1 h and gave very little output (no questions), but run smoothly.