24struct seed : seqan3::detail::strong_type<uint64_t, seed>
26 using seqan3::detail::strong_type<uint64_t,
seed>::strong_type;
31struct window_size : seqan3::detail::strong_type<uint32_t, window_size>
33 using seqan3::detail::strong_type<uint32_t,
window_size>::strong_type;
37namespace seqan3::detail
41struct minimiser_hash_fn
49 constexpr auto operator()(shape
const & shape, window_size
const window_size)
const
51 return seqan3::detail::adaptor_from_functor{*
this, shape, window_size};
61 constexpr auto operator()(shape
const & shape, window_size
const window_size, seed
const seed)
const
63 return seqan3::detail::adaptor_from_functor{*
this, shape, window_size, seed};
75 template <std::ranges::range urng_t>
76 constexpr auto operator()(urng_t && urange,
78 window_size
const window_size,
79 seed
const seed =
seqan3::seed{0x8F3F73B5CF1C9ADE})
const
81 static_assert(std::ranges::viewable_range<urng_t>,
82 "The range parameter to views::minimiser_hash cannot be a temporary of a non-view range.");
83 static_assert(std::ranges::forward_range<urng_t>,
84 "The range parameter to views::minimiser_hash must model std::ranges::forward_range.");
86 "The range parameter to views::minimiser_hash must be over elements of seqan3::semialphabet.");
88 if (shape.size() > window_size.get())
92 | std::views::transform(
95 return i ^ seed.get();
100 | std::views::transform(
103 return i ^ seed.get();
105 | std::views::reverse;
107 return seqan3::detail::minimiser_view(forward_strand, reverse_strand, window_size.get() - shape.size() + 1);
Provides seqan3::views::complement.
constexpr auto minimiser_hash
Computes minimisers for a range with a given shape, window size and seed.
Definition minimiser_hash.hpp:193
auto const complement
A view that converts a range of nucleotides to their complement.
Definition complement.hpp:67
constexpr auto kmer_hash
Computes hash values for each position of a range via a given shape.
Definition kmer_hash.hpp:750
The basis for seqan3::alphabet, but requires only rank interface (not char).
Provides seqan3::views::kmer_hash.
Provides seqan3::views::minimiser.
The SeqAn namespace for views.
Definition char_strictly_to.hpp:22
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:29
Provides basic data structure for strong types.
strong_type for seed.
Definition minimiser_hash.hpp:25
strong_type for the window_size.
Definition minimiser_hash.hpp:32