A CRTP base class for scoring schemes. More...
#include <seqan3/alignment/scoring/scoring_scheme_base.hpp>
Inheritance diagram for seqan3::scoring_scheme_base< derived_t, alphabet_t, score_t >:Public Types | |
Member types | |
| using | score_type = score_t |
| Type of the score values. | |
| using | alphabet_type = alphabet_t |
| Type of the underlying alphabet. | |
| using | matrix_size_type = std::remove_const_t< decltype(alphabet_size< alphabet_t >)> |
| Size type that can hold the dimension of the matrix (i.e. size of the alphabet). | |
| using | matrix_type = std::array< std::array< score_type, matrix_size >, matrix_size > |
| Type of the internal matrix (a two-dimensional array). | |
Public Member Functions | |
Constructors, destructor and assignment | |
| constexpr | scoring_scheme_base (scoring_scheme_base const &) noexcept=default |
| Defaulted. | |
| constexpr | scoring_scheme_base (scoring_scheme_base &&) noexcept=default |
| Defaulted. | |
| constexpr scoring_scheme_base & | operator= (scoring_scheme_base const &) noexcept=default |
| Defaulted. | |
| constexpr scoring_scheme_base & | operator= (scoring_scheme_base &&) noexcept=default |
| Defaulted. | |
| ~scoring_scheme_base () noexcept=default | |
| Defaulted. | |
| constexpr | scoring_scheme_base () noexcept |
| The default constructor (delegates to set_hamming_distance()). | |
| template<arithmetic score_arg_t> | |
| constexpr | scoring_scheme_base (match_score< score_arg_t > const ms, mismatch_score< score_arg_t > const mms) |
| Constructor for the simple scheme (delegates to set_simple_scheme()). More... | |
| constexpr | scoring_scheme_base (matrix_type const &matrix) noexcept |
| Constructor for a custom scheme (delegates to set_custom_matrix()). More... | |
Scheme selection | |
| constexpr void | set_hamming_distance () noexcept |
Set the hamming scheme, a variant of the simple scheme where match is scored 0 and mismatch -1. | |
| template<arithmetic score_arg_t> | |
| constexpr void | set_simple_scheme (match_score< score_arg_t > const ms, mismatch_score< score_arg_t > const mms) |
| Set the simple scheme (everything is either match or mismatch). More... | |
| constexpr void | set_custom_matrix (matrix_type const &matrix) noexcept |
| Set a custom scheme by passing a full matrix with arbitrary content. More... | |
Accessors | |
| template<typename alph1_t , typename alph2_t > | |
| constexpr score_t & | score (alph1_t const alph1, alph2_t const alph2) noexcept |
| Score two letters (either two nucleotids or two amino acids). More... | |
| template<typename alph1_t , typename alph2_t > | |
| constexpr score_t | score (alph1_t const alph1, alph2_t const alph2) const noexcept |
| Score two letters (either two nucleotids or two amino acids). More... | |
Comparison operators | |
| constexpr bool | operator== (derived_t const &rhs) const noexcept |
Checks whether *this is equal to rhs. | |
| constexpr bool | operator!= (derived_t const &rhs) const noexcept |
Checks whether *this is not equal to rhs. | |
Static Public Attributes | |
| static constexpr matrix_size_type | matrix_size = alphabet_size<alphabet_t> |
| Size of the matrix dimensions (i.e. size of the alphabet). | |
A CRTP base class for scoring schemes.
| derived_t | The derived type. |
| alphabet_t | Type of the largest target alphabet. |
| score_type | Type of the score values in the internal matrix. |
This type is never used directly, instead use seqan3::nucleotide_scoring_scheme or seqan3::aminoacid_scoring_scheme.
This class is only implementation detail and not required for most users. Types that model seqan3::scoring_scheme can (but don't need to!) inherit from it.
|
inlineconstexpr |
Constructor for the simple scheme (delegates to set_simple_scheme()).
| score_arg_t | The underlying type of the arguments. |
| [in] | ms | Matches shall be given this value (of type seqan3::match_score). |
| [in] | mms | Mismatches shall be given this value (of type seqan3::mismatch_score). |
| std::invalid_argument | Thrown if you pass a value that is to large/low to be represented by score_t. |
|
inlineconstexprnoexcept |
Constructor for a custom scheme (delegates to set_custom_matrix()).
| [in] | matrix | A full matrix that is copied into the scheme. |
|
inlineconstexprnoexcept |
Score two letters (either two nucleotids or two amino acids).
| alph1_t | Type of the first letter. |
| alph2_t | Type of the second letter (needn't be the same as alph1_t). |
| [in] | alph1 | The first letter to score. |
| [in] | alph2 | The second letter to score. |
|
inlineconstexprnoexcept |
Score two letters (either two nucleotids or two amino acids).
| alph1_t | Type of the first letter. |
| alph2_t | Type of the second letter (needn't be the same as alph1_t). |
| [in] | alph1 | The first letter to score. |
| [in] | alph2 | The second letter to score. |
|
inlineconstexprnoexcept |
Set a custom scheme by passing a full matrix with arbitrary content.
| [in] | matrix | A full matrix that is copied into the scheme. |
|
inlineconstexpr |
Set the simple scheme (everything is either match or mismatch).
| score_arg_t | The underlying type of the arguments. |
| [in] | ms | Matches shall be given this value (of type seqan3::match_score). |
| [in] | mms | Mismatches shall be given this value (of type seqan3::mismatch_score). |
| std::invalid_argument | Thrown if you pass a value that is to large/low to be represented by score_t. |