SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
align_result_selector.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
10#pragma once
11
12#include <optional>
13#include <ranges>
14#include <type_traits>
15
30
31namespace seqan3::detail
32{
39template <std::ranges::forward_range first_range_t, std::ranges::forward_range second_range_t, typename configuration_t>
40 requires is_type_specialisation_of_v<std::remove_cvref_t<configuration_t>, configuration>
42{
43private:
47 using score_type =
71 typename lazy_conditional_t<traits_type::compute_sequence_alignment,
74
79
83
89
90public:
100};
101
102} // namespace seqan3::detail
Provides seqan3::detail::advanceable_alignment_coordinate.
Provides seqan3::align_cfg::detail::debug.
Provides seqan3::detail::aligned_sequence_builder.
Provides helper type traits for the configuration and execution of the alignment algorithm.
Provides various type traits on generic types.
Implements an internal alignment coordinate that can be used as an argument to the std::ranges::iota_...
Definition advanceable_alignment_coordinate.hpp:63
A two dimensional matrix used inside of alignment algorithms.
Definition two_dimensional_matrix.hpp:62
Provides seqan3::configuration and utility functions.
Provides various transformation traits used by the range module.
Provides seqan3::gap_decorator.
Provides seqan3::gapped.
@ column
Accesses matrix in column major order.
Provides lazy template instantiation traits.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Helper metafunction to select the alignment result type based on the configuration.
Definition align_result_selector.hpp:42
std::conditional_t< traits_type::output_sequence1_id, uint32_t, disabled_type > configured_sequence1_id_type
The configured sequence id type for the first sequence if selected.
Definition align_result_selector.hpp:76
typename lazy_conditional_t< traits_type::compute_sequence_alignment, lazy< make_pairwise_alignment_type, first_range_t &, second_range_t & >, std::type_identity< disabled_type > >::type configured_alignment_type
The configured alignment type if selected.
Definition align_result_selector.hpp:73
typename alignment_configuration_traits< std::remove_reference_t< configuration_t > >::original_score_type score_type
The user configured score type.
Definition align_result_selector.hpp:48
two_dimensional_matrix< std::optional< trace_directions >, std::allocator< std::optional< trace_directions > >, matrix_major_order::column > debug_trace_matrix_type
Trace matrix type in debug mode.
Definition align_result_selector.hpp:58
std::conditional_t< traits_type::compute_begin_positions, seqan3::detail::advanceable_alignment_coordinate<>, disabled_type > configured_begin_position_type
The configured begin position type if selected.
Definition align_result_selector.hpp:68
std::conditional_t< traits_type::compute_end_positions, seqan3::detail::advanceable_alignment_coordinate<>, disabled_type > configured_end_position_type
The configured end position type if selected.
Definition align_result_selector.hpp:64
alignment_result_value_type< configured_sequence1_id_type, configured_sequence2_id_type, configured_score_type, configured_end_position_type, configured_begin_position_type, configured_alignment_type, configured_debug_score_matrix_type, configured_debug_trace_matrix_type > type
The selected result type.
Definition align_result_selector.hpp:99
std::conditional_t< traits_type::output_sequence2_id, uint32_t, disabled_type > configured_sequence2_id_type
The configured sequence id type for the second sequence if selected.
Definition align_result_selector.hpp:78
std::conditional_t< traits_type::compute_score, score_type, disabled_type > configured_score_type
The configured score type if selected.
Definition align_result_selector.hpp:60
std::conditional_t< traits_type::is_debug, debug_score_matrix_type, disabled_type > configured_debug_score_matrix_type
The debug score matrix type if selected.
Definition align_result_selector.hpp:82
A traits type for the alignment algorithm that exposes static information stored within the alignment...
Definition alignment/pairwise/detail/type_traits.hpp:80
static constexpr bool compute_sequence_alignment
Flag indicating whether the sequence alignment shall be computed.
Definition alignment/pairwise/detail/type_traits.hpp:161
static constexpr bool compute_begin_positions
Flag indicating whether the begin positions shall be computed.
Definition alignment/pairwise/detail/type_traits.hpp:158
static constexpr bool is_debug
Flag indicating whether debug mode is enabled.
Definition alignment/pairwise/detail/type_traits.hpp:122
static constexpr bool compute_end_positions
Flag indicating whether the end positions shall be computed.
Definition alignment/pairwise/detail/type_traits.hpp:156
A struct that contains the actual alignment result data.
Definition alignment_result.hpp:48
An empty type whose only purpose is to hold an uninstantiated template plus its arguments.
Definition lazy_conditional.hpp:30
Provides type traits for working with templates.
Provides the declaration of seqan3::detail::trace_directions.
Provides seqan3::detail::transformation_trait_or.
Provides seqan3::detail::two_dimensional_matrix.
Hide me