Tutorial: Generating ligand coordinates and restraints for structure refinement


This tutorial will demonstrate how to perform a structure refinement including a ligand.


You can create a subdirectory, 'elbow_tutorial', and copy the files required for this tutorial using the command:


When do we need restraints for a ligand?

A structure refinement requires that all atoms have energy types associated and ideally restraints to guide the geometry optimisation. PHENIX refinement uses a monomer library to resolve some ligands but not all. Running on a structure containing an unknown ligand:

phenix.refine 1utn.pdb 1utn.mtz

results in the following error message.

Number of atoms with unknown nonbonded energy type symbols: 16
  " N   ABN A 246 "
  " C   ABN A 246 "
  " C1  ABN A 246 "
  " C2  ABN A 246 "
  " C3  ABN A 246 "
  " C4  ABN A 246 "
  " C5  ABN A 246 "
  " C6  ABN A 246 "
  " N   ABN A 247 "
  " C   ABN A 247 "
  ... (remaining 6 not shown)

Generating ligand restraints using PDB file

Clearly, we need to generate restraints for the ligand ABN which is in the PDB file. We commence by using the following command:

phenix.elbow 1utn.pdb

which prints out a list of the HETATM molecules in the PDB file.

 Running eLBOW in expert mode
   Defaults changed by /net/cci/nigel/.elbow/elbow_defaults.py
        xyz        : True   (--no-xyz to reverse)
        overwrite  : True   (--no-overwrite to reverse)
 Random number seed:  578305348
 0:00 Parsing Parsing Parsing Parsing Parsing Parsing Parsing Parsing Parsing P

Input format is PDB

MoleculeClass :  C:11  N: 2  O: 3 (PDB format)
        16 atoms
        15 bonds
        0 angles
        0 dihedrals

  Multiple residue names
    resSeq resName #atoms  type
    246    'ABN'       8  HETATM
    256    'TRS'       8  HETATM

      Use --residue to specify residue

  Use --do-all to process all residues not in internal library

As the print out says, all of the residues not in the internal library can be processed using

phenix.elbow 1utn.pdb --do-all

Because the residue TRS is in the internal library, only ABN is processed. The resulting files are elbow.ADB.1utn_pdb.cif and elbow.ABN.1utn_pdb.pdb. After checking the geometry in the PDB file, we repeat the calculation using the --opt to optimise the geometry using the semi-empirical AM1 method, thus:

phenix.elbow 1utn.pdb --do-all

The resulting file, elbow.1utn_pdb.all.cif, is ready for use with phenix.refine.

Generating ligand restraints using SMILES

To demonstrate the use of a SMILES string, we can get the SMILES string for ABN from the MSDChem website. We can now run using the SMILES string:

phenix.elbow --smiles "NCc1ccccc1"

The resulting output, elbow.cif and elbow.pdb, have the default residue name, LIG, and atom names. In order to match the atoms in the refinement, we can use the PDB to obtain the atom names via the --template option and the --residue option:

phenix.elbow --smiles "NCc1ccccc1" --template 1utn.pdb --residue ABN --opt

The resulting output files have the AM1 optimised geometry (--opt), the atom names from the PDB file and the correct connectivity from the SMILES string.

Metal coordination

Conviently, the LINK records were contained in the PDB file used in this example. More likely, the linking information is not available. The "edits" can be obtained using:

phenix.metal_coordination 1utn.pdb

The "edits" are written to elbow.edits and contain both bond and angle "edits".

Putting it all together

We can put all the files together to perform a refinement. Adding the option --dry-run reads the data. Remove to perform complete refinement.

phenix.refine 1utn.mtz 1utn.pdb elbow.1utn_pdb.all.cif 1utn_pdb.edits --dry-run