SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches

Provides data structures for representing alignment coordinates and alignments as a matrix. More...

+ Collaboration diagram for Matrix:

Classes

class  seqan3::detail::advanceable_alignment_coordinate< state >
 Implements an internal alignment coordinate that can be used as an argument to the std::ranges::iota_view. More...
 
class  seqan3::detail::affine_cell_proxy< tuple_t >
 A proxy for an affine score matrix cell. More...
 
interface  affine_score_and_trace_cell
 The concept for a type that models an affine cell of the combined score and trace matrix. More...
 
interface  affine_score_cell
 The concept for a type that models an affine cell of the score matrix. More...
 
interface  affine_trace_cell
 The concept for a type that models an affine cell of the trace matrix. More...
 
class  seqan3::detail::aligned_sequence_builder< fst_sequence_t, sec_sequence_t >
 Builds the alignment for a given pair of sequences and the respective trace. More...
 
class  seqan3::detail::alignment_matrix_column_major_range_base< derived_t >
 Provides a range interface for alignment matrices. More...
 
struct  seqan3::detail::alignment_optimum< score_t >
 Stores the current optimum of the alignment algorithm. More...
 
class  seqan3::detail::alignment_score_matrix_one_column< score_t >
 An alignment score matrix storing only a single column for the computation. More...
 
class  seqan3::detail::alignment_score_matrix_one_column_banded< score_t >
 A banded alignment score matrix storing only a single banded column for the computation. More...
 
struct  seqan3::detail::alignment_score_matrix_one_column_base< score_t >
 A base class for alignment score matrices using only one column to compute the matrix. More...
 
struct  seqan3::detail::alignment_score_matrix_proxy< score_type >
 A proxy type for a unified access to the score matrix during alignment computation. More...
 
struct  seqan3::detail::alignment_trace_matrix_base< trace_t >
 A crtp-base class for alignment traceback matrices. More...
 
class  seqan3::detail::alignment_trace_matrix_full< trace_t, coordinate_only >
 An alignment traceback matrix storing the entire traceback matrix. More...
 
class  seqan3::detail::alignment_trace_matrix_full_banded< trace_t, coordinate_only >
 An alignment traceback matrix storing the entire banded traceback matrix. More...
 
struct  seqan3::detail::alignment_trace_matrix_proxy< coordinate_type, trace_type >
 A proxy type for a unified access to the traceback matrix during alignment computation. More...
 
interface  arithmetic_or_simd
 The concept for a type that models either seqan3::arithmetic or seqan3::simd::simd_concept. More...
 
struct  seqan3::detail::column_index_type< index_type >
 A strong type for designated initialisation of the column index of a matrix. More...
 
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. More...
 
class  seqan3::detail::coordinate_matrix< index_t >
 A matrix over coordinates. More...
 
class  seqan3::detail::debug_matrix< matrix_t, first_sequence_t, second_sequence_t >
 A debug matrix to wrap alignment matrices and sequences and make them printable together. More...
 
class  seqan3::detail::edit_distance_score_matrix_full< word_t, score_t, is_semi_global, use_max_errors >
 The underlying data structure of seqan3::detail::edit_distance_unbanded that represents the score matrix. More...
 
class  seqan3::detail::edit_distance_trace_matrix_full< word_t, is_semi_global, use_max_errors >
 The underlying data structure of seqan3::detail::edit_distance_unbanded that represents the trace matrix. More...
 
struct  seqan3::detail::make_aligned_sequence_type< range_t >
 A transformation trait that returns the correct aligned sequence type for a given sequence type. More...
 
struct  seqan3::detail::make_pairwise_alignment_type< first_sequence_t, second_sequence_t >
 A transformation trait that returns the correct pairwise alignment type for two given sequence types. More...
 
interface  seqan3::detail::matrix< matrix_t >
 Defines the requirements of a matrix (e.g. score matrices, trace matrices). More...
 
struct  seqan3::detail::matrix_index< index_t >
 A representation of a location or offset within a two-dimensional matrix. More...
 
struct  seqan3::detail::number_cols
 Strong type for setting the column dimension of a matrix. More...
 
struct  seqan3::detail::number_rows
 Strong type for setting the row dimension of a matrix. More...
 
struct  seqan3::detail::row_index_type< index_type >
 A strong type for designated initialisation of the row index of a matrix. More...
 
class  seqan3::detail::score_matrix_single_column< score_t >
 Score matrix for the pairwise alignment using only a single column. More...
 
class  seqan3::detail::trace_iterator< matrix_iter_t >
 A trace iterator an unbanded trace matrix. More...
 
class  seqan3::detail::trace_iterator_banded< matrix_iter_t >
 A trace iterator for banded trace matrices. More...
 
class  seqan3::detail::trace_iterator_base< derived_t, matrix_iter_t >
 A CRTP-base class for trace iterator implementations for the alignment algorithms. More...
 
class  seqan3::detail::trace_matrix_full< trace_t >
 Trace matrix for the pairwise alignment using the full trace matrix. More...
 
interface  tracedirections_or_simd
 The concept for a type that either is the same type as seqan3::detail::trace_directions or models the seqan3::simd::simd_concept. More...
 
class  seqan3::detail::two_dimensional_matrix< value_t, allocator_t, order >
 A two dimensional matrix used inside of alignment algorithms. More...
 
