Raptor 3.0.1
A fast and space-efficient pre-filter for querying very large collections of nucleotide sequences
 
Loading...
Searching...
No Matches
raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::membership_agent_type Class Reference

Manages membership queries for the raptor::hierarchical_interleaved_bloom_filter. More...

#include <raptor/hierarchical_interleaved_bloom_filter.hpp>

Public Member Functions

Lookup
template<std::ranges::forward_range value_range_t>
std::vector< int64_t > const & bulk_contains (value_range_t &&values, size_t const threshold) &noexcept
 Determines set membership of given values, and returns the user bin indices of occurrences.
 
template<std::ranges::range value_range_t>
std::vector< int64_t > const & bulk_contains (value_range_t &&values, size_t const threshold) &&noexcept=delete
 

Public Attributes

std::vector< int64_t > result_buffer
 Stores the result of bulk_contains().
 

Private Types

using hibf_t = hierarchical_interleaved_bloom_filter< data_layout_mode >
 The type of the augmented hierarchical_interleaved_bloom_filter.
 

Private Member Functions

template<std::ranges::forward_range value_range_t>
void bulk_contains_impl (value_range_t &&values, int64_t const ibf_idx, size_t const threshold)
 Helper for recursive membership querying.
 

Private Attributes

hibf_t const *const hibf_ptr {nullptr}
 A pointer to the augmented hierarchical_interleaved_bloom_filter.
 

Constructors, destructor and assignment

 membership_agent_type (hibf_t const &hibf)
 Construct a membership_agent_type for an existing hierarchical_interleaved_bloom_filter.
 
 membership_agent_type ()=default
 Defaulted.
 
 membership_agent_type (membership_agent_type const &)=default
 Defaulted.
 
membership_agent_typeoperator= (membership_agent_type const &)=default
 Defaulted.
 
 membership_agent_type (membership_agent_type &&)=default
 Defaulted.
 
membership_agent_typeoperator= (membership_agent_type &&)=default
 Defaulted.
 
 ~membership_agent_type ()=default
 Defaulted.
 

Detailed Description

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
class raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::membership_agent_type

Manages membership queries for the raptor::hierarchical_interleaved_bloom_filter.

See also
raptor::hierarchical_interleaved_bloom_filter::user_bins::filename_of_user_bin

In contrast to the [seqan3::interleaved_bloom_filter][1], the result will consist of indices of user bins.

Constructor & Destructor Documentation

◆ membership_agent_type()

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::membership_agent_type::membership_agent_type ( hibf_t const &  hibf)
inlineexplicitprivate

Member Function Documentation

◆ bulk_contains()

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
template<std::ranges::forward_range value_range_t>
std::vector< int64_t > const & raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::membership_agent_type::bulk_contains ( value_range_t &&  values,
size_t const  threshold 
) &
inlinenoexcept

Determines set membership of given values, and returns the user bin indices of occurrences.

Parameters
[in]valuesThe values to process; must model std::ranges::forward_range.
[in]thresholdReport a user bin if there are at least this many hits.
Attention
The result of this function must always be bound via reference, e.g. auto &, to prevent copying.
Sequential calls to this function invalidate the previously returned reference.

Thread safety

Concurrent invocations of this function are not thread safe, please create a raptor::hierarchical_interleaved_bloom_filter::membership_agent_type for each thread.


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