SeqAn3 3.3.0-rc.1
The Modern C++ library for sequence analysis.
 
Loading...
Searching...
No Matches
alignment/configuration/detail.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2022, Knut Reinert & MPI für molekulare Genetik
4// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5// shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6// -----------------------------------------------------------------------------------------------------
7
13#pragma once
14
16
17namespace seqan3::detail
18{
19
23enum struct align_config_id : uint8_t
24{
25 band,
26 debug,
27 gap,
28 global,
29 local,
30 min_score,
31 on_result,
38 parallel,
41 scoring,
43 SIZE
44};
45
46// ----------------------------------------------------------------------------
47// compatibility_table
48// ----------------------------------------------------------------------------
49
55template <>
57 static_cast<uint8_t>(align_config_id::SIZE)>
59 //band
60 //| debug
61 //| | gap
62 //| | | global
63 //| | | | local
64 //| | | | | min_score
65 //| | | | | | on_result
66 //| | | | | | | output_alignment
67 //| | | | | | | | output_begin_position
68 //| | | | | | | | | output_end_position
69 //| | | | | | | | | | output_sequence1_id
70 //| | | | | | | | | | | output_sequence2_id
71 //| | | | | | | | | | | | output_score
72 //| | | | | | | | | | | | | parallel
73 //| | | | | | | | | | | | | | result_type
74 //| | | | | | | | | | | | | | | score_type
75 //| | | | | | | | | | | | | | | | scoring
76 //| | | | | | | | | | | | | | | | | vectorised
77 {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 0: band
78 {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 1: debug
79 {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 2: gap
80 {1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 3: global
81 {1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 4: local
82 {1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 5: max_error
83 {1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 6: on_result
84 {1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 7: output_alignment
85 {1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 8: output_begin_position
86 {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}, // 9: output_end_position
87 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1}, // 10: output_sequence1_id
88 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1}, // 11: output_sequence2_id
89 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, // 12: output_score
90 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1}, // 13: parallel
91 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1}, // 14: result_type
92 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1}, // 15: score_type
93 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, // 16: scoring
94 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0} // 17: vectorised
95 }};
96
97} // namespace seqan3::detail
Provides concepts for the configuration classes.
align_config_id
An internal enum to check for a consistent configuration object.
Definition: alignment/configuration/detail.hpp:24
constexpr std::array< std::array< bool, static_cast< uint8_t >(align_config_id::SIZE)>, static_cast< uint8_t >(align_config_id::SIZE)> compatibility_table< align_config_id >
Declaration of algorithm specific compatibility table.
Definition: alignment/configuration/detail.hpp:58
@ output_score
ID for the score output option.
@ output_sequence2_id
ID for the sequence2 id output option.
@ output_alignment
ID for the alignment output option.
@ on_result
ID for the on_result option.
@ parallel
ID for the parallel option.
@ band
ID for the band option.
@ output_end_position
ID for the end position output option.
@ SIZE
Represents the number of configuration elements.
@ output_sequence1_id
ID for the sequence1 id output option.
@ result_type
ID for the result_type option.
@ global
ID for the global alignment option.
@ output_begin_position
ID for the begin position output option.
@ debug
ID for the debug option.
@ min_score
ID for the min_score option.
@ vectorised
ID for the vectorised option.
@ gap
ID for the gap_cost_affine option.
@ scoring
ID for the scoring_scheme option.
@ score_type
ID for the score_type option.
@ local
ID for the local alignment option.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29