SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
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. | |
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.
SeqAn offers the computation of banded alignments to reduce the running time of the algorithm. This can be helpful if the region in which the optimal alignment exists is known a priori. To specify the banded alignment the developer can use the seqan3::align_cfg::band_fixed_size option.
This band configuration is initialised with a seqan3::align_cfg::lower_diagonal and a seqan3::align_cfg::upper_diagonal. The term diagonal is used to describe the position of the band boundary within the alignment matrix. The given value represents the offset that the lower, respectively upper, diagonal is shifted from the main diagonal, which starts in the origin of the alignment matrix. Accordingly, a negative value shifts the band boundary downwards in the alignment matrix and a positive value shifts the band boundary to the right.
The band parameters might be restricted depending on the configured alignment algorithm, e.g. the origin of the alignment matrix and the sink (the last cell in the last column) must be covered by the band when a global alignment is ought to be computed.
In general, the upper diagonal must always be greater than or equal to the lower diagonal to specify a valid band.
|
inlineconstexpr |
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.