Alignment.consensus() — consensus sequence alignment

consensus(align_block=0, gap_penalties_1d=(-900.0, -50.0), weigh_sequences=False, input_weights_file=None, output_weights_file=None, weights_type='SIMILAR', smooth_prof_weight=10)
This command is similar to Alignment.align() except that a consensus alignment of two blocks of sequences is produced. A consensus alignment is obtained from a consensus similarity matrix using the specified gap penalties and the global dynamic programming method. The consensus similarity matrix is obtained by aligning the two blocks of sequences many times with different parameters and methods and counting how many times each pair was aligned. This command is still experimental and no detailed description is given at this time.

This command also produces the alignment accuracy that can be printed out by the Alignment.write() command in the 'PAP' format (0 inaccurate, 9 accurate). If the gap initiation penalty is 0, the gap extension penalty of say 0.4 means that only those positions will be equivalenced that were aligned in at least 80% of the individual alignments (i.e., 2 times 0.40).

Example: examples/commands/align_consensus.py

# Example for: Alignment.consensus()

# This will read 2 sequences and prepare a consensus alignment
# from many different pairwise alignments.

from modeller import *
env = Environ()

aln = Alignment(env)
aln.append(file='toxin.ali', align_codes=('2ctx', '2abx'))
aln.consensus(gap_penalties_1d=(0, 0.4), align_block=1)
aln.write(file='toxin-seq.pap', alignment_format='PAP')