Python-based Hierarchical ENvironment for Integrated Xtallography |
Documentation Home |
Tutorial 10: Generating ligand coordinates and restraints for structure refinement
IntroductionThis tutorial will demonstrate how to perform a structure refinement including a ligand. SetupYou can create a subdirectory, 'elbow_tutorial', and copy the files required for this tutorial using the command: elbow.setup_tutorial 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.mtzresults 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 fileClearly, 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.pdbwhich 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 libraryAs the print out says, all of the residues not in the internal library can be processed using phenix.elbow 1utn.pdb --do-allBecause 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-allThe resulting file, elbow.1utn_pdb.all.cif, is ready for use with phenix.refine. Generating ligand restraints using SMILESTo 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 --optThe resulting output files have the AM1 optimised geometry (--opt), the atom names from the PDB file and the correct connectivity from the SMILES string. Generating link editsThe input PDB file, 1utn.pdb, has a number of LINK records. These can be converted to "edits" for input into phenix.refine. The LINK records: LINK CA CA A6000 OE1 GLU A 70 1555 1555 LINK CA CA A6000 O ASN A 72 1555 1555 LINK CA CA A6000 O VAL A 75 1555 1555 LINK CA CA A6000 O HOH Z 89 1555 1555 LINK CA CA A6000 O HOH Z 104 1555 1555 LINK CA CA A6000 OE2 GLU A 80 1555 1555Running: phenix.link_edits 1utn.pdbresults in the "edits" being written to 1utn_pdb.edits. THe "edits" are a one-to-one correspondence of the LINK records and a bond "edit". Metal coordinationConviently, 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.pdbThe "edits" are written to elbow.edits and contain both bond and angle "edits". Putting it all togetherWe 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 |