Dear Sir,
I am trying to build a tetramer model for hERG based on the crystal structure KcsA (1BL8.pdb). The modeller did give me four chains, but not the correct symmetry. Since I am new to Modeller, I am wondering whether there is somebody can help me.
Thank you,
Lei Du-Cuny
------------------------------------------
The following are the alignment file and python script I have used.
hERG-KcsA-multialign.ali
>P1;1BL8
structureX:1BL8:62: A:111: A:KcsA: : :
YPRALWWSVETATTVGYGDLYPVTLWGRCVAVVVMVAGITSFGLVTAALA*
>P1;hERG
sequence:hERG: : : : :hERG:human: :
VT-ALYFTFSSLTSVGFGNVSPNTNSEKIFSICVMLIGSLMYASIFGNV-/
VT-ALYFTFSSLTSVGFGNVSPNTNSEKIFSICVMLIGSLMYASIFGNV-/
VT-ALYFTFSSLTSVGFGNVSPNTNSEKIFSICVMLIGSLMYASIFGNV-/
VT-ALYFTFSSLTSVGFGNVSPNTNSEKIFSICVMLIGSLMYASIFGNV-*
model-multichain.py
# 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, B, C and D chains to be identical
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')
s4 = selection(self.chains['D']).only_atom_types('CA')
self.restraints.symmetry.append(symmetry(s1, s2, 1))
self.restraints.symmetry.append(symmetry(s2, s3, 1))
self.restraints.symmetry.append(symmetry(s3, s4, 1))
def user_after_single_model(self):
# Report on symmetry violations greater than 1A after building
# each model:
self.restraints.symmetry.report(1)
env = environ()
# 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 = 'hERG-KcsA-multialign.ali' , # alignment filename
knowns = '1BL8', # codes of the templates
sequence = 'hERG') # code of the target
a.starting_model= 1 # index of the first model
a.ending_model = 10 # index of the last model
# (determines how many models to calculate)
a.make() # do homology modeling