next up previous contents index
Next: Number Types and Linear Up: Alignment Data Types Previous: String Distance Function (   Contents   Index


Alignment Functions ( alignment )

Definition

An instance A of the data type alignment is an object maintaining two strings, a score$\_$matrix, a penalty value for starting a gap and a penalty value for extending an already started gap. It provides several functions for global and local alignment computation. The result of an alignment computation is stored in the object.
Remark: This data type is experimental. It can significantly change in future versions.

#include < LEDA/string/alignment.h >

Creation

alignment A creates an instance A of type alignment.

alignment A(const score_matrix& score)
    creates an instance A of type alignment and initializes the score matrix to score.

alignment A(const score_matrix& score, const string& s1, const string& s2)
    creates an instance A of type alignment and initializes the score matrix to score, and the strings to s1 and s2.

alignment A(const string& s1, const string& s2)
    creates an instance A of type alignment and initializes the strings to s1 and s2.

Operations

void A.setStringA(const string& x)
    sets the first string to x.

void A.setStringB(const string& x)
    sets the second string to x.

string A.getStringA() returns the first string.

string A.getStringB() returns the second string.

string A.getAlA() returns the first alignment string, that is the first string with its gaps after an alignment computation.

string A.getAlB() returns the second alignment string, that is the second string with its gaps after an alignment computation.

string A.getAlInfo() shows the correspondence information for each position in the two alignment strings. Its i-th position is "/", if the letters are identical, "X" if the are different but they are matched and " " if there is a gap in one of the alignment strings.

void A.setGapPenalty(int x) sets the penalty for a gap to x.

void A.setGapIncPenalty(int x) sets the penalty for extending an existing gap by one position to x.

int A.getGapPenalty() returns the penalty for a gap.

int A.getGapIncPenalty() returns the penalty for a gap extension of one position.

void A.global_nw() runs a global alignment algorithm based on Needleman and Wunsch, where there is a penalty x for each gap proportional to its length. x can be set by setGapPenalty. The algorithm requires quadratic space.

void A.local_sw() runs a local alignment algorithm based on Smith and Waterman, where there is a penalty x for each gap proportional to its length. x can be set by setGapPenalty. The algorithm requires quadratic space.

void A.global_aff_nw() runs a global alignment algorithm based on Needleman and Wunsch, where there is a penalty x + k*y for each gap, where k is the length of the gap. x can be set by setGapPenalty and x by setGapIncPenalty. The algorithm requires quadratic space.

void A.local_aff_sw() runs a local alignment algorithm based on Smith and Waterman, where there is a penalty x + k*y for each gap, where k is the length of the gap. x can be set by setGapPenalty and x by setGapIncPenalty. The algorithm requires quadratic space.

unsigned int A.longest_common_substring()
    returns the length of the longest common substring of the two strings.

unsigned int A.longest_common_subsequence()
    returns the length of the longest common subsequence of the two strings and stores them aligned in the alignment strings.


next up previous contents index
Next: Number Types and Linear Up: Alignment Data Types Previous: String Distance Function (   Contents   Index