[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] 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