Hi,
I generated a model with all hydrogens using allhmodel.
Now I want to refine a loop in this model using the script below.
However, the hydrogens are being removed in the generated models.
Would you help me?
from modeller import *
from modeller.automodel import *
log.verbose()
env = environ()
env.io.atom_files_directory = ['.', '../atom_files']
# Read in HETATM records from template PDBs
env.io.hetatm = True
env.io.water = True
env.io.hydrogen = True
# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms
class MyLoop(loopmodel):
# This routine picks the residues to be refined by loop modeling
def select_loop_atoms(self):
# Two residue ranges (both will be refined simultaneously)
return selection(self.residue_range('399:', '406:'))
m = MyLoop(env, inimodel='Model172.pdb', sequence='protein', loop_assess_methods=(assess.DOPE, assess.GA341))
m.loop.starting_model= 1 # index of the first loop model
m.loop.ending_model = 200 # index of the last loop model
m.loop.md_level = refine.very_fast # loop refinement method
m.make()
# Get a list of all successfully built models from m.loop.outputs
ok_models = filter(lambda x: x['failure'] is None, m.loop.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 1: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[1]
print "Top model 2: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[2]
print "Top model 3: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[3]
print "Top model 4: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[4]
print "Top model 5: %s (DOPE score %.3f)" % (m['name'], m[key])
------------------------------------- Flavio Augusto Vicente Seixas Laboratory of Structural Biochemistry Department of Biochemistry Universidade Estadual de Maringá, PR, Brazil http://www.uem.br