MODELLER の secondary_structure.alpha
、secondary_structure.strand
、secondary_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 つの β-ストランドらしい領域がなんとなく水素結合で拘束されているのがわかる。