Search related views. More...
Classes | |
struct | seqan3::detail::kmer_hash_fn |
views::kmer_hash's range adaptor object type (non-closure). More... | |
class | seqan3::detail::kmer_hash_view< urng_t > |
The type returned by seqan3::views::kmer_hash. More... | |
struct | seqan3::detail::minimiser_fn |
seqan3::views::minimiser's range adaptor object type (non-closure). More... | |
struct | seqan3::detail::minimiser_hash_fn |
seqan3::views::minimiser_hash's range adaptor object type (non-closure). More... | |
class | seqan3::detail::minimiser_view< urng1_t, urng2_t > |
The type returned by seqan3::views::minimiser. More... | |
struct | seqan3::seed |
strong_type for seed. More... | |
struct | seqan3::window_size |
strong_type for the window_size. More... | |
Variables | |
constexpr auto | seqan3::views::kmer_hash |
Computes hash values for each position of a range via a given shape. More... | |
constexpr auto | seqan3::views::minimiser |
Computes minimisers for a range of comparable values. A minimiser is the smallest value in a window. More... | |
Search related views.
|
inlineconstexpr |
Computes hash values for each position of a range via a given shape.
urng_t | The type of the range being processed. See below for requirements. [template parameter is omitted in pipe notation] |
[in] | urange | The range being processed. [parameter is omitted in pipe notation] |
[in] | shape | The seqan3::shape that determines how to compute the hash value. |
urange
and the number of 1s \(s\) of shape
it must hold that \(s>\frac{64}{\log_2\sigma}\), i.e. hashes resulting from the shape/alphabet combination can be represented in an uint64_t
.Concepts and traits | urng_t (underlying range type) | rrng_t (returned range type) |
---|---|---|
std::ranges::input_range | required | preserved |
std::ranges::forward_range | required | preserved |
std::ranges::bidirectional_range | preserved | |
std::ranges::random_access_range | preserved | |
std::ranges::contiguous_range | lost | |
std::ranges::viewable_range | required | guaranteed |
std::ranges::view | guaranteed | |
std::ranges::sized_range | preserved | |
std::ranges::common_range | preserved | |
std::ranges::output_range | lost | |
seqan3::const_iterable_range | preserved | |
std::ranges::range_reference_t | seqan3::semialphabet | std::size_t |
See the views submodule documentation for detailed descriptions of the view properties.
|
inlineconstexpr |
Computes minimisers for a range of comparable values. A minimiser is the smallest value in a window.
urng_t | The type of the first range being processed. See below for requirements. [template parameter is omitted in pipe notation] |
[in] | urange1 | The range being processed. [parameter is omitted in pipe notation] |
[in] | window_size | The number of values in one window. |
A minimiser is the smallest value in a window. For example for the following list of hash values [28, 100, 9, 23, 4, 1, 72, 37, 8]
and 4 as window_size
, the minimiser values are [9, 4, 1]
.
The minimiser can be calculated for one given range or for two given ranges, where the minimizer is the smallest value in both windows. For example for the following list of hash values [28, 100, 9, 23, 4, 1, 72, 37, 8]
and [30, 2, 11, 101, 199, 73, 34, 900]
and 4 as window_size
, the minimiser values are [2, 4, 1]
.
Note that in the interface with the second underlying range the const-iterable property will only be preserved if both underlying ranges are const-iterable.
In case there are multiple minimal values within one window, the minimum and therefore the minimiser is ambiguous. We choose the rightmost value as the minimiser of the window, and when shifting the window, the minimiser is only changed if there appears a value that is strictly smaller than the current minimum. This approach is termed robust winnowing by Chirag et al. and is proven to work especially well on repeat regions.
Concepts and traits | urng_t (underlying range type) | rrng_t (returned range type) |
---|---|---|
std::ranges::input_range | required | preserved |
std::ranges::forward_range | required | preserved |
std::ranges::bidirectional_range | lost | |
std::ranges::random_access_range | lost | |
std::ranges::contiguous_range | lost | |
std::ranges::viewable_range | required | guaranteed |
std::ranges::view | guaranteed | |
std::ranges::sized_range | lost | |
std::ranges::common_range | lost | |
std::ranges::output_range | lost | |
seqan3::const_iterable_range | preserved | |
std::ranges::range_reference_t | std::totally_ordered | std::totally_ordered |
See the views submodule documentation for detailed descriptions of the view properties.