SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::edit_distance_unbanded_max_errors_policy< derived_t, edit_traits > Class Template Reference

Only available when default_edit_distance_trait_type::use_max_errors is true. More...

#include <seqan3/alignment/pairwise/edit_distance_unbanded.hpp>

+ Inheritance diagram for seqan3::detail::edit_distance_unbanded_max_errors_policy< derived_t, edit_traits >:

Protected Member Functions

Constructors, destructor and assignment
 edit_distance_unbanded_max_errors_policy () noexcept=default
 Defaulted.
 
 edit_distance_unbanded_max_errors_policy (edit_distance_unbanded_max_errors_policy const &) noexcept=default
 Defaulted.
 
 edit_distance_unbanded_max_errors_policy (edit_distance_unbanded_max_errors_policy &&) noexcept=default
 Defaulted.
 
edit_distance_unbanded_max_errors_policyoperator= (edit_distance_unbanded_max_errors_policy const &) noexcept=default
 Defaulted.
 
edit_distance_unbanded_max_errors_policyoperator= (edit_distance_unbanded_max_errors_policy &&) noexcept=default
 Defaulted.
 
 ~edit_distance_unbanded_max_errors_policy () noexcept=default
 Defaulted.
 
Max Error Policy: Protected Member Functions

Defaulted.

void max_errors_init (size_t block_count) noexcept
 Initialises max_errors policy.
 
bool is_last_active_cell_within_last_row () const noexcept
 Returns true if the current active cell is within the last row.
 
bool prev_last_active_cell () noexcept
 Decrement the last active cell position.
 
void next_last_active_cell () noexcept
 Increment the last active cell position.
 
bool update_last_active_cell () noexcept
 Use the ukkonen trick and update the last active cell.
 

Static Protected Member Functions

static size_t max_rows (word_type const score_mask, unsigned const last_block, score_type const score, score_type const max_errors) noexcept
 Computes the number of max rows in the current column.
 

Protected Attributes

friend derived_t
 Befriends the derived type.
 
Max Error Policy: Protected Attributes

Defaulted.

score_type max_errors {255}
 Which score value is considered as a hit?
 
size_t last_block {0u}
 The block containing the last active cell.
 
word_type last_score_mask {}
 A mask with a bit set on the position of the last row.
 

Additional Inherited Members

- Public Types inherited from seqan3::detail::default_edit_distance_trait_type< database_t, query_t, align_config_t, is_semi_global_t, word_t >
using align_config_type = std::remove_reference_t< align_config_t >
 The type of the alignment config.
 
using alignment_result_type = typename alignment_traits_type::alignment_result_type
 The alignment result type generated by the algorithm.
 
using alignment_traits_type = alignment_configuration_traits< align_config_type >
 The alignment algorithm traits over the alignment configuration type.
 
using database_iterator = std::ranges::iterator_t< database_type >
 The type of an iterator of the database sequence.
 
using database_type = std::remove_reference_t< database_t >
 The type of the database sequence.
 
using query_alphabet_type = std::remove_reference_t< std::ranges::range_reference_t< query_type > >
 The alphabet type of the query sequence.
 
using query_type = std::remove_reference_t< query_t >
 The type of the query sequence.
 
using result_value_type = typename alignment_result_value_type_accessor< alignment_result_type >::type
 The alignment result value type.
 
using score_matrix_type = edit_distance_score_matrix_full< word_type, score_type, is_semi_global, use_max_errors >
 The type of the score matrix.
 
using score_type = typename alignment_traits_type::original_score_type
 The type of the score.
 
using trace_matrix_type = edit_distance_trace_matrix_full< word_type, is_semi_global, use_max_errors >
 The type of the trace matrix.
 
using word_type = word_t
 The type of one machine word.
 
- Static Public Attributes inherited from seqan3::detail::default_edit_distance_trait_type< database_t, query_t, align_config_t, is_semi_global_t, word_t >
static constexpr bool compute_begin_positions
 Whether the alignment configuration indicates to compute and/or store the begin positions.
 
static constexpr bool compute_end_positions
 Whether the alignment configuration indicates to compute and/or store the end positions.
 
static constexpr bool compute_matrix = compute_score_matrix || compute_trace_matrix
 Whether the alignment configuration indicates to compute and/or store the score or trace matrix.
 
static constexpr bool compute_score = true
 Whether the alignment configuration indicates to compute and/or store the score.
 
static constexpr bool compute_score_matrix = false
 Whether the alignment configuration indicates to compute and/or store the score matrix.
 
static constexpr bool compute_sequence_alignment = alignment_traits_type::compute_sequence_alignment
 Whether the alignment configuration indicates to compute and/or store the alignment of the sequences.
 
static constexpr bool compute_trace_matrix = compute_begin_positions || compute_sequence_alignment
 Whether the alignment configuration indicates to compute and/or store the trace matrix.
 
static constexpr bool is_global = !is_semi_global
 Whether the alignment is a global alignment or not.
 
static constexpr bool is_semi_global = is_semi_global_t::value
 Whether the alignment is a semi-global alignment or not.
 
static constexpr bool use_max_errors = align_config_type::template exists<align_cfg::min_score>()
 When true the computation will use the ukkonen trick with the last active cell and bounds the error to config.max_errors.
 
static constexpr uint8_t word_size = bits_of<word_type>
 The size of one machine word.
 

Detailed Description

template<typename derived_t, typename edit_traits>
class seqan3::detail::edit_distance_unbanded_max_errors_policy< derived_t, edit_traits >

Only available when default_edit_distance_trait_type::use_max_errors is true.

Member Function Documentation

◆ max_rows()

template<typename derived_t , typename edit_traits >
static size_t seqan3::detail::edit_distance_unbanded_max_errors_policy< derived_t, edit_traits >::max_rows ( word_type const  score_mask,
unsigned const  last_block,
score_type const  score,
score_type const  max_errors 
)
inlinestaticprotectednoexcept

Computes the number of max rows in the current column.

Template Parameters
score_typeThe type of the score.
Parameters
score_maskThe mask with a bit set at the position where the score change.
last_blockThe block containing the last active cell.
scoreThe score of the current column.
max_errorsWhich score value is considered as a hit?
Returns
Number of max rows in the current column.

◆ update_last_active_cell()

template<typename derived_t , typename edit_traits >
bool seqan3::detail::edit_distance_unbanded_max_errors_policy< derived_t, edit_traits >::update_last_active_cell ( )
inlineprotectednoexcept

Use the ukkonen trick and update the last active cell.

Returns
true if computation should be aborted, false if computation should continue.

The documentation for this class was generated from the following file:
Hide me