Dear All,
Please, I cannot model a beta strand (predicted as such by PSI PRED) in a protein model, even adding further restraints. I think this depends on the fact that this region is not structured in the templates.
Please, any suggestions (see .py below)?
Many thanks.
Claudia
-------
# Homology modeling with multiple templates 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']
class MyModel(automodel): def special_restraints(self, aln): rsr = self.restraints at = self.atoms # unpick('1:', '73:') # condense('1:', '73:') # Add some restraints from a file: # rsr.append(file='my_rsrs1.rsr')
# Residues 49 through 55 should be an alpha helix: rsr.add(secondary_structure.alpha(self.residue_range('39:', '45:'))) # Two beta-strands: # rsr.add(secondary_structure.strand(self.residue_range('1:', '5:'))) # rsr.add(secondary_structure.strand(self.residue_range('19:', '26:'))) # rsr.add(secondary_structure.strand(self.residue_range('33:', '35:'))) # rsr.add(secondary_structure.strand(self.residue_range('55:', '58:'))) rsr.add(secondary_structure.strand(self.residue_range('68:', '72:'))) # An anti-parallel sheet composed of the two strands: # rsr.add(secondary_structure.sheet(at['N:1'], at['O:14'], # sheet_h_bonds=-5)) # Use the following instead for a *parallel* sheet: # rsr.add(secondary_structure.sheet(at['N:1'], at['O:9'], # sheet_h_bonds=5)) # Restrain the specified CA-CA distance to 10 angstroms (st. dev.=0.1) # Use a harmonic potential and X-Y distance group. # rsr.add(forms.gaussian(group=physical.xy_distance, # feature=features.distance(at['CA:35'], # at['CA:40']), # mean=10.0, stdev=0.1))
a = MyModel(env, alnfile = 'Alignment2.ali', # alignment filename knowns = ('pco','Tas','gen','Rap'), # codes of the templates sequence = 'sALK1') # code of the target a.starting_model= 1 # index of the first model a.ending_model = 10 # index of the last model # (determines how many models to calculate) a.make() # do the actual homology modeling
-- Claudia Scotti, MD PhD Department of Experimental Medicine University of Pavia Via Ferrata, 1 27100 Pavia Italy Tel. 0382 986335 Facs 0382 986893
Claudia Scotti Dipartimento di Medicina Sperimentale Sezione di Patologia Generale Universita' di Pavia Via Ferrata, 1 27100 Pavia Italia Tel. 0039 0382 986335/8/1 Facs 0039 0382 303673
Have you tried to leave this region of your target sequence unaligned? Modeller uses restraints derived from the templates and since this region is a coil in your templates the coil conformation will prevail over the strand. Also manually added secondary structure restraints tend to be weak. In my experience strands (especially those within sheets) that are coil-like in the crude homology model acquire secondary structure upon energy minimization with PyRosetta or YASARA ( http://www.yasara.org/minimizationserver.htm).
Thomas
On 9 March 2011 14:59, Claudia Scotti claudiascotti@hotmail.com wrote:
> Dear All, > > Please, I cannot model a beta strand (predicted as such by PSI PRED) in a > protein model, even adding further restraints. I think this > depends on the fact that this region is not structured in the templates. > > Please, any suggestions (see .py below)? > > Many thanks. > > Claudia > > ------- > > # Homology modeling with multiple templates > 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'] > > class MyModel(automodel): > def special_restraints(self, aln): > rsr = self.restraints > at = self.atoms > # unpick('1:', '73:') > # condense('1:', '73:') > # Add some restraints from a file: > # rsr.append(file='my_rsrs1.rsr') > > # Residues 49 through 55 should be an alpha helix: > rsr.add(secondary_structure.alpha(self.residue_range('39:', > '45:'))) > # Two beta-strands: > # rsr.add(secondary_structure.strand(self.residue_range('1:', '5:'))) > # rsr.add(secondary_structure.strand(self.residue_range('19:', > '26:'))) > # rsr.add(secondary_structure.strand(self.residue_range('33:', > '35:'))) > # rsr.add(secondary_structure.strand(self.residue_range('55:', > '58:'))) > rsr.add(secondary_structure.strand(self.residue_range('68:', > '72:'))) > # An anti-parallel sheet composed of the two strands: > # rsr.add(secondary_structure.sheet(at['N:1'], at['O:14'], > # sheet_h_bonds=-5)) > # Use the following instead for a *parallel* sheet: > # rsr.add(secondary_structure.sheet(at['N:1'], at['O:9'], > # sheet_h_bonds=5)) > # Restrain the specified CA-CA distance to 10 angstroms (st. > dev.=0.1) > # Use a harmonic potential and X-Y distance group. > # rsr.add(forms.gaussian(group=physical.xy_distance, > # feature=features.distance(at['CA:35'], > # at['CA:40']), > # mean=10.0, stdev=0.1)) > > > a = MyModel(env, > alnfile = 'Alignment2.ali', # alignment filename > knowns = ('pco','Tas','gen','Rap'), # codes of the > templates > sequence = 'sALK1') # code of the target > a.starting_model= 1 # index of the first model > a.ending_model = 10 # index of the last model > # (determines how many models to > calculate) > a.make() # do the actual homology modeling > > > -- > Claudia Scotti, MD PhD > Department of Experimental Medicine > University of Pavia > Via Ferrata, 1 > 27100 Pavia > Italy > Tel. 0382 986335 > Facs 0382 986893 > > Claudia Scotti > Dipartimento di Medicina Sperimentale > Sezione di Patologia Generale > Universita' di Pavia > Via Ferrata, 1 > 27100 Pavia > Italia > Tel. 0039 0382 986335/8/1 > Facs 0039 0382 303673 > > > _______________________________________________ > modeller_usage mailing list > modeller_usage@salilab.org > https://salilab.org/mailman/listinfo/modeller_usage > >
participants (2)
-
Claudia Scotti
-
Thomas Evangelidis