interface  seqan3::detail::two_dimensional_matrix_iterator< iter_t >
 A concept for iterators over a two dimensional matrix, e.g. seqan3::detail::two_dimensional_matrix. More...
 
class  seqan3::detail::two_dimensional_matrix_iterator_base< derived_t, order >
 A crtp-base class for iterators over seqan3::detail::two_dimensional_matrix. More...
 

Typedefs

using matrix_coordinate = matrix_index< size_t >
 A coordinate type to access an element inside of a two-dimensional matrix.
 
using seqan3::detail::matrix_offset = matrix_index< std::ptrdiff_t >
 An offset type to move a matrix iterator in two-dimensional space.
 
template<typename value_t >
using seqan3::detail::row_wise_matrix = two_dimensional_matrix< value_t >
 A matrix represented in a one-dimensional std::vector accessing the data in row-major-order.
 
template<simd_index index_t>
using seqan3::detail::simd_matrix_coordinate = matrix_index< index_t >
 A coordinate type to access an element inside of a two-dimensional simd vector matrix.
 

Enumerations

enum struct  seqan3::detail::advanceable_alignment_coordinate_state : uint8_t { seqan3::detail::advanceable_alignment_coordinate_state::none , seqan3::detail::advanceable_alignment_coordinate_state::column , seqan3::detail::advanceable_alignment_coordinate_state::row }
 Represents a state to specify the implementation of the seqan3::detail::advanceable_alignment_coordinate. More...
 
enum struct  seqan3::detail::matrix_major_order : uint8_t { seqan3::detail::matrix_major_order::column , seqan3::detail::matrix_major_order::row }
 Selects the major order of the matrix. More...
 
enum struct  seqan3::detail::trace_directions : uint8_t {
  seqan3::detail::trace_directions::none = 0b00000 , seqan3::detail::trace_directions::diagonal = 0b00001 , seqan3::detail::trace_directions::up_open = 0b00110 , seqan3::detail::trace_directions::up = 0b00100 ,
  seqan3::detail::trace_directions::left_open = 0b11000 , seqan3::detail::trace_directions::left = 0b10000 , seqan3::detail::trace_directions::carry_up_open = 0b00010 , seqan3::detail::trace_directions::carry_left_open = 0b01000
}
 The possible directions a trace can have. The values can be combined by the logical |-operator. More...
 

Variables

template<typename score_type >
constexpr score_type seqan3::detail::matrix_inf = std::numeric_limits<score_type>::max()
 A special score which represents infinity.
 

Detailed Description

Provides data structures for representing alignment coordinates and alignments as a matrix.

See also
Sequence Alignment

Typedef Documentation

◆ row_wise_matrix

template<typename value_t >
using seqan3::detail::row_wise_matrix = typedef two_dimensional_matrix<value_t>

A matrix represented in a one-dimensional std::vector accessing the data in row-major-order.

Template Parameters
value_tThe value type.

◆ simd_matrix_coordinate

template<simd_index index_t>
using seqan3::detail::simd_matrix_coordinate = typedef matrix_index<index_t>

A coordinate type to access an element inside of a two-dimensional simd vector matrix.

Template Parameters
index_tThe underlying index type; must model seqan3::simd::simd_index.

Enumeration Type Documentation

◆ advanceable_alignment_coordinate_state

Represents a state to specify the implementation of the seqan3::detail::advanceable_alignment_coordinate.

The class seqan3::detail::advanceable_alignment_coordinate can be extended with an incrementable and decrementable policy such that it can be used as a value type inside of a iota_view. This state offers three policies: none, which leaves the functionality of seqan3::detail::advanceable_alignment_coordinate untouched; column, which adds the respective functionality only for the column index and row, which adds the respective functionality only for the row index.

Enumerator
none 

The corresponding alignment coordinate will not be incrementable/decrementable.

column 

The corresponding alignment coordinate will be incrementable/decrementable in the column index.

row 

The corresponding alignment coordinate will be incrementable/decrementable in the row index.

◆ matrix_major_order

enum struct seqan3::detail::matrix_major_order : uint8_t
strong

Selects the major order of the matrix.

This enum is used to select between column and row major order access patterns for seqan3::detail::two_dimensional_matrix. This matrix type stores a two-dimensional matrix in a flattened one-dimensional vector, whose access orientation can be adapted using this policy.

See also
seqan3::detail::two_dimensional_matrix_iterator_base
Enumerator
column 

Accesses matrix in column major order.

row 

Accesses matrix in row major order.

◆ trace_directions

enum struct seqan3::detail::trace_directions : uint8_t
strong

The possible directions a trace can have. The values can be combined by the logical |-operator.

See also
seqan3::enum_bitwise_operators enables combining enum values.
seqan3::detail::alignment_trace_matrix implementations use this enum as matrix entry type.
Enumerator
none 

No trace.

diagonal 

Trace comes from the diagonal entry.

up_open 

Trace comes from the above entry, while opening the gap.

up 

Trace comes from the above entry.

left_open 

Trace comes from the left entry, while opening the gap.

left 

Trace comes from the left entry.

carry_up_open 

Carry bit for the last up open even if it is not the maximum value.

carry_left_open 

Carry bit for the last left open even if it is not the maximum value.

Hide me