1 // ========================================================================== 2 // SeqAn - The Library for Sequence Analysis 3 // ========================================================================== 4 // Copyright (c) 2006-2010, Knut Reinert, FU Berlin 5 // All rights reserved. 6 // 7 // Redistribution and use in source and binary forms, with or without 8 // modification, are permitted provided that the following conditions are met: 9 // 10 // * Redistributions of source code must retain the above copyright 11 // notice, this list of conditions and the following disclaimer. 12 // * Redistributions in binary form must reproduce the above copyright 13 // notice, this list of conditions and the following disclaimer in the 14 // documentation and/or other materials provided with the distribution. 15 // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 // its contributors may be used to endorse or promote products derived 17 // from this software without specific prior written permission. 18 // 19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 // DAMAGE. 30 // 31 // ========================================================================== 32 33 #ifndef SEQAN_HEADER_BASIC_TAG_H 34 #define SEQAN_HEADER_BASIC_TAG_H 35 36 namespace SEQAN_NAMESPACE_MAIN 37 { 38 39 40 ////////////////////////////////////////////////////////////////////////////// 41 42 /** 43 .Tag.DotDrawing 44 ..summary:Switch to trigger drawing in dot format. 45 ..value.DotDrawing:Graphs in dot format. 46 ..include:seqan/basic.h 47 */ 48 49 struct DotDrawing_; 50 typedef Tag<DotDrawing_> const DotDrawing; 51 52 53 /** 54 .Tag.HammingDistance 55 ..summary:Switch to trigger Hamming distance, which is a measure of character substitutions. 56 ..include:seqan/basic.h 57 */ 58 59 /** 60 .Tag.LevenshteinDistance 61 ..summary:Switch to trigger Levenshtein distance, which is a measure of edit operations (character substitutions, deletions or insertions). 62 ..remarks:$EditDistance$ is a synonym for $LevenshteinDistance$. 63 ..see:Spec.EditDistance 64 ..include:seqan/basic.h 65 */ 66 67 struct HammingDistance_; 68 struct LevenshteinDistance_; 69 70 typedef Tag<HammingDistance_> HammingDistance; 71 typedef Tag<LevenshteinDistance_> LevenshteinDistance; 72 typedef Tag<LevenshteinDistance_> EditDistance; 73 74 75 ////////////////////////////////////////////////////////////////////////////// 76 77 78 ////////////////////////////////////////////////////////////////////////////// 79 // Alignment: Tags 80 ////////////////////////////////////////////////////////////////////////////// 81 //Sollte eigentlich nach align/, aber da jetzt ja so viele 82 //alignment algorithmen in graph/ gelandet sind... 83 84 /** 85 .Tag.Global Alignment Algorithms: 86 ..summary:Global alignment algorithm used by globalAlignment. 87 ..see:Function.globalAlignment 88 ..see:Tag.Local Alignment Algorithms 89 ..include:seqan/basic.h 90 */ 91 92 ////////////////////////////////////////////////////////////////////////////// 93 94 /** 95 .Tag.Global Alignment Algorithms.value.NeedlemanWunsch: 96 Dynamic programming algorithm for alignments by Needleman and Wunsch. 97 ..include:seqan/basic.h 98 */ 99 100 struct NeedlemanWunsch_; 101 typedef Tag<NeedlemanWunsch_> NeedlemanWunsch; 102 103 ////////////////////////////////////////////////////////////////////////////// 104 105 /** 106 .Tag.Global Alignment Algorithms.value.BandedNeedlemanWunsch: 107 The Needleman-Wunsch alignment algorithm in a banded version. 108 ..include:seqan/basic.h 109 */ 110 struct BandedNeedlemanWunsch_; 111 typedef Tag<BandedNeedlemanWunsch_> BandedNeedlemanWunsch; 112 113 114 ////////////////////////////////////////////////////////////////////////////// 115 116 /** 117 .Tag.Global Alignment Algorithms.value.Gotoh: 118 Gotoh's affine gap cost alignment algorithm. 119 ..include:seqan/basic.h 120 */ 121 struct Gotoh_; 122 typedef Tag<Gotoh_> Gotoh; 123 124 ////////////////////////////////////////////////////////////////////////////// 125 126 /** 127 .Tag.Global Alignment Algorithms.value.BandedGotoh: 128 Gotoh's affine gap cost alignment algorithm in a banded version. 129 ..include:seqan/basic.h 130 */ 131 struct BandedGotoh_; 132 typedef Tag<BandedGotoh_> BandedGotoh; 133 134 ////////////////////////////////////////////////////////////////////////////// 135 136 /** 137 .Tag.Global Alignment Algorithms.value.MyersBitVector: 138 Myers' bit vector alignment algorithm for edit distance. 139 Note that this algorithm does not returns the alignment itself, but only computes the score. 140 ..include:seqan/basic.h 141 */ 142 struct MyersBitVector_; 143 typedef Tag<MyersBitVector_> const MyersBitVector; 144 145 ////////////////////////////////////////////////////////////////////////////// 146 147 /** 148 .Tag.Global Alignment Algorithms.value.MyersHirschberg: 149 Myers' bit vector algorithm for edit distance combined with Hirschberg's linear space alignment algorithm. 150 ..include:seqan/basic.h 151 */ 152 struct MyersHirschberg_; 153 typedef Tag<MyersHirschberg_> const MyersHirschberg; 154 155 ////////////////////////////////////////////////////////////////////////////// 156 157 /** 158 .Tag.Global Alignment Algorithms.value.Hirschberg: 159 Hirschberg's linear space global alignment algorithm. 160 ..include:seqan/basic.h 161 */ 162 struct Hirschberg_; 163 typedef Tag<Hirschberg_> const Hirschberg; 164 165 ////////////////////////////////////////////////////////////////////////////// 166 167 /** 168 .Tag.Global Alignment Algorithms.value.Lcs: 169 Longest common subsequence algorithm. 170 ..include:seqan/basic.h 171 */ 172 struct Lcs_; 173 typedef Tag<Lcs_> const Lcs; 174 175 ////////////////////////////////////////////////////////////////////////////// 176 ////////////////////////////////////////////////////////////////////////////// 177 178 /** 179 .Tag.Local Alignment Algorithms: 180 ..summary:Local alignment algorithm used by localAlignment. 181 ..see:Function.localAlignment 182 ..include:seqan/basic.h 183 */ 184 185 ////////////////////////////////////////////////////////////////////////////// 186 187 /** 188 .Tag.Local Alignment Algorithms.value.SmithWaterman: 189 Triggers a Smith Waterman local alignment algorithm. 190 ..include:seqan/basic.h 191 */ 192 struct SmithWaterman_; 193 typedef Tag<SmithWaterman_> const SmithWaterman; 194 195 ////////////////////////////////////////////////////////////////////////////// 196 197 /** 198 .Tag.Local Alignment Algorithms.value.BandedSmithWaterman: 199 Triggers a banded version of the Smith Waterman local alignment algorithm. 200 ..include:seqan/basic.h 201 */ 202 struct BandedSmithWaterman_; 203 typedef Tag<BandedSmithWaterman_> const BandedSmithWaterman; 204 205 ////////////////////////////////////////////////////////////////////////////// 206 207 /** 208 .Tag.Local Alignment Algorithms.value.WatermanEggert: 209 Local alignment algorithm by Waterman and Eggert with "declumping" (i.e. only non-overlapping local alignments are computed). 210 .Tag.Local Alignment Algorithms.value.SmithWatermanClump: 211 Same as $WatermanEggert$. 212 ..include:seqan/basic.h 213 */ 214 struct SmithWatermanClump_; 215 typedef Tag<SmithWatermanClump_> const SmithWatermanClump; 216 typedef Tag<SmithWatermanClump_> const WatermanEggert; 217 218 ////////////////////////////////////////////////////////////////////////////// 219 220 /** 221 .Tag.Local Alignment Algorithms.value.BandedWatermanEggert: 222 Triggers a banded version of the local alignment algorithm by Waterman and Eggert with "declumping". 223 .Tag.Local Alignment Algorithms.value.BandedSmithWatermanClump: 224 Same as $BandedWatermanEggert$. 225 ..include:seqan/basic.h 226 */ 227 struct BandedWatermanEggert_; 228 typedef Tag<BandedWatermanEggert_> const BandedSmithWatermanClump; 229 typedef Tag<BandedWatermanEggert_> const BandedWatermanEggert; 230 231 ////////////////////////////////////////////////////////////////////////////// 232 233 /*DISABLED 234 .Tag.RNA Folding Algorithms.value.Nussinov: 235 Nussinov style RNA folding algorithm 236 ..include:seqan/basic.h 237 */ 238 struct Nussinov_; 239 typedef Tag<Nussinov_> const Nussinov; 240 241 ////////////////////////////////////////////////////////////////////////////// 242 243 struct Blat_; 244 typedef Tag<Blat_> const Blat; 245 246 247 ////////////////////////////////////////////////////////////////////////////// 248 249 }// namespace SEQAN_NAMESPACE_MAIN 250 251 #endif //#ifndef SEQAN_HEADER_... 252