Normally, automodel generates an initial model by transferring coordinates from the templates. However, if you have a prepared PDB file containing an initial model, you can have automodel use this instead with the inifile keyword, as in the example below. (This automatically sets automodel.generate_method to generate.read_xyz for you, which is necessary for this to work.) This can be useful if the default initial model (.ini file) is so bad that the optimizer cannot efficiently optimize it.
Note that when the initial model file is read, the range of residues to read from the PDB file is taken from the alignment file header for the sequence. Therefore, you should set that range accordingly (in the example below, the header for the 1fdx sequence alignment.ali is set to instruct MODELLER to read residues 1 through 54 from a chain with no ID).
# Modeling using a provided initial structure file (inifile) from modeller import * from modeller.automodel import * # Load the automodel class log.verbose() env = environ() # 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 inifile = 'my-initial.pdb') # use 'my' initial structure 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 homology modeling