Python-based Hierarchical ENvironment for Integrated Xtallography
Documentation Home

eLBOW - electronic Ligand Builder and Optimisation Workbench

Using SMILES string from internal database
PDB input
SMILES input
Other input
Geometry optimisation
Hydrogen addition
Additional programs
Additional information
Novice options
Expert options

electronic Ligand Builder and Optimisation Workbench (eLBOW)

More detailed website


Nigel W. Moriarty


Automate the generation of geometry restraint information for refinement of novel ligands and improved geometry restraint information for standard ligands. A protein crystal can contain more than just protein and other simple molecules that most refinement programs can interpret. An unusual molecule can be included in the refinement via eLBOW from a number of chemical inputs. The geometry can be optimised using various levels of chemical knowledge including a semi-empirical quantum mechanical method known as AM1.

Input formats include

  • SMILES string
  • PDB (Protein Data Bank)
  • MolFiles (V2000, V3000 and SDFiles)
  • XYZ
  • certain CIF files
  • GAMESS input and output files
  • Output formats include

  • PDB (Protein Data Bank)
  • CIF restraint file
  • eLBOW contains a number of programs. All programs have been written to allow command-line control and script access to the objects and algorithm. The main program is run thus:
    phenix.elbow [options] input_file.ext
    or in a Python script
    from elbow.command_line import builder
    molecule ="input_file.ext", **kwds)
    where the options are passed as a dictionary. The return object can be interrogated for information via the class methods. Output files from both techniques include a PDB file of the final geometry and a CIF file that contains the geometry restraint information for refinement. Other files are output as appropriate, such as edits and CIF files for linking the ligand to the protein. A final file contains the serialised data of the molecule in the Python pickle format.


    Using SMILES string from internal database

    To run eLBOW on an internal SMILES string

    phenix.elbow --key=ATP [options]

    PDB input

    To run eLBOW on a PDB file (containing one molecule)

    phenix.elbow input_file.pdb
    To run eLBOW on a PDB file containing protein and ligands. This will only process the ligands that are unknown to phenix.refine.
    phenix.elbow input_file.pdb --do-all
    To run eLBOW on a PDB file specifying a residue
    phenix.elbow input_file.pdb --residue LIG
    To use the atom names from a PDB file
    phenix.elbow --smiles O --template input_file.pdb

    SMILES input

    To run eLBOW on a SMILES string

    phenix.elbow --smiles="CCO"
    phenix.elbow --smiles=input_file.smi

    Other input

    To run eLBOW on other supported input formats

    phenix.elbow input_file.ext

    Geometry optimisation

    eLBOW performs a simple force-field geometry optimisation by default, however an AM1 geometry optimisation can be performed as follows.

    phenix.elbow input_file.pdb --opt
    To start from a specific geometry for the optimisation
    phenix.elbow --initial_geometry input_file.pdb --opt
    To use a separately installed GAMESS and do a HF/3-21G geometry optimisation
    phenix.elbow input_file.pdb --gamess --basis="3-21G"
    To not optimise, but use the input geometry as the final geometry
    phenix.elbow --final_geometry input_file.pdb

    Hydrogen addition

    eLBOW automatically adds hydrogens to the input molecules if there are less than a quarter of the possible hydrogens. This can be controlled using

    phenix.elbow input_file.pdb --add-hydrogens=True
    A common requirement is to add hydrogens to a ligand but retain the geometry and position relative to a protein. To do so use
    phenix.elbow --final-geometry=input_file.pdb


    To choice the base name of the output files

    phenix.elbow input_file.pdb --output="output"
    To change the three letter ID
    phenix.elbow input_file.pdb --id=NEW
    To change other attributes
    phenix.elbow input_file.pdb --pdb-assign "resSeq=3 b=100"
    Some of the attributes.
  • Residue name : resname
  • Chain ID : chain, chainid
  • Residue sequence ID : resseq, resid
  • Alternative location ID : altid, altloc
  • Insert code : icode
  • Occupancy : occ, occupancy
  • Temperature factor : b, tempfactor
  • Segment ID : segid, segID
  • To output MOL2 format

    phenix.elbow input_file.pdb --tripos
    To output PDB Ligand output
    phenix.elbow input_file.pdb --pdb-ligand

    Additional programs

  • phenix.get_smiles
  • phenix.get_pdb
  • phenix.metal_coordination : Generate edits for metal coordination
  • phenix.link_edits : Generate edits from PDB LINK records
  • phenix.print_sequence
  • elbow.become_expert
  • elbow.become_novice
  • elbow.compare_two_molecules
  • elbow.join_cif_files
  • elbow.join_pdb_files
  • elbow.join_mol2_files
  • elbow.check_residues_against_monomer_lib
  • elbow.defaults : Generate a eLBOW defaults file
  • Literature

    Moriarty NW, Grosse-Kunstleve RW, Adams PD: electronic Ligand Builder and Optimization Workbench (eLBOW): a tool for ligand coordinate and restraint generation. Acta Cryst. 2009, D65:1074-1080.

    Additional information

    Novice options


    Default & choices

    Description of inputs and uses



    show program's version number and exit



    show this help message and exit



    show even more help and exit



    use the passed SMILES



    use file for chemical input



    get SMILES using MSDChem code



    use SMILES from smilesDB for chemical input



    display smiles DB



    build ligand from chemical components (PDB)



    read input from standard in



    use only this residue from the PDB file



    use only this chain from the PDB file



    retain all residues in a PDB file



    name of ligand to be used in various output files



    use sequence (limited to 20 residues and no semi-empirical optimisation)



    read the input but don't do any processing



    use the best optimisation method available (currently AM1)



    use file for naming of atoms e.g. PDB file



    use MOPAC for quantum chemistry calculations (requires MOPAC be installed)



    use GAMESS for quantum chemistry calculations (requires GAMESS be installed)



    use QChem for quantum chemistry calculations (requires QChem be installed)



    use Gaussian for quantum chemistry calculations (requires Gaussian be installed)



    use this file to obtain final geometry



    use this file to obtain the intital geometry for QM



    calculate the difference between starting and final energies



    restart the optimisation with lowest previous geometry


    60, "positive integer"

    optimisation steps (currently for ELBOW opt only)


    default, loose, tight

    optimisation tolerance = loose, default or tight



    treatment of chiral centres = retain (default), both, enumerate



    ignore the chirality in the SMILES string



    ignore ligands in supplied CIF file(s)


    1Gb, "positive integer", "n Gb", "n Mb"

    maximum memory mostly for quantum method



    run QM optimisation with this method, if possible



    run QM with this basis, if possible



    run QM with this auxiliary basis, if possible



    random number seed



    less print out



    almost complete silence



    viewing software command



    fire up restraints editor



    use PyMOL from the PHENIX install to view geometries



    clobber any existing output files



    file that specifies the bond of the input molecule



    three letter code used in the CIF output



    output is also written in XYZ format



    output is also written in TRIPOS format



    output is also written in SDF format



    output is also written in PDB ligand format


    "algorithm determination"

    name for output files



    use a pickle file to reload the topological information



    process all molecules in a PDB, TRIPOS or SDF file



    DELETES "unnecessary" output files (dangerous)



    set the atom attributes in the PDB file



    attempt to match HEME groups (experimental)


    "algorithm determination", True, False

    override the automatic hydrogen addition

    Expert options


    Default & choices

    Description of inputs and uses



    use Newton-Raphson optimisation



    use GDIIS optimisation



    use QUICCA optimisation



    use user defined for quantum chemistry calculations



    input filename



    converts xyz file to QM program input



    xyz filename



    run script filename



    QM optimisation program run script or program invocation command



    output filename



    converts QM program output to xyz file


    True, False

    override the automatic writing of hydrogens to PDB and CIF files


    2.0, "float between 0.5 and 3"

    set the max bondlength for auto bond detection



    control the writing of redundant dihedrals