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

[modeller_usage] using Modeller for building models using contacts and secondary structures



Hello,

I used Modeller to reconstruct around a 100 proteins with true residue-residue contacts and secondary structure information. I could reconstruct only a few proteins with high accuracy. Below is a sample script I used for Modelling. I did not use any templates. (I found that Modeller satisfies more contact restraints when I provided a template with just one residue’s coordinates instead of an extended structure as a template.) I wonder why Modeller could not satisfy true contact restraints. Is there any specific way to reconstruct proteins using true residue contacts? 

My PY files and PIR files look like this:

from modeller import *
from modeller.automodel import *
log.verbose()
env = environ()
env.io.atom_files_directory = ['.']
class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        at = self.atoms
        # Helices and Strands
        rsr.add(secondary_structure.strand(self.residue_range('3:', '11:')))
        rsr.add(secondary_structure.strand(self.residue_range('16:', '26:')))
        rsr.add(secondary_structure.alpha(self.residue_range('126:', '140:')))
        # Contacts:
        rsr.add(forms.upper_bound(group=physical.xy_distance,feature=features.distance(at['CA:9'], at['CA:18']),mean=8.0, stdev=0.1))
        rsr.add(forms.upper_bound(group=physical.xy_distance,feature=features.distance(at['CB:3'], at['CB:24']),mean=8.0, stdev=0.1))
        rsr.add(forms.upper_bound(group=physical.xy_distance,feature=features.distance(at['CB:5'], at['CB:22']),mean=8.0, stdev=0.1))
        rsr.add(forms.upper_bound(group=physical.xy_distance,feature=features.distance(at['CB:122'], at['CB:132']),mean=8.0, stdev=0.1))
a = MyModel(env,
            alnfile  = '1f21.pir', # alignment filename
            knowns   = 'empty',   # codes of the templates
            sequence = '1f21')     # code of the target
a.starting_model= 1                
a.ending_model  = 20               
a.make()                           

C;
>P1;empty
structureX:empty: 1: : 152: : : :1.0:
K-------------------------------------------------------------------------------------------------------------------------------------------------------*

C;
>P1;1f21
 : : : : : : : : :
KQVEIFTDGSALGNPGPGGYGAILRYRGREKTFSAGYTRTTNNRMELMAAIVALEALKEHAEVILSTDSQYVRQGITQWIHNWKKRGWKTADKKPVKNVDLWQRLDAALGQHQIKWEWVKGHAGHPENERADELARAAAMNPTLEDTGYQVE*

Badri Adhikari
University of Missouri