# Demonstrating ALIGN2D, aligning with variable gap penalty
from modeller import *
log.verbose()
env = environ()
env.libs.topology.read('$(LIB)/top_heav.lib')
env.io.atom_files_directory = ['./atom_files']
# Read aligned structure(s):
aln = alignment(env)
aln.append(file='HDAC9a_Cat.ali', align_codes='2vqj')
aln_block = len(aln)
# Read aligned sequence(s):
aln.append(file='HDAC9a_Cat.ali', align_codes='2vqj')
# Structure sensitive variable gap penalty sequence-sequence alignment:
aln.align2d(overhang=0, gap_penalties_1d=(-100, 0),
gap_penalties_2d=(3.5, 3.5, 3.5, 0.2, 4.0, 6.5, 2.0, 0., 0.),
align_block=aln_block)
aln.write(file='align2d.ali', alignment_format='PIR')
aln.write(file='align2d.pap', alignment_format='PAP',
alignment_features='INDICES HELIX BETA STRAIGHTNESS ' + \
'ACCESSIBILITY CONSERVATION')
aln.check()
# Color the first template structure according to gaps in alignment:
aln = alignment(env)
aln.append(file='align2d.ali', align_codes=('HDAC9a_Cat', '2vqj'),
alignment_format='PIR', remove_gaps=True)
mdl = model(env)
mdl.read(file=aln['HDAC9a_Cat'].atom_file,
model_segment=aln['HDAC9a_Cat'].range)
mdl.color(aln=aln)
mdl.write(file='HDAC9a_Cat.aln.pdb')
# Color the first template structure according to secondary structure:
mdl.write_data(file='HDAC9a_Cat', output='SSM')
mdl.write(file='HDAC9A_Cat.ssm.pdb')
# Superpose the target structure onto the first template:
mdl2 = model(env)
mdl2.read(file=aln['2vqj'].atom_file,
model_segment=aln['2vqj'].range)
sel = selection(mdl).only_atom_types('CA')
sel.superpose(mdl2, aln)
mdl2.write(file='2vqj.fit.pdb')