problem with the separate homo-trimer antiparallel beta sheet
Dear Modeller,
I am really new in the field of building a model and 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
On 9/18/14, 9:14 AM, Namita Dube wrote: > I am really new in the field of building a model and 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
Your numbering is a bit off here:
> rsr.add(secondary_structure.strand(self.residue_range(0,15))) > rsr.add(secondary_structure.strand(self.residue_range(16,31)))
vs.
> rsr.add(secondary_structure.sheet(at['N:1:A'],at['O:31:B'], > sheet_h_bonds=-16))
Note that in the first you use integers (0, 15, 16, 31) to select residues whereas in the second you use strings ('1', '31'). These are not the same; see http://salilab.org/modeller/9.14/manual/node326.html In summary, integers start from zero, while strings are PDB numbers, which may not be continuous, or numbers at all, but usually start from 1. So you're off by one in the second case - should be 'O:32:B'. Likewise the second sheet should be between N:17:B and O:48:C.
As was previously mentioned, you have no template for your B and C chains. So by default they're going to be floppy, extended chain structures. Modeller will do its best to make them beta strands, but you're asking quite a lot of it here.
Ben Webb, Modeller Caretaker
participants (2)
-
Modeller Caretaker
-
Namita Dube