Homology Modelling that includes ligands

Modeller is a widely known tool for Homology Modelling. Elaborate documentation can be found on this site. In brief, you need three files to run Modeller:

  • template structure (or structures) in PDB format. This file must have .pdb, .ent or .atm extension

  • target to template alignment in PIR format

  • modelling script - Python .py file, say my_modeller_script.py (name of that file is not important)

Template selectionand target-to-template alignment

A convenient possibility to obtain target to template alignment is to use HHPred web server, which searches for the best templates and provides the respective alignment in the PIR format. Moreover, you can run modeller directly on the HHPred website. The server however allows only for a very simple usage.

Here we used a local version of modeller program that allowed us to take into account a cofactor molecule (heme) and a ligand during the model building process. This requires manual editing a .pir file. An example alignment file is given below:

>P1;00040
sequence:00040:1    :A:555  :A::::
MSAIIPQVQQLLGQVAQFIPPWFAALPTSVKVVIAVIGIPALVICLNVFQQLCLPRRKDLPPVVFHYIPWFGSAAYYGEDPYKFLF
ECRDKYGDLFTFILMGRRVTVALGPKGNNLSLGGKISQVSAEEAYTHLTTPVFGKGVVYDCPNEMLMQQKKFIKSGLTTESLQSYP
PMITSECEDFFTKEVGISP-QKPSATLDLLKSMSELIILTASRTLQGKEVRESLNGQFAKYYEDLDGGFTPLNFMFPNLPLPSYKR
RDEAQKAMSDFYLKIMENRRKGESDHEHDMIENLQSCKYRNG-VPLSDRDIAHIMIALLMAGQHTSSATSSWTLLHLADRPDVVEA
LYQEQKQKLGNPDGTFRDYKYEDLKELPIMDSIIRETLRMHAPIHSIYRKVLSDIPVPPSLSAPSENGQ--YIIPKGHYIMAAPGV
SQMDPRIWQDAKVWNPARWHDEKGFAAAAMAQYSKAEQVDYGFGSVSKGTESPYQPFGAGRHRCVGEQFAYTQLSTIFTYVVRNFT
LKLA--VPKFPETNYRTMIVQPNNPLVTFTLRNAEVK/..*
>P1;4LXJ
structure:4LXJ: :A: :A::Saccharomyces cerevisiae:1.9:
-----SIVGEALEYVNIGLSHFLAL----PLAQRISLIIIIPFIYNIVWQLLYSLRKDRPPLVFYW-IPWVGSAVVYGMKPYEFFE
ECQKKYGDIFSFVLLGRVMTVYLGPKGHEFVFNAKLADVSAEAAYAHLTTPVFGKGVIYDCPNSRLMEQKKFVKGALTKEAFKSYV
PLIAEEVYKYFRDSKNFRLNERTTGTIDVMVTQPEMTIFTASRSLLGKEMRAKLDTDFAYLYSDLDKGFTPINFVFPNLPLEHYRK
RDHAQKAISGTYMSLIKERRKNNDIQDRDLIDSLMKNSTYKDGVKMTDQEIANLLIGVLMGGQHTSAATSAWILLHLAERPDVQQE
LYEEQMRVLDGGK---KELTYDLLQEMPLLNQTIKETLRMHHPLHSLFRKVMKDMHV----------PNTSYVIPAGYHVLVSPGY
THLRDEYFPNAHQFNIHRWNNDSA------SSYSVGEEVDYGFGAISKGVSSPYLPFGGGRHRCIGEHFAYCQLGVLMSIFIRTLK
WHYPEGKTVPPPDFTSMVTLPTGPAKIIWEKRNPEQK/..*

Note, that:

  • There must be exactly one sequence entry in the .pir file as well as at least one structure entry.

  • The header of the sequence entry provides residue range for that sequence (residues from 1 to 555).

  • In the case of structure, the sequence range is not specified explicitely. The respective fields are left blank and Modeller will guess them from the PDB coordinates.

  • Unlike the FASTA format, sequences ends with ‘*’ character

  • The /.. character at the very end of each sequence denote a chain break (/ character) and two ligand residues (each of them represented as ‘.’). The template structure must contain exactly two small molecules, i.e. haem and ligand (Lanosterol in this case). All other residues (e.g. SO4, HOH, etc.) should be removed from each tempalate PDB file.

Modelling script

The last file is the Python script that runs the modelling calculations. You can adapt a script found in the Modelling tutorial. Here we use the following:

# Comparative modeling by the automodel class
from modeller import *              # Load standard Modeller classes
from modeller.automodel import *    # Load the automodel class

log.verbose()    # request verbose output
env = environ()  # create a new MODELLER environment to build this model in
env.io.hetatm = True

# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']

a = automodel(env,
              alnfile  = '00040-4lxj.pir',     # alignment filename
              knowns   = '4LXJ',               # codes of the templates
              sequence = '00040')              # code of the target
a.starting_model= 1                 # index of the first model
a.ending_model  = 10                # index of the last model
                                    # (determines how many models to calculate)
a.make()                            # do the actual comparative modeling

Note, that:

  • 4LXJ.pdb file must exist in the currend directory.

  • 00040-4lxj.pir is the name of the alignment file.

  • knowns variable definesd the temaplte PDB codes

Running Modeller

Once the three files are ready, execute the following command:

mod9.22 my_modeller_script.py

It assumes you have Modeller version 9.22 installed.