1#ifndef KAORI_DUAL_BARCODES_SINGLE_END_WITH_DIAGNOSTICS_HPP 
    2#define KAORI_DUAL_BARCODES_SINGLE_END_WITH_DIAGNOSTICS_HPP 
   25template<SeqLength max_size_, 
int num_variable_>
 
   38        const char* template_seq, 
 
   40        const std::vector<BarcodePool>& barcode_pools, 
 
 
   68    DualBarcodesSingleEnd<max_size_> my_dual_handler;
 
   69    CombinatorialBarcodesSingleEnd<max_size_, num_variable_> my_combo_handler;
 
   77        State(
typename DualBarcodesSingleEnd<max_size_>::State ds, 
typename CombinatorialBarcodesSingleEnd<max_size_, num_variable_>::State cs) :
 
   78            dual_state(std::move(ds)), combo_state(std::move(cs)) {}
 
   83        typename DualBarcodesSingleEnd<max_size_>::State dual_state;
 
   84        typename CombinatorialBarcodesSingleEnd<max_size_, num_variable_>::State combo_state;
 
   90    State initialize()
 const {
 
   91        return State(my_dual_handler.initialize(), my_combo_handler.initialize());
 
   94    void reduce(State& s) {
 
   95        my_dual_handler.reduce(s.dual_state);
 
   96        my_combo_handler.reduce(s.combo_state);
 
   99    constexpr static bool use_names = 
false;
 
  108    void process(State& state, 
const std::pair<const char*, const char*>& x)
 const {
 
  110        if (!my_dual_handler.process(state.dual_state, x)) {
 
  111            my_combo_handler.process(state.combo_state, x);
 
  125        return my_dual_handler.get_counts();
 
 
  133        return my_combo_handler.get_combinations();
 
 
  140        return my_dual_handler.get_total();
 
 
 
Process single-end combinatorial barcodes.
 
Process single-end dual barcodes.
 
Hash a combination of barcode indices.
Definition utils.hpp:286
 
Handler for dual barcodes with extra diagnostics.
Definition DualBarcodesSingleEndWithDiagnostics.hpp:26
 
DualBarcodesSingleEndWithDiagnostics(const char *template_seq, SeqLength template_length, const std::vector< BarcodePool > &barcode_pools, const typename DualBarcodesSingleEnd< max_size_ >::Options &options)
Definition DualBarcodesSingleEndWithDiagnostics.hpp:37
 
Count get_total() const
Definition DualBarcodesSingleEndWithDiagnostics.hpp:139
 
const std::unordered_map< std::array< BarcodeIndex, num_variable_ >, Count, CombinationHash< num_variable_ > > & get_combinations() const
Definition DualBarcodesSingleEndWithDiagnostics.hpp:132
 
const std::vector< Count > & get_counts() const
Definition DualBarcodesSingleEndWithDiagnostics.hpp:124
 
Namespace for the kaori barcode-matching library.
Definition BarcodePool.hpp:16
 
std::size_t SeqLength
Definition utils.hpp:37
 
unsigned long long Count
Definition utils.hpp:67
 
Optional parameters for CombinatorialBarcodeSingleEnd.
Definition CombinatorialBarcodesSingleEnd.hpp:37
 
bool use_first
Definition CombinatorialBarcodesSingleEnd.hpp:46
 
DuplicateAction duplicates
Definition CombinatorialBarcodesSingleEnd.hpp:56
 
SearchStrand strand
Definition CombinatorialBarcodesSingleEnd.hpp:51
 
int max_mismatches
Definition CombinatorialBarcodesSingleEnd.hpp:41
 
Optional parameters for DualBarcodeSingleEnd.
Definition DualBarcodesSingleEnd.hpp:36
 
int max_mismatches
Definition DualBarcodesSingleEnd.hpp:40
 
bool use_first
Definition DualBarcodesSingleEnd.hpp:45
 
SearchStrand strand
Definition DualBarcodesSingleEnd.hpp:50
 
Utilites for sequence matching.