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

[modeller_usage] Restraining structure to Alpha



I'm making a model which is supposed to contain an alpha helix in residues 26-46. I can do this with a top command file, by modifying the special_restraints subroutine in __special.top:
SUBROUTINE ROUTINE = 'special_restraints'
#This one is to adjust helices in fxyd proteins
#    SET ADD_RESTRAINTS = on
#    MAKE_RESTRAINTS RESTRAINT_TYPE = 'alpha', RESIDUE_IDS = '14' '17'
 RETURN
END_SUBROUTINE

This works with the following alignment file, and gives me the uninterrupted helix I want.
>P1;gamma
structureX:gamma:FIRST:@:LAST : :undefined:undefined:-1.00:-1.00
MTGLSMDGGGSPKGDVDPFYYDYETVRNGGL------IFAGLAFIVGLLILLSRRFRCGGNKKRRQINEDEP*
>P1;gamma1
structureX:gamma1:FIRST:@:LAST : :undefined:undefined:-1.00:-1.00
MTGLSMDGGGSPKGDVDPFYYDYET------VRNGGLIFAGLAFIVGLLILLSRRFRCGGNKKRRQINEDEP*

When I use the same alignment file with a python routine copied from the FAQ, it runs fine but it doesn't apply the restraint! I'd like to use the new python command system for this kind of restraint, because the restraints are directly in the command file and not off in __special.top, but I can't make it work. Here is the python file I used:

# comparative modeling of gamma
from modeller.automodel import *    # Load the automodel class

#This one is to set the entire TM to a helix in gamma
class mymodel(automodel):
   def special_restraints(self, aln):
       rsr = self.restraints
       rsr.make(aln, restraint_type='ALPHA',residue_ids=('26','46'))
log.very_verbose() # request verbose output
env = environ()  # create a new MODELLER environment to build this model in
env.io.hetatm = True

a = automodel(env,
             alnfile  = 'gamma.ali',     # alignment filename
             knowns   = 'gamma',              # codes of the templates
             sequence = 'gamma1')              # 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 modelling

Thanks for your attention.
John Penniston