SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
scoring_scheme_policy.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
29template <typename alignment_algorithm_t, typename scoring_scheme_t>
31{
32private:
35
40 constexpr scoring_scheme_policy() = default;
42 constexpr scoring_scheme_policy(scoring_scheme_policy const &) = default;
51
53 template <typename configuration_t>
54 scoring_scheme_policy(configuration_t const & /*config*/)
55 {}
57
59 scoring_scheme_t scoring_scheme{};
60
71 template <typename alphabet_t>
73 auto scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
74 {
75 return scoring_scheme.make_score_profile(std::forward<alphabet_t>(alphabet));
76 }
77
79 template <semialphabet alphabet_t>
80 alphabet_t scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
81 {
82 return std::forward<alphabet_t>(alphabet);
83 }
84};
85
86} // namespace seqan3::detail
Core alphabet concept and free function/type trait wrappers.
Provides various type traits on generic types.
The CRTP-policy that stores the scoring scheme used for this alignment algorithm.
Definition scoring_scheme_policy.hpp:31
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 scoring_scheme_policy.hpp:80
constexpr scoring_scheme_policy(scoring_scheme_policy const &)=default
Defaulted.
~scoring_scheme_policy()=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 scoring_scheme_policy.hpp:73
constexpr scoring_scheme_policy & operator=(scoring_scheme_policy &&)=default
Defaulted.
constexpr scoring_scheme_policy(scoring_scheme_policy &&)=default
Defaulted.
scoring_scheme_policy(configuration_t const &)
Initialise the policy.
Definition scoring_scheme_policy.hpp:54
constexpr scoring_scheme_policy()=default
Defaulted.
friend alignment_algorithm_t
Befriends the derived class to grant it access to the private members.
Definition scoring_scheme_policy.hpp:34
scoring_scheme_t scoring_scheme
The scoring scheme used for this alignment algorithm.
Definition scoring_scheme_policy.hpp:59
constexpr scoring_scheme_policy & operator=(scoring_scheme_policy const &)=default
Defaulted.
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
Provides seqan3::simd::simd_concept.
Hide me