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