Example Program
Global Alignments
Computing an optimal global alignment between two sequences.
 1 #include  2 #include  3 #include  4 5 using namespace seqan; 6 7 int main() 8 {
Two DNA sequences that shall be aligned.
 9 typedef String TSequence; 10 TSequence seq1 = "atcgaatgcgga"; 11 TSequence seq2 = "actcgttgca";
Scoring objects are used to define a scoring scheme. In this case, affine gap costs with match = 0, mismatch = -1, gapextend = -1 and gapopen = -2.
 12 Score score(0, -1, -1, -2);
Example 1: We use Align to align the two sequences. Since we do not specify an algorithm tag when we call globalAlignment, a suitable algorithm (Gotoh) is automatically choosen.
 13 Align align; 14 resize(rows(align), 2); 15 assignSource(row(align, 0), seq1); 16 assignSource(row(align, 1), seq2); 17 18 ::std::cout << "Score = " << globalAlignment(align, score) << ::std::endl; 19 ::std::cout << align << ::std::endl;
Example 2: We now choose explicitely the algorithm MyersHirschberg. Since this algorithm always works on Levenshtein distance, score is ignored here. Therefore, this algorithm computes a different alignment and returns a different score.
 20 ::std::cout << "Score = " << globalAlignment(align, score, MyersHirschberg()) << ::std::endl; 21 ::std::cout << align << ::std::endl;
Example 3: We now do the same as in case 1, but now we use an Alignment Graph for storing the alignment. Here we use Gotoh's algorithm.
 22 typedef StringSet > TStringSet; 23 typedef Graph > TAlignmentGraph; 24 25 TStringSet string_set; 26 appendValue(string_set, seq1); 27 appendValue(string_set, seq2); 28 TAlignmentGraph alignment_graph(string_set); 29 30 ::std::cout << "Score = " << globalAlignment(alignment_graph, score, Gotoh()) << ::std::endl; 31 ::std::cout << alignment_graph << ::std::endl; 32 return 0; 33 }
SeqAn - Sequence Analysis Library - www.seqan.de

Page built @2011/02/08 21:37:01