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()
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()()
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
\(O(|query|^e)\) where \(e\) is the total number of maximum errors.
◆ perform_search_by_hit_strategy()
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: