BitMagic-C++
|
Utility for keeping all DNA finger print vectors and search using various techniques. More...
Public Types | |
enum | { eA = 0 , eC , eG , eT , eN , eEnd } |
enum | { eA = 0 , eC , eG , eT , eN , eEnd } |
Public Member Functions | |
DNA_FingerprintScanner () | |
void | Build (const vector< char > &sequence) |
Build fingerprint bit-vectors from the original sequence. More... | |
const bm::bvector & | GetVector (char letter) const |
Return fingerprint bit-vector. More... | |
void | Find (const string &word, vector< unsigned > &res) |
Find word strings using shift + and on fingerprint vectors (horizontal, non-fused basic method) More... | |
void | FindAggFused (const string &word, vector< unsigned > &res) |
This method uses cache blocked aggregator with fused SHIFT+AND kernel. More... | |
void | FindCollection (const vector< tuple< string, int > > &words, vector< vector< unsigned >> &hits) |
Find a set of words in one pass using pipeline of aggregators (this is very experimental) More... | |
DNA_FingerprintScanner () | |
void | Build (const vector< char > &sequence) |
Build fingerprint bit-vectors from the original sequence. More... | |
void | BuildBulk (const vector< char > &sequence) |
Build index using bulk insert iterator. More... | |
void | BuildParallel (const vector< char > &sequence, unsigned threads) |
Build fingerprint bit-vectors using bulk insert iterator and parallel processing. More... | |
void | MergeVector (char letter, bm::bvector<> &bv) |
Thread sync bit-vector merge. More... | |
const bm::bvector & | GetVector (char letter) const |
Return fingerprint bit-vector. More... | |
Protected Member Functions | |
void | TranslateResults (const bm::bvector<> &bv, unsigned left_shift, vector< unsigned > &res) |
Translate search results vector using (word size) left shift. More... | |
Utility for keeping all DNA finger print vectors and search using various techniques.
Definition at line 180 of file xsample04.cpp.
anonymous enum |
Enumerator | |
---|---|
eA | |
eC | |
eG | |
eT | |
eN | |
eEnd |
Definition at line 183 of file xsample04.cpp.
anonymous enum |
Enumerator | |
---|---|
eA | |
eC | |
eG | |
eT | |
eN | |
eEnd |
Definition at line 154 of file xsample04a.cpp.
|
inline |
Build fingerprint bit-vectors from the original sequence.
Definition at line 189 of file xsample04.cpp.
References bm::BM_SORTED, eA, eC, eG, eN, and eT.
Referenced by main().
|
inline |
Build fingerprint bit-vectors from the original sequence.
Definition at line 160 of file xsample04a.cpp.
References eA, eC, eG, eN, eT, and bm::bvector< Alloc >::inserter().
|
inline |
Build index using bulk insert iterator.
Definition at line 196 of file xsample04a.cpp.
References bm::BM_SORTED, eA, eC, eG, eN, and eT.
Referenced by BuildParallel().
|
inline |
Build fingerprint bit-vectors using bulk insert iterator and parallel processing.
Definition at line 234 of file xsample04a.cpp.
References bm::BM_SORTED, BuildBulk(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), and MergeVector().
Referenced by main().
|
inline |
Find word strings using shift + and on fingerprint vectors (horizontal, non-fused basic method)
Definition at line 250 of file xsample04.cpp.
References bm::bvector< Alloc >::any(), GetVector(), bm::bvector< Alloc >::shift_right(), and TranslateResults().
Referenced by main().
|
inline |
This method uses cache blocked aggregator with fused SHIFT+AND kernel.
Definition at line 277 of file xsample04.cpp.
References bm::aggregator< BV >::add(), bm::aggregator< BV >::combine_shift_right_and(), GetVector(), bm::aggregator< BV >::reset(), and TranslateResults().
Referenced by main().
|
inline |
Find a set of words in one pass using pipeline of aggregators (this is very experimental)
Definition at line 302 of file xsample04.cpp.
References bm::aggregator_pipeline_execute(), bm::aggregator< bm::bvector<> >::BM_SHIFT_R_AND, bm::aggregator< BV >::get_target(), GetVector(), and TranslateResults().
Referenced by main().
|
inline |
Return fingerprint bit-vector.
Definition at line 226 of file xsample04.cpp.
References eA, eC, eG, eN, and eT.
Referenced by Find(), FindAggFused(), FindCollection(), and fingerprint_compare().
|
inline |
|
inline |
Thread sync bit-vector merge.
Definition at line 324 of file xsample04a.cpp.
References eA, eC, eG, eN, eT, and bm::bvector< Alloc >::merge().
Referenced by BuildParallel().
|
inlineprotected |
Translate search results vector using (word size) left shift.
Definition at line 344 of file xsample04.cpp.
References bm::bvector< Alloc >::first(), and bm::bvector< Alloc >::iterator_base::valid().
Referenced by Find(), FindAggFused(), and FindCollection().