phenix_logo
Python-based Hierarchical ENvironment for Integrated Xtallography
Documentation Home
 

eLBOW - electronic Ligand Builder and Optimisation Workbench

Author
Purpose
Examples
Using SMILES string from internal database
PDB input
SMILES input
Other input
Geometry optimisation
Hydrogen addition
Output
Additional programs
Literature
Additional information
Novice options
Expert options

electronic Ligand Builder and Optimisation Workbench (eLBOW)

More detailed website

Author

Nigel W. Moriarty

Purpose

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)
  • TRIPOS MOL2
  • 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 = builder.run("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.

    Examples

    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"
    
    or
    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
    

    Output

    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

    Option

    Default & choices

    Description of inputs and uses

    --version

    None

    show program's version number and exit

    --help

    None

    show this help message and exit

    --long-help

    None

    show even more help and exit

    --smiles

    ""

    use the passed SMILES

    --file

    ""

    use file for chemical input

    --msd

    False

    get SMILES using MSDChem code

    --key

    ""

    use SMILES from smilesDB for chemical input

    --keys

    False

    display smiles DB

    --chemical-component

    None

    build ligand from chemical components (PDB)

    --pipe

    False

    read input from standard in

    --residue

    ""

    use only this residue from the PDB file

    --chain

    ""

    use only this chain from the PDB file

    --all-residues

    None

    retain all residues in a PDB file

    --name

    ""

    name of ligand to be used in various output files

    --sequence

    ""

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

    --read-only

    None

    read the input but don't do any processing

    --opt

    False

    use the best optimisation method available (currently AM1)

    --template

    ""

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

    --mopac

    False

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

    --gamess

    False

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

    --qchem

    False

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

    --gaussian

    False

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

    --final-geometry

    None

    use this file to obtain final geometry

    --initial-geometry

    None

    use this file to obtain the intital geometry for QM

    --energy-validation

    None

    calculate the difference between starting and final energies

    --restart

    False

    restart the optimisation with lowest previous geometry

    --opt-steps

    60, "positive integer"

    optimisation steps (currently for ELBOW opt only)

    --opt-tol

    default, loose, tight

    optimisation tolerance = loose, default or tight

    --chiral

    retain

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

    --ignore-chiral

    None

    ignore the chirality in the SMILES string

    --skip-cif-molecule

    None

    ignore ligands in supplied CIF file(s)

    --memory

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

    maximum memory mostly for quantum method

    --method

    "AM1"

    run QM optimisation with this method, if possible

    --basis

    "AM1"

    run QM with this basis, if possible

    --aux-basis

    None

    run QM with this auxiliary basis, if possible

    --random-seed

    None

    random number seed

    --quiet

    False

    less print out

    --silent

    False

    almost complete silence

    --view

    False

    viewing software command

    --reel

    False

    fire up restraints editor

    --pymol

    False

    use PyMOL from the PHENIX install to view geometries

    --overwrite

    False

    clobber any existing output files

    --bonding

    False

    file that specifies the bond of the input molecule

    --id

    "LIG"

    three letter code used in the CIF output

    --xyz

    False

    output is also written in XYZ format

    --tripos

    False

    output is also written in TRIPOS format

    --sdf

    False

    output is also written in SDF format

    --pdb-ligand

    None

    output is also written in PDB ligand format

    --output

    "algorithm determination"

    name for output files

    --pickle

    False

    use a pickle file to reload the topological information

    --do-all

    None

    process all molecules in a PDB, TRIPOS or SDF file

    --clean

    False

    DELETES "unnecessary" output files (dangerous)

    --pdb-assign

    ""

    set the atom attributes in the PDB file

    --heme

    None

    attempt to match HEME groups (experimental)

    --add-hydrogens

    "algorithm determination", True, False

    override the automatic hydrogen addition

    Expert options

    Option

    Default & choices

    Description of inputs and uses

    --newton-raphson

    None

    use Newton-Raphson optimisation

    --gdiis

    False

    use GDIIS optimisation

    --quicca

    False

    use QUICCA optimisation

    --user-opt

    None

    use user defined for quantum chemistry calculations

    --user-opt-input-filename

    ""

    input filename

    --user-opt-xyz2input

    ""

    converts xyz file to QM program input

    --user-opt-xyz-filename

    ""

    xyz filename

    --user-opt-script-filename

    ""

    run script filename

    --user-opt-program

    ""

    QM optimisation program run script or program invocation command

    --user-opt-output-filename

    ""

    output filename

    --user-opt-output2xyz

    ""

    converts QM program output to xyz file

    --write-hydrogens

    True, False

    override the automatic writing of hydrogens to PDB and CIF files

    --auto-bond-cutoff

    2.0, "float between 0.5 and 3"

    set the max bondlength for auto bond detection

    --write-redundant-dihedrals

    None

    control the writing of redundant dihedrals