1 /*==========================================================================
2 SeqAn - The Library for Sequence Analysis
4 ============================================================================
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 3 of the License, or (at your option) any later version.
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 ============================================================================
18 $Id: basic_tag.h,v 1.1 2008/08/25 16:20:01 langmead Exp $
19 ==========================================================================*/
21 #ifndef SEQAN_HEADER_BASIC_TAG_H
22 #define SEQAN_HEADER_BASIC_TAG_H
24 namespace SEQAN_NAMESPACE_MAIN
28 //////////////////////////////////////////////////////////////////////////////
32 ..summary:Switch to trigger drawing in dot format.
33 ..value.DotDrawing:Graphs in dot format.
37 typedef Tag<DotDrawing_> const DotDrawing;
42 ..summary:Switch to trigger Hamming distance, which is a measure of character substitutions.
46 .Tag.LevenshteinDistance
47 ..summary:Switch to trigger Levenshtein distance, which is a measure of edit operations (character substitutions, deletions or insertions).
50 struct _HammingDistance;
51 struct _LevenshteinDistance;
53 typedef Tag<_HammingDistance> HammingDistance;
54 typedef Tag<_LevenshteinDistance> LevenshteinDistance;
55 typedef Tag<_LevenshteinDistance> EditDistance;
58 //////////////////////////////////////////////////////////////////////////////
61 //////////////////////////////////////////////////////////////////////////////
63 //////////////////////////////////////////////////////////////////////////////
64 //Sollte eigentlich nach align/, aber da jetzt ja so viele
65 //alignment algorithmen in graph/ gelandet sind...
68 .Tag.Global Alignment Algorithms:
69 ..summary:Global alignment algorithm used by globalAlignment.
70 ..see:Function.globalAlignment
71 ..see:Tag.Local Alignment Algorithms
74 //////////////////////////////////////////////////////////////////////////////
77 .Tag.Global Alignment Algorithms.value.NeedlemanWunsch:
78 Dynamic programming algorithm for alignments by Needleman and Wunsch.
81 struct NeedlemanWunsch_;
82 typedef Tag<NeedlemanWunsch_> const NeedlemanWunsch;
84 //////////////////////////////////////////////////////////////////////////////
87 .Tag.Global Alignment Algorithms.value.Gotoh:
88 Gotoh's affine gap cost alignment algorithm.
91 typedef Tag<Gotoh_> const Gotoh;
93 //////////////////////////////////////////////////////////////////////////////
96 .Tag.Global Alignment Algorithms.value.MyersBitVector:
97 Myers' bit vector alignment algorithm for edit distance.
98 Note that this algorithm does not returns the alignment itself, but only computes the score.
100 struct MyersBitVector_;
101 typedef Tag<MyersBitVector_> const MyersBitVector;
103 //////////////////////////////////////////////////////////////////////////////
106 .Tag.Global Alignment Algorithms.value.MyersHirschberg:
107 Myers' bit vector algorithm for edit distance combined with Hirschberg's linear space alignment algorithm.
109 struct MyersHirschberg_;
110 typedef Tag<MyersHirschberg_> const MyersHirschberg;
112 //////////////////////////////////////////////////////////////////////////////
115 .Tag.Global Alignment Algorithms.value.Hirschberg:
116 Hirschberg's linear space global alignment algorithm.
119 typedef Tag<Hirschberg_> const Hirschberg;
121 //////////////////////////////////////////////////////////////////////////////
122 //////////////////////////////////////////////////////////////////////////////
125 .Tag.Local Alignment Algorithms:
126 ..summary:Local alignment algorithm used by localAlignment.
127 ..see:Function.localAlignment
130 //////////////////////////////////////////////////////////////////////////////
133 .Tag.Local Alignment Algorithms.value.SmithWaterman:
134 Triggers a Smith Waterman local alignment algorithm.
136 struct SmithWaterman_;
137 typedef Tag<SmithWaterman_> const SmithWaterman;
139 //////////////////////////////////////////////////////////////////////////////
142 .Tag.Local Alignment Algorithms.value.SmithWatermanClump:
143 Local alignment algorithm with "declumping" by Waterman and Eggert.
145 struct SmithWatermanClump_;
146 typedef Tag<SmithWatermanClump_> const SmithWatermanClump;
148 //////////////////////////////////////////////////////////////////////////////
151 .Tag.Local Alignment Algorithms.value.SmithWatermanIsland:
152 Local alignment algorithm finding all "islands".
154 struct SmithWatermanIsland_;
155 typedef Tag<SmithWatermanIsland_> const SmithWatermanIsland;
157 //////////////////////////////////////////////////////////////////////////////
160 .Tag.RNA Folding Algorithms.value.Nussinov:
161 Nussinov style RNA folding algorithm
164 typedef Tag<Nussinov_> const Nussinov;
166 //////////////////////////////////////////////////////////////////////////////
169 //////////////////////////////////////////////////////////////////////////////
171 }// namespace SEQAN_NAMESPACE_MAIN
173 #endif //#ifndef SEQAN_HEADER_...