---------- Forwarded message ---------
From: <modeller_usage-owner@salilab.org>
Date: Sat, Oct 1, 2022 at 9:32 AM
Subject: Re: [modeller_usage] Homomultimer modeling
To: <mjsubach@alumni.ncsu.edu>Your message to the modeller_usage mailing-list was rejected for the following
reasons:
The message is not from a list member
The original message as received by Mailman is attached.
---------- Forwarded message ----------
From: Joel Subach <mjsubach@alumni.ncsu.edu>
To: "Franceschini Ghilardi, Amanda (BIDMC - Lijun Sun - General Surg SF)" <afrance2@bidmc.harvard.edu>
Cc: "modeller_usage@salilab.org" <modeller_usage@salilab.org>
Bcc:
Date: Sat, 1 Oct 2022 09:32:25 +0200
Subject: Re: [modeller_usage] Homomultimer modeling
This Message Is From an External SenderThis message came from outside your organization.Hello I would first need to be sure that you selected the correct template(s) accordingly if you want please send me your protein heptamer queryand the template(s) you selected and how you discovered these templates. (I completed my Doctoral Dissertation on modeling an unknown heptamer.)Thanks:)Joel 🚀On Fri, Sep 30, 2022 at 11:51 PM Franceschini Ghilardi, Amanda (BIDMC - Lijun Sun - General Surg SF) via modeller_usage <modeller_usage@salilab.org> wrote:This Message Is From an External SenderThis message came from outside your organization._______________________________________________Hi,
I am trying to model a heptamer (homomultimer), but the structure generated is wrong because there are many clashes and it looks completely different from the template. How can I solve this issue? Please, see my files and scripts below.
The .ali for the alignment was edited by repeating the sequence seven times and separating each sequence by "/">P1;name
Sequence:name::::::::XXXXX/XXXXX/XXXXX/XXXXX*
The alignment scriptfrom modeller import *
env = Environ()
aln = Alignment(env)mdl = Model(env, file='template', model_segment=('FIRST:A','LAST:F'))aln.append_model(mdl, align_codes='template', atom_files='template.pdb')aln.append(file='target.ali', align_codes='target')aln.align2d(max_gap_length=50)aln.write(file='aligned.ali', alignment_format='PIR')aln.write(file='aligned.pap', alignment_format='PAP')
The script to build the modelfrom modeller import *from modeller.automodel import *#from modeller import soap_protein_od
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')s3 = Selection(self.chains['C']).only_atom_types('CA')s4 = Selection(self.chains['D']).only_atom_types('CA')s5 = Selection(self.chains['E']).only_atom_types('CA')s6 = Selection(self.chains['F']).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)
env = Environ()# directories for input atom filesenv.io.atom_files_directory = ['.', '../atom_files']
# Be sure to use 'MyModel' rather than 'AutoModel' here!a = MyModel(env,alnfile = 'aligned.ali' , # alignment filenameknowns = 'template', # codes of the templatessequence = 'target',assess_methods=(assess.DOPE)) # code of the target
a.starting_model= 1 # index of the first modela.ending_model = 100 # index of the last model# (determines how many models to calculate)a.make() # do comparative modeling
# Get a list of all succesfully built models from a.outputok_models = [x for x in a.outputs if x['failure'] is None]
# Rank the models by DOPE scorekey = 'DOPE score'if sys.version_info[:2] == (2,3):ok_models.sort(lambda a,b: cmp(a[key], b[key]))else:ok_models.sort(key=lambda a: a[key])
modeller_usage mailing list
modeller_usage@salilab.org
https://salilab.org/mm/postorius/lists/modeller_usage.salilab.org/