α ヘリックスと β シートを作成

MODELLER の secondary_structure.alphasecondary_structure.strandsecondary_structure.sheet メソッドを組み合わせて使用すれば、α-ヘリックスと β-シートの両方を持つモデルを構築することができる。

例として、以下の配列をモデリングする。この配列は 3NFN の一部であり、β-ストランドは三カ所、α-ヘリックスは一カ所含まれている。

GSHSMRYFSTSVSRPGRGEPRFIAVGYVDDTQFVRFDSDAASQR
MEPRAPWIEQEGPEYWDEETGKVKAHSQTDRENLRTIALRYYNQ

以下が予測用のスクリプトである。

from modeller import *
from modeller.optimizers import conjugate_gradients

env = environ()
env.libs.topology.read('${LIB}/top_heav.lib')
env.libs.parameters.read('${LIB}/par.lib')

# 1.
m = model(env)
#                 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
#                    EEEEEEEEE        EEEEEEEE  EEEEEEE           HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
m.build_sequence('GSHSMRYFSTSVSRPGRGEPRFIAVGYVDDTQFVRFDSDAASQRMEPRAPWIEQEGPEYWDEETGKVKAHSQTDRENLRTIALRYYNQ')

# 2.
allatoms = selection(m)
m.restraints.make(allatoms, restraint_type='STEREO', spline_on_site=False)

# 3.
m.restraints.add(secondary_structure.strand(m.residue_range('4:', '12:')))
m.restraints.add(secondary_structure.strand(m.residue_range('21:', '28:')))
m.restraints.add(secondary_structure.strand(m.residue_range('31:', '37:')))
m.restraints.add(secondary_structure.sheet(m.atoms['N:5'], m.atoms['O:27'], sheet_h_bonds = -6))
m.restraints.add(secondary_structure.sheet(m.atoms['N:12'], m.atoms['O:36'], sheet_h_bonds = -5))
m.restraints.add(secondary_structure.alpha(m.residue_range('49:', '86:')))

# 4.
cg = conjugate_gradients()
cg.optimize(allatoms, max_iterations = 10000)

# save to PDB format
m.write(file='alphasheet.pdb')

このスクリプトを make_alphasheet.py の名前で保存し、MODELLER で実行すれば alphasheet.pdb ファイルが生成される。

mod9.13 make_alphasheet.py

実際にモデリングされたモデルは以下のようになる。3 つの β-ストランドらしい領域がなんとなく水素結合で拘束されているのがわかる。

αヘリックスとβシートのモデリング