Cyclic protein: Difference between revisions
No edit summary |
(Fix broken links, tidy up markup, add to Examples category) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
<!-- ## page was renamed from Cyclic_protein --> | |||
To build a model of a cyclic protein, you must do two things: | To build a model of a cyclic protein, you must do two things: | ||
# Disable the default patching, which would create a C and N terminus. | # Disable the default patching, which would create a C and N terminus. | ||
# Use the LINK patching residue in the '''special_patches''' routine to link the last and first residues. | # Use the LINK patching residue in the '''special_patches''' routine to link the last and first residues. | ||
For example, the script below builds a cyclic model of 1fdx using 5fd1 as a template ( | For example, the script below builds a cyclic model of 1fdx using 5fd1 as a template ([https://salilab.org/modeller/archive/cyclic-protein-example/alignment.ali alignment.ali] is the example from the Modeller distribution). | ||
⚠️ It is important that you get the residue order correct; the residues must be the '''last''' and '''first''' residue in the cyclic protein respectively (in the model, not the template). If in doubt, build a regular model first and look at the residue numbers and chain IDs in the final models or <code>.ini</code> file. | |||
< | <syntaxhighlight lang="python"> | ||
from modeller import * | |||
from modeller.automodel import * | from modeller.automodel import * | ||
log.verbose() | log.verbose() | ||
env = | env = Environ() | ||
# Disable default NTER and CTER patching | # Disable default NTER and CTER patching | ||
env.patch_default = False | env.patch_default = False | ||
class | class MyModel(AutoModel): | ||
def special_patches(self, aln): | def special_patches(self, aln): | ||
# Link between | # Link between last residue (-1) and first (0) to make chain cyclic: | ||
self.patch(residue_type='LINK', | self.patch(residue_type='LINK', | ||
residues=(self.residues[ | residues=(self.residues[-1], self.residues[0])) | ||
# Use the new ' | # Use the new 'MyModel' class rather than 'AutoModel' | ||
a = | a = MyModel(env, alnfile='alignment.ali', knowns='5fd1', sequence='1fdx') | ||
a.starting_model = a.ending_model = 1 | a.starting_model = a.ending_model = 1 | ||
a.make() | a.make() | ||
</ | </syntaxhighlight> | ||
[[Category:Examples]] |
Latest revision as of 21:22, 16 August 2022
To build a model of a cyclic protein, you must do two things:
- Disable the default patching, which would create a C and N terminus.
- Use the LINK patching residue in the special_patches routine to link the last and first residues.
For example, the script below builds a cyclic model of 1fdx using 5fd1 as a template (alignment.ali is the example from the Modeller distribution).
⚠️ It is important that you get the residue order correct; the residues must be the last and first residue in the cyclic protein respectively (in the model, not the template). If in doubt, build a regular model first and look at the residue numbers and chain IDs in the final models or .ini
file.
from modeller import *
from modeller.automodel import *
log.verbose()
env = Environ()
# Disable default NTER and CTER patching
env.patch_default = False
class MyModel(AutoModel):
def special_patches(self, aln):
# Link between last residue (-1) and first (0) to make chain cyclic:
self.patch(residue_type='LINK',
residues=(self.residues[-1], self.residues[0]))
# Use the new 'MyModel' class rather than 'AutoModel'
a = MyModel(env, alnfile='alignment.ali', knowns='5fd1', sequence='1fdx')
a.starting_model = a.ending_model = 1
a.make()