30 template <
typename id_t,
37 struct alignment_result_value_type
44 back_coord_t back_coordinate{};
46 front_coord_t front_coordinate{};
51 score_debug_matrix_t score_debug_matrix{};
53 trace_debug_matrix_t trace_debug_matrix{};
60 alignment_result_value_type()
62 -> alignment_result_value_type<std::nullopt_t *, std::nullopt_t *>;
65 template <
typename id_t,
typename score_t>
66 alignment_result_value_type(id_t, score_t)
67 -> alignment_result_value_type<id_t, score_t>;
70 template <
typename id_t,
typename score_t,
typename back_coord_t>
71 alignment_result_value_type(id_t, score_t, back_coord_t)
72 -> alignment_result_value_type<id_t, score_t, back_coord_t>;
75 template <
typename id_t,
typename score_t,
typename back_coord_t,
typename front_coord_t>
76 alignment_result_value_type(id_t, score_t, back_coord_t, front_coord_t)
77 -> alignment_result_value_type<id_t, score_t, back_coord_t, front_coord_t>;
80 template <
typename id_t,
typename score_t,
typename back_coord_t,
typename front_coord_t,
typename alignment_t>
81 alignment_result_value_type(id_t, score_t, back_coord_t, front_coord_t, alignment_t)
82 -> alignment_result_value_type<id_t, score_t, back_coord_t, front_coord_t, alignment_t>;
102 template <
typename alignment_result_traits>
104 requires detail::is_type_specialisation_of_v<alignment_result_traits, detail::alignment_result_value_type>
110 alignment_result_traits data;
116 using id_t = decltype(data.id);
119 using score_t = decltype(data.score);
121 using back_coord_t = decltype(data.back_coordinate);
123 using front_coord_t = decltype(data.front_coordinate);
125 using alignment_t = decltype(data.alignment);
154 constexpr id_t
id() const noexcept
156 static_assert(!std::is_same_v<id_t, std::nullopt_t *>,
157 "Identifier is not available but should.");
164 constexpr score_t
score() const noexcept
166 static_assert(!std::is_same_v<score_t, std::nullopt_t *>,
167 "Alignment score is not available but should.");
179 static_assert(!std::is_same_v<back_coord_t, std::nullopt_t *>,
180 "Trying to access the back coordinate, although it was not requested in the alignment " 182 return data.back_coordinate;
197 static_assert(!std::is_same_v<front_coord_t, std::nullopt_t *>,
198 "Trying to access the front coordinate, although it was not requested in the alignment " 200 return data.front_coordinate;
209 constexpr alignment_t
const &
alignment() const noexcept
211 static_assert(!std::is_same_v<alignment_t, std::nullopt_t *>,
212 "Trying to access the alignment, although it was not requested in the alignment configuration.");
213 return data.alignment;
229 constexpr
auto const & score_matrix()
const noexcept
232 "Trying to access the score matrix, although it was not requested in the alignment configuration.");
233 return data.score_debug_matrix;
247 constexpr
auto const & trace_matrix()
const noexcept
250 "Trying to access the trace matrix, although it was not requested in the alignment configuration.");
251 return data.trace_debug_matrix;
constexpr id_t id() const noexcept
Returns the alignment identifier.
Definition: alignment_result.hpp:154
constexpr back_coord_t const & back_coordinate() const noexcept
Returns the back coordinate of the alignment.
Definition: alignment_result.hpp:177
Provides seqan3::type_list and auxiliary type traits.
The main SeqAn3 namespace.
Stores the alignment results and gives access to score, alignment and the front and back coordinates...
Definition: alignment_result.hpp:106
Definition: aligned_sequence_concept.hpp:36
The (pairwise) alignment stored in an seqan3::alignment object.
constexpr front_coord_t const & front_coordinate() const noexcept
Returns the front coordinate of the alignment.
Definition: alignment_result.hpp:195
constexpr score_t score() const noexcept
Returns the alignment score.
Definition: alignment_result.hpp:164
constexpr alignment_t const & alignment() const noexcept
Returns the actual alignment, i.e. the base pair matching.
Definition: alignment_result.hpp:209
alignment_result(alignment_result_traits value)
Constructs a seqan3::alignment_result from an alignment_result_traits object.
Definition: alignment_result.hpp:136