problem with the separate homo-trimer antiparallel beta sheet
Dear Sir/Ma'am,
Kindly refer my email dated yesterday, where I have asked about the problem I am facing with the antiparallel beta sheet. I am forwarding the same email again, Please let me know if you have any suggestions on how I should proceed to solve this problem.
I have a small peptide chain comprising of 16 residues and I am trying to build a homo-trimer anti-parallel beta sheet for all the 16 residue , the three chains are separate. I am trying to put secondary structure restraints (strand and sheet) to the model, but it didn't work. It just produce the three separate chains but do not restrain them in the form of beta sheet.
My script is as below:
from modeller import * from modeller.automodel import * log.verbose() env = environ() # directories for input atom files env.io.atom_files_directory = ['.', '../atom_files'] # Build 50 models, and assess with both DOPE and GA341 class MyModel(automodel): def special_restraints(self, aln): rsr = self.restraints at = self.atoms # Selecting the chains as A B and C respectively s1 = selection(self.chains['A']).only_atom_types('CA') s2 = selection(self.chains['B']).only_atom_types('CA') s3 = selection(self.chains['C']).only_atom_types('CA') self.restraints.symmetry.append(symmetry(s1, s2, 1.0)) # self.restraints.symmetry.append(symmetry(s2, s3, 1.0)) # Residues 0 through 15, 16 through 31 and 32 through 47 should be in the form of a beta strand: # Three beta-strand: rsr.add(secondary_structure.strand(self.residue_range(0,15))) # from residue 0 to 15 rsr.add(secondary_structure.strand(self.residue_range(16,31))) # from residue 16 to 31 rsr.add(secondary_structure.strand(self.residue_range(32,47))) # form residue 32 to 47 # An anti-parallel sheet composed of the two strands: rsr.add(secondary_structure.sheet(at['N:1:A'],at['O:31:B'], sheet_h_bonds=-16)) # antiparallel sheet starting between N of residue 1 of chain A and O of residue 31 of Chain B rsr.add(secondary_structure.sheet(at['N:17:B'], at['O:47:C'], sheet_h_bonds=-16)) # antiparallel sheet starting between N of residue 17 of chain B and O of residue 47 of Chain C # My model input files: a = MyModel(env, alnfile='test.pir', # alignment filename knowns=('1CD1'), # codes of the templates sequence='query', # code of the target assess_methods=(assess.DOPE, assess.GA341)) a.starting_model= 1 # index of the first model a.ending_model = 50 # index of the last model # (determines how many models to calculate) a.make() # do the actual homology modeling
# 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])
My pir file is: >P1;query sequence:query:0:A:16:B:32:C:: NYTFRCLQMSSFANRS/NYTFRCLQMSSFANRS/NYTFRCLQMSSFANRS * >P1;1CD1 structureN:1CD1.pdb:7:A:22:A:::: NYTFRCLQMSSFANRS/----------------/---------------- *
Kindly look into the matter and let me know what is the problem with my script and the system files. i will be really grateful for your help.
Waiting for your early reply,
Kind Regards, Namita Dube
Hello Namita,
The problem with what you are trying to do is that your template has no match for the second and thrid chains in ther unknown you are trying to model. Modeller is meant for homology modeling, not for building structures ab initio.
Cheers, Rob
On Fri, 2014-09-19 10:26 EDT, Namita Dube namita.dube1985@gmail.com wrote:
> Dear Sir/Ma'am, > > Kindly refer my email dated yesterday, where I have asked about the > problem I am facing with the antiparallel beta sheet. I am forwarding > the same email again, Please let me know if you have any suggestions > on how I should proceed to solve this problem. > > I have a small peptide chain comprising of 16 residues and I am trying > to build a > homo-trimer anti-parallel beta sheet for all the 16 residue , the > three chains are separate. I am trying to put secondary structure > restraints (strand and sheet) to the model, but it didn't work. It > just produce the three separate chains but do not restrain them in the > form of beta sheet. > > My script is as below: > > from modeller import * > from modeller.automodel import * > log.verbose() > env = environ() > # directories for input atom files > env.io.atom_files_directory = ['.', '../atom_files'] > # Build 50 models, and assess with both DOPE and GA341 > class MyModel(automodel): > def special_restraints(self, aln): > rsr = self.restraints > at = self.atoms > # Selecting the chains as A B and C respectively > s1 = selection(self.chains['A']).only_atom_types('CA') > s2 = selection(self.chains['B']).only_atom_types('CA') > s3 = selection(self.chains['C']).only_atom_types('CA') > self.restraints.symmetry.append(symmetry(s1, s2, 1.0)) > # self.restraints.symmetry.append(symmetry(s2, s3, 1.0)) > # Residues 0 through 15, 16 through 31 and 32 through 47 should > be in the form of a beta strand: > # Three beta-strand: > rsr.add(secondary_structure.strand(self.residue_range(0,15))) > # from residue 0 to 15 > rsr.add(secondary_structure.strand(self.residue_range(16,31))) > # from residue 16 to 31 > rsr.add(secondary_structure.strand(self.residue_range(32,47))) # > form residue 32 to 47 > # An anti-parallel sheet composed of the two strands: > rsr.add(secondary_structure.sheet(at['N:1:A'],at['O:31:B'], > sheet_h_bonds=-16)) # > antiparallel sheet starting between N of residue 1 of chain A and O > of residue 31 of Chain B > rsr.add(secondary_structure.sheet(at['N:17:B'], at['O:47:C'], > sheet_h_bonds=-16)) # > antiparallel sheet starting between N of residue 17 of chain B and O > of residue 47 of Chain C > # My model input files: > a = MyModel(env, > alnfile='test.pir', # alignment filename > knowns=('1CD1'), # codes of the templates > sequence='query', # code of the target > assess_methods=(assess.DOPE, assess.GA341)) > a.starting_model= 1 # index of the first model > a.ending_model = 50 # index of the last model > # (determines how many models to > calculate) a.make() # do the actual homology modeling > > > # 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]) > > My pir file is: > >P1;query > sequence:query:0:A:16:B:32:C:: > NYTFRCLQMSSFANRS/NYTFRCLQMSSFANRS/NYTFRCLQMSSFANRS > * > >P1;1CD1 > structureN:1CD1.pdb:7:A:22:A:::: > NYTFRCLQMSSFANRS/----------------/---------------- > * > > Kindly look into the matter and let me know what is the problem with > my script and the system files. i will be really grateful for your > help. > > > Waiting for your early reply, > > Kind Regards, > Namita Dube > _______________________________________________ > modeller_usage mailing list > modeller_usage@salilab.org > https://salilab.org/mailman/listinfo/modeller_usage
participants (2)
-
Namita Dube
-
Robert Campbell