SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
policy_scoring_scheme.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
15
16namespace seqan3::detail
17{
18
30template <typename alignment_configuration_t, typename scoring_scheme_t>
32{
33protected:
35 scoring_scheme_t scoring_scheme{};
36
46
50 explicit policy_scoring_scheme(alignment_configuration_t const & config) :
51 scoring_scheme{seqan3::get<align_cfg::scoring_scheme>(config).scheme}
52 {}
54
70 template <typename alphabet_t>
72 auto scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
73 {
74 return scoring_scheme.make_score_profile(std::forward<alphabet_t>(alphabet));
75 }
76
78 template <semialphabet alphabet_t>
79 alphabet_t scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
80 {
81 return std::forward<alphabet_t>(alphabet);
82 }
83};
84
85} // namespace seqan3::detail
Provides seqan3::align_cfg::scoring_scheme.
Stores the configured scoring scheme used for this algorithm.
Definition policy_scoring_scheme.hpp:32
~policy_scoring_scheme()=default
Defaulted.
policy_scoring_scheme & operator=(policy_scoring_scheme &&)=default
Defaulted.
scoring_scheme_t scoring_scheme
The scoring scheme used for this alignment algorithm.
Definition policy_scoring_scheme.hpp:35
policy_scoring_scheme(alignment_configuration_t const &config)
Construction and initialisation using the alignment configuration.
Definition policy_scoring_scheme.hpp:50
policy_scoring_scheme(policy_scoring_scheme const &)=default
Defaulted.
policy_scoring_scheme()=default
Defaulted.
policy_scoring_scheme(policy_scoring_scheme &&)=default
Defaulted.
auto scoring_scheme_profile_column(alphabet_t &&alphabet) const noexcept
Maybe converts the given sequence value to a specific profile used by the underlying scoring scheme.
Definition policy_scoring_scheme.hpp:72
policy_scoring_scheme & operator=(policy_scoring_scheme const &)=default
Defaulted.
alphabet_t scoring_scheme_profile_column(alphabet_t &&alphabet) const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition policy_scoring_scheme.hpp:79
Provides seqan3::configuration and utility functions.
The generic alphabet concept that covers most data types used in ranges.
The generic simd concept.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition configuration.hpp:412
Provides seqan3::simd::simd_concept.
Hide me