[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] A problem for using loop models: the metal ions came together too close


Yesterday I wanted to build a metalloprotease which had 4 metal ions (my modeller version is 9v4). Due to the low similarity with the templates, some loops emerged in the resulting models. Althought GA341 scores ==1 and DOPE score are ≈-30119,when I checked them with Procheck and Errat, the stereochemical quality and overall  quality factor were somewhat poor. So I decided to try the loop modelling and loop optimization to improve the models since no
better templates could be found. The script was below:

# 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'
# Read in HETATM records from template PDBs
env.io.hetatm = True
a = loopmodel(env,
              alnfile  = 'MPD.ali',     # alignment filename
              knowns   = ('a','b','c','d','e'),              #
              sequence = 'MPD', assess_methods=(assess.DOPE, assess.GA341))             

a.starting_model= 1                  # index of the first model
a.ending_model  = 10                 # index of the last model
# Very thorough VTFM optimization:
a.library_schedule = autosched.slow
a.max_var_iterations = 300

# Thorough MD optimization:
a.md_level = refine.slow

a.loop.starting_model = 1        # First loop model
a.loop.ending_model = 4          # Last loop model
a.loop.md_level = refine.fast    # Loop model refinement level

# Repeat the whole cycle 2 times and do not stop unless obj.func. > 1E6
a.repeat_optimization = 3
a.max_molpdf = 1e6

# Get a list of all successfully built models from a.outputs
ok_models = filter(lambda x: x['failure'] is None, a.outputs)

# Rank the models by DOPE score
key = 'DOPE score'
ok_models.sort(lambda a,b: cmp(a[key], b[key]))

# Get top model
m = ok_models[0]
print "Top model: %s (DOPE score %.3f)" % (m['name'], m[key])

After running again I found that althought in some models the
overall  quality factor did increase, in all of them the metal ions were almost merged. Their coordinates were taken too close together. So I was wondering was it because the resid for ions were numbered after the protein residues (in my model the resid for ions were 312, 313, 314 and 315) and loop modelling tended to put them together? If so how should I modify the script and multiple alignment file ( in multiple alignment file for the target the initial and final residues must be designated, like "sequence:MPD:1    : :311   : ::: :", if I hope to redefine the resids for ions, some change may also be required in this file) ? Thank you very much for any help.

Best wishes,

The future is now!