The algorithm that performs a bidirectional search on a bidirectional FM index using (optimal) search schemes.
More...
#include <seqan3/search/detail/search_scheme_algorithm.hpp>
|
template<typename query_t , typename delegate_t > |
void | perform_search_by_hit_strategy (std::vector< typename index_t::cursor_type > &internal_hits, query_t &query, search_param error_state, delegate_t const &on_hit_delegate) |
| Calls search_algo_bi depending on the search strategy (hit configuration) given in the configuration.
|
|
template<bool abort_on_hit, typename query_t , typename delegate_t >
requires (template_specialisation_of<typename index_t::cursor_type, bi_fm_index_cursor>) |
void | search_algo_bi (query_t &query, search_param const error_left, delegate_t &&delegate) |
| Searches a query sequence in a bidirectional index.
|
|
|
index_t const * | index_ptr {nullptr} |
| A pointer to the bidirectional fm index which is used to perform the bidirectional search.
|
|
uint8_t | stratum {} |
| The stratum value if set.
|
|
template<typename configuration_t, typename index_t, typename... policies_t>
requires (
template_specialisation_of<typename index_t::cursor_type,
bi_fm_index_cursor>)
class seqan3::detail::search_scheme_algorithm< configuration_t, index_t, policies_t >
The algorithm that performs a bidirectional search on a bidirectional FM index using (optimal) search schemes.
- Template Parameters
-
◆ search_scheme_algorithm() [no-api]
template<typename configuration_t , typename index_t , typename... policies_t>
Constructs from a configuration object and an index.
- Template Parameters
-
- Parameters
-
[in] | cfg | The configuration object that guides the search algorithm. |
[in] | index | The index used in the algorithm. |
Initialises the stratum value from the configuration if it was set by the user.
◆ operator()() [no-api]
template<typename configuration_t , typename index_t , typename... policies_t>
template<
tuple_like indexed_query_t, typename callback_t >
requires (
std::tuple_size_v<indexed_query_t> == 2) && std::ranges::forward_range<std::tuple_element_t<1, indexed_query_t>> && std::invocable<callback_t,
search_result_type>
Searches a query sequence in a bidirectional index.
- Template Parameters
-
indexed_query_t | The type of the indexed query sequence; must model seqan3::tuple_like with exactly two elements and the second tuple element must model std::ranges::forward_range over the index's alphabet. |
callback_t | The callback type to be invoked on a search result; must model std::invocable with the search result. |
- Parameters
-
[in] | indexed_query | The indexed query sequence to be searched in the index. |
[in] | callback | The callback to call on a search result. |
The indexed_query parameter is a pair of an index and a query which shall be searched in the index. The search result can then be identified by the index that was associated with the given query.
Complexity
where is the total number of maximum errors.
◆ perform_search_by_hit_strategy() [no-api]
template<typename configuration_t , typename index_t , typename... policies_t>
template<typename query_t , typename delegate_t >
Calls search_algo_bi depending on the search strategy (hit configuration) given in the configuration.
- Template Parameters
-
query_t | Must model std::ranges::input_range over the index's alphabet. |
- Parameters
-
[in,out] | internal_hits | The result vector to be filled. |
[in] | query | Query sequence to be searched with the cursor. |
[in] | error_state | Number of errors for matching the query sequence. |
[in] | on_hit_delegate | The function to be executed on every single (hit) result. |
The documentation for this class was generated from the following file: