# Demonstrating ALIGN2D, aligning with variable gap penalty log.verbose() env = environ() env.libs.topology.read(file='$(LIB)/top_heav.lib') # Read aligned structure(s): aln = alignment(env) aln.append(file='toxin.ali', align_codes='2ctx') aln_block = len(aln) # Read aligned sequence(s): aln.append(file='toxin.ali', align_codes='1nbt') # 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=('2ctx', '1nbt'), alignment_format='PIR', remove_gaps=True) mdl = model(env) mdl.read(aln=aln, model_segment=('2ctx', '2ctx')) mdl.color(aln=aln) mdl.write(file='2ctx.aln.pdb') # Color the first template structure according to secondary structure: mdl.write_data(file='2ctx', output='SSM') mdl.write(file='2ctx.ssm.pdb') # Superpose the target structure onto the first template: mdl2 = model(env) mdl2.read(aln=aln, model_segment=('1nbt', '1nbt')) mdl.pick_atoms(aln=aln, atom_types='CA') mdl.superpose(mdl2, aln) mdl2.write(file='1nbt.fit.pdb')