The sample input files in this tutorial can be found in the examples/automodel directory of the MODELLER distribution.
There are three kinds of input files: Protein Data Bank atom files with coordinates for the template structures, the alignment file with the alignment of the template structures with the target sequence, and MODELLER commands in a script file that instruct MODELLER what to do.
Each atom file is named code.atm where code is a short protein code, preferably the PDB code; for example, Peptococcus aerogenes ferredoxin would be in a file 1fdx.atm. If you wish, you can also use file extensions .pdb and .ent instead of .atm. The code must be used as that protein's identifier throughout the modeling.
One of the formats for the alignment file is related to the PIR database format; this is the preferred format for comparative modeling:
C; A sample alignment in the PIR format; used in tutorial >P1;5fd1 structureX:5fd1:1 :A:106 :A:ferredoxin:Azotobacter vinelandii: 1.90: 0.19 AFVVTDNCIKCKYTDCVEVCPVDCFYEGPNFLVIHPDECIDCALCEPECPAQAIFSEDEVPEDMQEFIQLNAELA EVWPNITEKKDPLPDAEDWDGVKGKLQHLER* >P1;1fdx sequence:1fdx:1 : :54 : :ferredoxin:Peptococcus aerogenes: 2.00:-1.00 AYVINDSC--IACGACKPECPVNIIQGS--IYAIDADSCIDCGSCASVCPVGAPNPED----------------- -------------------------------*
See Section B.1 for a detailed description of the alignment file format. Influence of the alignment on the quality of the model cannot be overemphasized. To obtain the best possible model, it is important to understand how the alignment is used by MODELLER[Š ali & Blundell, 1993]. In outline, for the aligned regions, MODELLER tries to derive a 3D model for the target sequence that is as close to one or the other of the template structures as possible while also satisfying stereochemical restraints (e.g., bond lengths, angles, non-bonded atom contacts, ...); the inserted regions, which do not have any equivalent segments in any of the templates, are modeled in the context of the whole molecule, but using their sequence alone. This way of deriving a model means that whenever a user aligns a target residue with a template residue, he tells MODELLER to treat the aligned residues as structurally equivalent. Command alignment.check() can be used to find some trivial alignment mistakes.
MODELLER is a command-line only tool, and has no graphical user interface; instead, you must provide it with a script file containing MODELLER commands. This is an ordinary Python script.
If you are not familiar with Python, you can simply adapt one of the many examples in the examples directory, or look at the code for the classes used by MODELLER itself, in the modlib/modeller directory. Finally, there are many resources for learning Python itself, such as a comprehensive tutorial at http://www.python.org/doc/2.3.5/tut/.
A sample script file model-default.py to produce one model of sequence 1fdx from the known structure of 5fd1 and from the alignment between the two sequences is
# Homology 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 # directories for input atom files env.io.atom_files_directory = ['.', '../atom_files'] a = automodel(env, alnfile = 'alignment.ali', # alignment filename knowns = '5fd1', # codes of the templates sequence = '1fdx') # code of the target a.starting_model= 1 # index of the first model a.ending_model = 1 # index of the last model # (determines how many models to calculate) a.make() # do the actual homology modeling
See Chapter 2 for more information about the automodel class, and a more detailed explanation of what this script does.