kaori
A C++ library for barcode extraction and matching
Loading...
Searching...
No Matches
kaori::SimpleBarcodeSearch Class Reference

Search against known barcodes. More...

#include <BarcodeSearch.hpp>

Classes

struct  Options
 Optional parameters for SimpleBarcodeSearch. More...
 
struct  State
 State of the search. More...
 

Public Member Functions

 SimpleBarcodeSearch ()=default
 
 SimpleBarcodeSearch (const BarcodePool &barcode_pool, const Options &options)
 
State initialize () const
 
void reduce (State &state)
 
void search (const std::string &search_seq, State &state) const
 
void search (const std::string &search_seq, State &state, int allowed_mismatches) const
 

Detailed Description

Search against known barcodes.

Given an input sequence, this class performs exact and mismatch-aware searches against a pool of known barcodes. Mismatches may be distributed anywhere along the length of the sequence, see AnyMismatches for details. Caching is used to avoid redundant work when a mismatching sequence has been previously encountered.

Constructor & Destructor Documentation

◆ SimpleBarcodeSearch() [1/2]

kaori::SimpleBarcodeSearch::SimpleBarcodeSearch ( )
default

Default constructor. This is only provided for composition purposes; methods of this class should only be called on properly constructed instance.

◆ SimpleBarcodeSearch() [2/2]

kaori::SimpleBarcodeSearch::SimpleBarcodeSearch ( const BarcodePool & barcode_pool,
const Options & options )
inline
Parameters
barcode_poolPool of barcode sequences.
optionsFurther options.

Member Function Documentation

◆ initialize()

State kaori::SimpleBarcodeSearch::initialize ( ) const
inline

Initialize the search state for thread-safe execution.

Returns
A new state object for use in search() and reduce().

◆ reduce()

void kaori::SimpleBarcodeSearch::reduce ( State & state)
inline

Incorporate the mismatch cache from state into the cache for this SimpleBarcodeSearch instance. This enables regular synchronization of the cache (and its related search optimizations) across threads.

Parameters
stateA state object generated by initialize(). Typically this has already been used in search() at least once.

◆ search() [1/2]

void kaori::SimpleBarcodeSearch::search ( const std::string & search_seq,
State & state ) const
inline

Search the known sequences in the barcode pool against an input sequence. The number of allowed mismatches is equal to the Options::max_mismatches specified in the constructor.

Parameters
search_seqThe input sequence to use for searching. This is expected to have the same length as the known sequences.
stateA State object generated by initialize(). On return, state is filled with the details of the best-matching barcode sequence, if any exists.

◆ search() [2/2]

void kaori::SimpleBarcodeSearch::search ( const std::string & search_seq,
State & state,
int allowed_mismatches ) const
inline

Search the known sequences in the barcode pool for an input sequence with a user-supplied number of allowed mismatches. It is expected that allowed_mismatches is no greater than the Options::max_mismatches specified in the constructor. Lower values can improve efficiency in situations where some mismatches have already been "used up", e.g., by matching the template sequence in ScanTemplate.

Parameters
search_seqThe input sequence to use for searching. This is expected to have the same length as the known sequences.
stateA state object generated by initialize(). On return, state is filled with the details of the best-matching barcode sequence, if any exists.
allowed_mismatchesAllowed number of mismatches. This should not be greater than the Options::max_mismatches specified in the constructor.

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