An alignment matrix that combines a score matrix with a trace matrix into a common interface.
More...
template<std::ranges::input_range score_matrix_t, std::ranges::input_range trace_matrix_t>
requires (std::ranges::input_range<std::ranges::range_reference_t<score_matrix_t>> && std::ranges::input_range<std::ranges::range_reference_t<trace_matrix_t>>)
class seqan3::detail::combined_score_and_trace_matrix< score_matrix_t, trace_matrix_t >
An alignment matrix that combines a score matrix with a trace matrix into a common interface.
- Template Parameters
-
score_matrix_t | The type of the score matrix; must model std::ranges::input_range (for more requirements see details section). |
trace_matrix_t | The type of the trace matrix; must model std::ranges::input_range (for more requirements see details section). |
To compute the actual, alignment an additional trace matrix is required. It stores the trace directions to the previous cells for any computed cell within the alignment matrix. The following matrix combines a given score with a trace matrix into a complete alignment matrix. The iterator increments over the columns of each underlying matrix and combines them into a zip view, i.e. the combined alignment matrix is a range over ranges with the inner range also modelling std::ranges::input_range. To provide a uniform interface to the alignment algorithm, the returned zip view is further transformed such that its reference type is a seqan3::detail::affine_cell_proxy.
template<std::ranges::input_range score_matrix_t, std::ranges::input_range trace_matrix_t>
template<std::integral column_index_t, std::integral row_index_t>
Resizes the matrix.
- Template Parameters
-
column_index_t | The column index type; must model std::integral. |
row_index_t | The row index type; must model std::integral. |
- Parameters
-
[in] | column_count | The number of columns for this matrix. |
[in] | row_count | The number of rows for this matrix. |
[in] | initial_score | The initial score used to initialise the score matrix. |
Resizes the underlying score and trace matrix to the given dimensions.
Complexity
The complexity depends on the resize complexity of the underlying score and trace matrix.
Exception
Strong exception guarantee. Might throw std::bad_alloc.