17 #include <type_traits>
34 namespace seqan3::detail
42 template <std::ranges::forward_range first_range_t,
43 std::ranges::forward_range second_range_t,
44 typename configuration_t>
46 requires is_type_specialisation_of_v<std::remove_cvref_t<configuration_t>, configuration>
48 struct align_result_selector
52 using traits_type = alignment_configuration_traits<configuration_t>;
54 using score_type =
typename alignment_configuration_traits<
59 using debug_score_matrix_type = two_dimensional_matrix<std::optional<score_type>,
61 matrix_major_order::column>;
63 using debug_trace_matrix_type = two_dimensional_matrix<std::optional<trace_directions>,
65 matrix_major_order::column>;
69 using configured_end_position_type =
std::conditional_t<traits_type::compute_end_positions,
70 seqan3::detail::advanceable_alignment_coordinate<>,
73 using configured_begin_position_type =
std::conditional_t<traits_type::compute_begin_positions,
74 seqan3::detail::advanceable_alignment_coordinate<>,
77 using configured_alignment_type =
typename lazy_conditional_t<traits_type::compute_sequence_alignment,
78 lazy<make_pairwise_alignment_type,
90 debug_score_matrix_type,
94 using configured_debug_trace_matrix_type =
96 debug_trace_matrix_type,
101 using type = alignment_result_value_type<configured_sequence1_id_type,
102 configured_sequence2_id_type,
103 configured_score_type,
104 configured_end_position_type,
105 configured_begin_position_type,
106 configured_alignment_type,
107 configured_debug_score_matrix_type,
108 configured_debug_trace_matrix_type>;
Provides seqan3::detail::advanceable_alignment_coordinate.
Provides seqan3::align_cfg::detail::debug.
Provides seqan3::detail::aligned_sequence_builder.
Provides seqan3::gap_decorator.
Provides helper type traits for the configuration and execution of the alignment algorithm.
Provides seqan3::configuration and utility functions.
Provides various transformation traits used by the range module.
Provides type traits for working with templates.
Provides lazy template instantiation traits.
Adaptations of concepts from the Ranges TS.
Provides the declaration of seqan3::detail::trace_directions.
Provides seqan3::detail::two_dimensional_matrix.
Provides various type traits on generic types.