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

[modeller_usage] Symmetry and helix



Dear modellers,

I am novice in field of modeling.

I am doing model of homodimeric protein. I have two parts and from both of them I have template structure. Between them there is linker which is based on homologous proteins and 2D prediction helix. I want to my model that helix and symmetric homodimer.

1) If I do first model with helix and then symmetric homodimeric model - I loose helix.
2) If I do first symmetric model and them restraint helix - I loose a bit symmetry.

Is it possible to do these to restraints in one run? Or how I can handle this problem?

My .py file (#? - marks for helix in previous run)
# Homology modeling by the automodel class
#
# Demonstrates how to build multi-chain models, and symmetry restraints
#
from modeller import *
from modeller.automodel import *    # Load the automodel class

log.verbose()

# Override the 'special_restraints' and 'user_after_single_model' methods:
class MyModel(automodel):
    def special_restraints(self, aln):
	  # Constrain the A and B chains to be identical (but only restrain
        # the C-alpha atoms, to reduce the number of interatomic distances
        # that need to be calculated):
        s1 = selection(self.chains['A']).only_atom_types('CA')
        s2 = selection(self.chains['B']).only_atom_types('CA')
        self.restraints.symmetry.append(symmetry(s1, s2, 1.0))
    def user_after_single_model(self):
        # Report on symmetry violations greater than 1A after building
        # each model:
       self.restraints.symmetry.report(1.0)
#?		rsr = self.restraints
#?        	at = self.atoms
	#  Add some restraints from a file:	
	#  rsr.append(file='my_rsrs1.rsr')
	#  Residues  296-305 should be an alpha helix:
#?		rsr.add(secondary_structure.alpha(self.residue_range('296:A', '305:A')))
#?		rsr.add(secondary_structure.alpha(self.residue_range('845:B', '854:B')))

env = environ()
env.io.hetatm = True
# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']

# Be sure to use 'MyModel' rather than 'automodel' here!
a = MyModel(env,
            alnfile  = 'cpC.ali' ,     # alignment filename
            knowns   = ('cpCB', 'HXW'),              # codes of the templates
            sequence = 'Pase',              # code of the target
		inifile  = 'CBPP.pdb')    # use 'my' initial structure
a.starting_model= 1                # index of the first model
a.ending_model  = 3                # index of the last model
                                   # (determines how many models to calculate)
a.make()                           # do homology modeling

Thank you already beforehand, hopefully this is easy case for you specialists. 
Heidi