[modeller_usage] problem with the separate homo-trimer antiparallel beta sheet
To: ,
Subject: [modeller_usage] problem with the separate homo-trimer antiparallel beta sheet
From: Namita Dube <>
Date: Fri, 19 Sep 2014 10:26:17 +0100
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