iterative_structural_align() — obtain the best structural alignment

iterative_structural_align(aln, align_block=0)
Given an initial alignment of two or more structures, this will run Alignment.salign() in an iterative fashion, exploring a range of suitable parameter values, to determine the best structural alignment, as detailed in [Madhusudhan et al., 2009].

Example: examples/salign/salign_iterative.py

# Illustrates the SALIGN iterative multiple structure alignment
from modeller import *
import modeller.salign

log.none()
env = Environ()
env.io.atom_files_directory = ['.', '../atom_files']

aln = Alignment(env)
for (code, chain) in (('1is4', 'A'), ('1uld', 'D'), ('1ulf', 'B'),
                      ('1ulg', 'B'), ('1is5', 'A')):
    mdl = Model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))
    aln.append_model(mdl, atom_files=code, align_codes=code+chain)

modeller.salign.iterative_structural_align(aln)

aln.write(file='1is3A-it.pap', alignment_format='PAP')
aln.write(file='1is3A-it.ali', alignment_format='PIR')