Select Git revision
modelling_steps.py 1001 B
from ost import io
from promod3 import modelling, loop
# setup
merge_distance = 4
fragment_db = loop.LoadFragDB()
structure_db = loop.LoadStructureDB()
torsion_sampler = loop.LoadTorsionSamplerCoil()
# get raw model
tpl = io.LoadPDB('data/1crn_cut.pdb')
aln = io.LoadAlignment('data/1crn.fasta')
aln.AttachView(1, tpl.CreateFullView())
mhandle = modelling.BuildRawModel(aln)
# we're not modelling termini
modelling.RemoveTerminalGaps(mhandle)
# perform loop modelling to close all gaps
modelling.CloseGaps(mhandle, merge_distance, fragment_db,
structure_db, torsion_sampler)
# build sidechains
modelling.BuildSidechains(mhandle, merge_distance, fragment_db,
structure_db, torsion_sampler)
# minimize energy of final model using molecular mechanics
modelling.MinimizeModelEnergy(mhandle)
# check final model and report issues
modelling.CheckFinalModel(mhandle)
# extract final model
final_model = mhandle.model
io.SavePDB(final_model, 'model.pdb')