Configuration element for setting a fixed size band. More...
#include <seqan3/alignment/configuration/align_config_band.hpp>
Public Member Functions | |
Constructor, destructor and assignment | |
constexpr | band_fixed_size ()=default |
Defaulted. | |
constexpr | band_fixed_size (band_fixed_size const &)=default |
Defaulted. | |
constexpr | band_fixed_size (band_fixed_size &&)=default |
Defaulted. | |
constexpr band_fixed_size & | operator= (band_fixed_size const &)=default |
Defaulted. | |
constexpr band_fixed_size & | operator= (band_fixed_size &&)=default |
Defaulted. | |
~band_fixed_size ()=default | |
Defaulted. | |
constexpr | band_fixed_size (seqan3::align_cfg::lower_diagonal const lower_diagonal, seqan3::align_cfg::upper_diagonal const upper_diagonal) |
Initialises the fixed size band by setting the lower and the upper matrix diagonal. More... | |
Public Attributes | |
int32_t | lower_diagonal {std::numeric_limits<int32_t>::lowest()} |
The selected lower diagonal. Defaults to std::numeric_limits<int32_t>::lowest() . | |
int32_t | upper_diagonal {std::numeric_limits<int32_t>::max()} |
The selected upper diagonal. Defaults to std::numeric_limits<int32_t>::max() . | |
Configuration element for setting a fixed size band.
Configures the banded alignment algorithm. Currently only a fixed size band is allowed. The band is given in form of a seqan3::align_cfg::lower_diagonal and a seqan3::align_cfg::upper_diagonal. A diagonal represents the cells in the alignment matrix that are not crossed by the alignment either downwards by the lower diagonal or rightwards by the upper diagonal. Thus any computed alignment will be inside the area defined by the lower and the upper diagonal.
If this configuration is default constructed or not set during the algorithm configuration the full alignment matrix will be computed.
Before the execution of the alignment algorithm the band configuration is validated. If the user provided an invalid band, e.g. the upper diagonal is smaller than the lower diagonal, the alignment matrix would be ill configured such that the requested alignment method cannot be computed (because the global alignment requires the first cell and the last cell of the matrix to be reachable), then a seqan3::invalid_alignment_configuration will be thrown.
|
no-apiinlineconstexpr |
Initialises the fixed size band by setting the lower and the upper matrix diagonal.
lower_diagonal | The selected lower diagonal. Defaults to std::numeric_limits<int32_t>::lowest() . |
upper_diagonal | The selected upper diagonal. Defaults to std::numeric_limits<int32_t>::max() . |
The lower diagonal represents the lower bound of the banded matrix, i.e. the alignment cannot pass below this diagonal. Similar, the upper diagonal represents the upper bound of the alignment. During the alignment configuration and execution the band parameters will be checked and an exception will be thrown in case of an invalid configuration.