diff --git a/docs/aahash_8hpp_source.html b/docs/aahash_8hpp_source.html index eec54a9e..16d6cfae 100644 --- a/docs/aahash_8hpp_source.html +++ b/docs/aahash_8hpp_source.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: include/btllib/aahash.hpp Source File - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,52 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
aahash.hpp
+
+
aahash.hpp
-
1#ifndef BTLLIB_AAHASH_HPP
-
2#define BTLLIB_AAHASH_HPP
-
3
-
4#include <cstdint>
-
5#include <cstring>
-
6#include <limits>
-
7#include <memory>
-
8#include <string>
-
9#include <string_view>
-
10#include <vector>
-
11
-
12#include "aahash_consts.hpp"
-
13#include "nthash_lowlevel.hpp"
-
14
-
15namespace btllib {
-
16
-
17inline uint64_t
-
18aahash_base(const char* kmer_seq, unsigned k, unsigned level = 1)
-
19{
-
20 uint64_t hash_value = 0;
-
21 for (unsigned i = 0; i < k; i++) {
-
22 hash_value = srol(hash_value);
-
23 hash_value ^= LEVEL_X_AA_SEED_TABLE[level][(unsigned char)kmer_seq[i]];
-
24 }
-
25 return hash_value;
-
26}
-
27
-
28inline uint64_t
-
29aahash_roll(uint64_t hash_value,
-
30 unsigned k,
-
31 unsigned char char_out,
-
32 unsigned char char_in,
-
33 unsigned level = 1)
-
34{
-
35 hash_value = srol(hash_value);
-
36 hash_value ^= LEVEL_X_AA_SEED_TABLE[level][char_in];
-
37 hash_value ^= AA_ROLL_TABLE(char_out, level, k);
-
38 return hash_value;
-
39}
-
40
-
41inline uint64_t
-
42aa_modify_base_with_seed(uint64_t hash_value,
-
43 const SpacedSeed& seed,
-
44 const char* kmer_seq,
-
45 const unsigned k)
-
46{
-
47 for (unsigned i = 0; i < k; i++) {
-
48 if (seed[i] != 1) {
-
49 hash_value ^= AA_ROLL_TABLE((unsigned char)kmer_seq[i], 1, k - 1 - i);
-
50 if (seed[i] != 0) {
-
51 const unsigned level = seed[i];
-
52 hash_value ^=
-
53 AA_ROLL_TABLE((unsigned char)kmer_seq[i], level, k - 1 - i);
-
54 }
-
55 }
-
56 }
-
57 return hash_value;
-
58}
-
59
-
60std::vector<SpacedSeed>
-
61aa_parse_seeds(const std::vector<std::string>& seeds);
-
62class SeedAAHash;
-
63
-
64class AAHash
-
65{
-
66 static constexpr const char* HASH_FN_NAME = "aahash1";
-
67
-
68private:
-
69 friend class SeedAAHash;
-
70
-
72 bool init();
-
73
-
74 const char* seq;
-
75 size_t seq_len;
-
76 const uint8_t hash_num;
-
77 const uint16_t k;
-
78 unsigned level;
-
79
-
80 size_t pos;
-
81 bool initialized = false;
-
82 std::unique_ptr<uint64_t[]> hashes_array;
-
83
-
84public:
-
93 AAHash(std::string_view seq,
-
94 uint8_t hash_num,
-
95 uint16_t k,
-
96 unsigned level,
-
97 size_t pos = 0)
-
98 : seq(seq.data())
-
99 , seq_len(seq.size())
-
100 , hash_num(hash_num)
-
101 , k(k)
-
102 , level(level)
-
103 , pos(pos)
-
104 , hashes_array(new uint64_t[hash_num])
-
105 {
-
106 }
-
107
-
108 AAHash(const AAHash& aahash)
-
109 : seq(aahash.seq)
-
110 , seq_len(aahash.seq_len)
-
111 , hash_num(aahash.hash_num)
-
112 , k(aahash.k)
-
113 , level(aahash.level)
-
114 , pos(aahash.pos)
-
115 , initialized(aahash.initialized)
-
116 , hashes_array(new uint64_t[hash_num])
-
117 {
-
118 std::memcpy(hashes_array.get(),
-
119 aahash.hashes_array.get(),
-
120 hash_num * sizeof(uint64_t));
-
121 }
-
122
-
123 AAHash(AAHash&&) = default;
-
124
-
138 bool roll();
-
139
-
140 const uint64_t* hashes() const { return hashes_array.get(); }
-
141 size_t get_pos() const { return pos; }
-
142 unsigned get_hash_num() const { return hash_num; }
-
143 unsigned get_k() const { return k; }
-
144 uint64_t get_forward_hash() const { return hashes_array[0]; }
-
145 unsigned get_level() const { return level; }
-
146 const char* get_seq() const { return seq; }
-
147};
-
148
- -
150{
-
151private:
-
152 AAHash aahash;
-
153 const unsigned hash_num_per_seed;
-
154 std::unique_ptr<uint64_t[]> hashes_array;
-
155 std::vector<SpacedSeed> seeds;
-
156 bool verify_seed();
-
158 void init();
-
159
-
160public:
-
172 SeedAAHash(const char* seq,
-
173 const std::vector<SpacedSeed>& seeds,
-
174 unsigned hash_num_per_seed,
-
175 unsigned k,
-
176 size_t pos = 0)
-
177 : aahash(seq, 1, k, 1, pos)
-
178 , hash_num_per_seed(hash_num_per_seed)
-
179 , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
-
180 , seeds(seeds)
-
181 {
-
182 init();
-
183 }
-
184 SeedAAHash(const std::string& seq,
-
185 const std::vector<SpacedSeed>& seeds,
-
186 unsigned hash_num_per_seed,
-
187 unsigned k,
-
188 size_t pos = 0)
-
189 : aahash(seq, 1, k, 1, pos)
-
190 , hash_num_per_seed(hash_num_per_seed)
-
191 , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
-
192 , seeds(seeds)
-
193 {
-
194 init();
-
195 }
-
196 SeedAAHash(const char* seq,
-
197 const std::vector<std::string>& seeds,
-
198 unsigned hash_num_per_seed,
-
199 unsigned k,
-
200 size_t pos = 0)
-
201 : aahash(seq, 1, k, 1, pos)
-
202 , hash_num_per_seed(hash_num_per_seed)
-
203 , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
-
204 , seeds(aa_parse_seeds(seeds))
-
205 {
-
206 init();
-
207 }
-
208 SeedAAHash(const std::string& seq,
-
209 const std::vector<std::string>& seeds,
-
210 unsigned hash_num_per_seed,
-
211 unsigned k,
-
212 size_t pos = 0)
-
213 : aahash(seq, 1, k, 1, pos)
-
214 , hash_num_per_seed(hash_num_per_seed)
-
215 , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
-
216 , seeds(aa_parse_seeds(seeds))
-
217 {
-
218 init();
-
219 }
-
220
-
221 SeedAAHash(const SeedAAHash& seed_aahash)
-
222 : aahash(seed_aahash.aahash)
-
223 , hash_num_per_seed(seed_aahash.hash_num_per_seed)
-
224 , hashes_array(new uint64_t[hash_num_per_seed * seed_aahash.seeds.size()])
-
225 , seeds(seed_aahash.seeds)
-
226 {
-
227 std::memcpy(hashes_array.get(),
-
228 seed_aahash.hashes_array.get(),
-
229 hash_num_per_seed * seeds.size() * sizeof(uint64_t));
-
230 }
-
231 SeedAAHash(SeedAAHash&&) = default;
-
232
-
246 bool roll();
-
247
-
248 const uint64_t* hashes() const { return hashes_array.get(); }
-
249
-
250 size_t get_pos() const { return aahash.get_pos(); }
-
251 unsigned get_hash_num() const { return aahash.get_hash_num(); }
-
252 unsigned get_hash_num_per_seed() const { return hash_num_per_seed; }
-
253 unsigned get_k() const { return aahash.get_k(); }
-
254};
-
255
-
256} // namespace btllib
-
257
-
258#endif
-
Definition aahash.hpp:65
-
AAHash(std::string_view seq, uint8_t hash_num, uint16_t k, unsigned level, size_t pos=0)
Definition aahash.hpp:93
- -
Definition aahash.hpp:150
-
SeedAAHash(const char *seq, const std::vector< SpacedSeed > &seeds, unsigned hash_num_per_seed, unsigned k, size_t pos=0)
Definition aahash.hpp:172
- -
Definition aahash.hpp:15
-
uint64_t srol(const uint64_t x)
Definition nthash_lowlevel.hpp:54
+
1 #ifndef BTLLIB_AAHASH_HPP
+
2 #define BTLLIB_AAHASH_HPP
+
3 
+
4 #include <cstdint>
+
5 #include <cstring>
+
6 #include <limits>
+
7 #include <memory>
+
8 #include <string>
+
9 #include <string_view>
+
10 #include <vector>
+
11 
+
12 namespace btllib {
+
13 
+
14 using SpacedSeed = std::vector<unsigned>;
+
15 
+
16 inline std::vector<SpacedSeed>
+
17 aa_parse_seeds(const std::vector<std::string>& seeds)
+
18 {
+
19  std::vector<SpacedSeed> seed_vec;
+
20  for (const auto& seed : seeds) {
+
21  SpacedSeed seed_vec_tmp;
+
22  for (const auto& c : seed) {
+
23  seed_vec_tmp.push_back((unsigned)(c - '0'));
+
24  }
+
25  seed_vec.push_back(seed_vec_tmp);
+
26  }
+
27  return seed_vec;
+
28 }
+
29 
+
30 class AAHash;
+
31 
+
32 class SeedAAHash;
+
33 
+
34 class AAHash
+
35 {
+
36  static constexpr const char* HASH_FN_NAME = "aahash1";
+
37 
+
38 private:
+
39  friend class SeedAAHash;
+
40 
+
42  bool init();
+
43 
+
44  const char* seq;
+
45  size_t seq_len;
+
46  const uint8_t hash_num;
+
47  const uint16_t k;
+
48  unsigned level;
+
49 
+
50  size_t pos;
+
51  bool initialized = false;
+
52  std::unique_ptr<uint64_t[]> hashes_array;
+
53 
+
54 public:
+
63  AAHash(std::string_view seq,
+
64  uint8_t hash_num,
+
65  uint16_t k,
+
66  unsigned level,
+
67  size_t pos = 0)
+
68  : seq(seq.data())
+
69  , seq_len(seq.size())
+
70  , hash_num(hash_num)
+
71  , k(k)
+
72  , level(level)
+
73  , pos(pos)
+
74  , hashes_array(new uint64_t[hash_num])
+
75  {
+
76  }
+
77 
+
78  AAHash(const AAHash& aahash)
+
79  : seq(aahash.seq)
+
80  , seq_len(aahash.seq_len)
+
81  , hash_num(aahash.hash_num)
+
82  , k(aahash.k)
+
83  , level(aahash.level)
+
84  , pos(aahash.pos)
+
85  , initialized(aahash.initialized)
+
86  , hashes_array(new uint64_t[hash_num])
+
87  {
+
88  std::memcpy(hashes_array.get(),
+
89  aahash.hashes_array.get(),
+
90  hash_num * sizeof(uint64_t));
+
91  }
+
92 
+
93  AAHash(AAHash&&) = default;
+
94 
+
108  bool roll();
+
109 
+
110  const uint64_t* hashes() const { return hashes_array.get(); }
+
111  size_t get_pos() const { return pos; }
+
112  unsigned get_hash_num() const { return hash_num; }
+
113  unsigned get_k() const { return k; }
+
114  uint64_t get_forward_hash() const { return hashes_array[0]; }
+
115  unsigned get_level() const { return level; }
+
116  const char* get_seq() const { return seq; }
+
117 };
+
118 
+ +
120 {
+
121 private:
+
122  AAHash aahash;
+
123  const unsigned hash_num_per_seed;
+
124  std::unique_ptr<uint64_t[]> hashes_array;
+
125  std::vector<SpacedSeed> seeds;
+
126  bool verify_seed();
+
128  void init();
+
129 
+
130 public:
+
142  SeedAAHash(const char* seq,
+
143  const std::vector<SpacedSeed>& seeds,
+
144  unsigned hash_num_per_seed,
+
145  unsigned k,
+
146  size_t pos = 0)
+
147  : aahash(seq, 1, k, 1, pos)
+
148  , hash_num_per_seed(hash_num_per_seed)
+
149  , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
+
150  , seeds(seeds)
+
151  {
+
152  init();
+
153  }
+
154  SeedAAHash(const std::string& seq,
+
155  const std::vector<SpacedSeed>& seeds,
+
156  unsigned hash_num_per_seed,
+
157  unsigned k,
+
158  size_t pos = 0)
+
159  : aahash(seq, 1, k, 1, pos)
+
160  , hash_num_per_seed(hash_num_per_seed)
+
161  , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
+
162  , seeds(seeds)
+
163  {
+
164  init();
+
165  }
+
166  SeedAAHash(const char* seq,
+
167  const std::vector<std::string>& seeds,
+
168  unsigned hash_num_per_seed,
+
169  unsigned k,
+
170  size_t pos = 0)
+
171  : aahash(seq, 1, k, 1, pos)
+
172  , hash_num_per_seed(hash_num_per_seed)
+
173  , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
+
174  , seeds(aa_parse_seeds(seeds))
+
175  {
+
176  init();
+
177  }
+
178  SeedAAHash(const std::string& seq,
+
179  const std::vector<std::string>& seeds,
+
180  unsigned hash_num_per_seed,
+
181  unsigned k,
+
182  size_t pos = 0)
+
183  : aahash(seq, 1, k, 1, pos)
+
184  , hash_num_per_seed(hash_num_per_seed)
+
185  , hashes_array(new uint64_t[hash_num_per_seed * seeds.size()])
+
186  , seeds(aa_parse_seeds(seeds))
+
187  {
+
188  init();
+
189  }
+
190 
+
191  SeedAAHash(const SeedAAHash& seed_aahash)
+
192  : aahash(seed_aahash.aahash)
+
193  , hash_num_per_seed(seed_aahash.hash_num_per_seed)
+
194  , hashes_array(new uint64_t[hash_num_per_seed * seed_aahash.seeds.size()])
+
195  , seeds(seed_aahash.seeds)
+
196  {
+
197  std::memcpy(hashes_array.get(),
+
198  seed_aahash.hashes_array.get(),
+
199  hash_num_per_seed * seeds.size() * sizeof(uint64_t));
+
200  }
+
201  SeedAAHash(SeedAAHash&&) = default;
+
202 
+
216  bool roll();
+
217 
+
218  const uint64_t* hashes() const { return hashes_array.get(); }
+
219 
+
220  size_t get_pos() const { return aahash.get_pos(); }
+
221  unsigned get_hash_num() const { return aahash.get_hash_num(); }
+
222  unsigned get_hash_num_per_seed() const { return hash_num_per_seed; }
+
223  unsigned get_k() const { return aahash.get_k(); }
+
224 };
+
225 
+
226 } // namespace btllib
+
227 
+
228 #endif
+ +
AAHash(std::string_view seq, uint8_t hash_num, uint16_t k, unsigned level, size_t pos=0)
Definition: aahash.hpp:63
+
Definition: aahash.hpp:119
+
SeedAAHash(const char *seq, const std::vector< SpacedSeed > &seeds, unsigned hash_num_per_seed, unsigned k, size_t pos=0)
Definition: aahash.hpp:142
+ +
Definition: aahash.hpp:34
diff --git a/docs/annotated.html b/docs/annotated.html index 2070aadf..66248406 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Class List - + @@ -19,8 +20,8 @@
- - + @@ -29,78 +30,94 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
Class List
+
+
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
 Nbtllib
 CAAHash
 CBlindNtHash
 CBloomFilter
 CCountingBloomFilter
 CIndexlr
 CFlag
 CMinimizer
 CRecord
 CKmerBloomFilter
 CKmerCountingBloomFilter
 CNtHash
 CProcessPipeline
 CRandSeq
 CSeedAAHash
 CSeedBloomFilter
 CSeedNtHash
 CSeqReader
 CFlag
 CRecord
 CSeqWriter
\Nbtllib
 oCAAHash
 oCSeedAAHash
 oCBloomFilter
 oCKmerBloomFilter
 oCSeedBloomFilter
 oCKmerCountingBloomFilter
 oCCountingBloomFilter
 oCIndexlr
 |oCFlag
 |oCMinimizer
 |\CRecord
 oCNtHash
 oCBlindNtHash
 oCSeedNtHash
 oCBlindSeedNtHash
 oCProcessPipeline
 oCRandSeq
 oCSeqReader
 |oCFlag
 |\CRecord
 \CSeqWriter
diff --git a/docs/bloom__filter_8hpp_source.html b/docs/bloom__filter_8hpp_source.html index 804141b2..009b136d 100644 --- a/docs/bloom__filter_8hpp_source.html +++ b/docs/bloom__filter_8hpp_source.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: include/btllib/bloom_filter.hpp Source File - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,52 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
bloom_filter.hpp
+
+
bloom_filter.hpp
-
1#ifndef BTLLIB_BLOOM_FILTER_HPP
-
2#define BTLLIB_BLOOM_FILTER_HPP
-
3
-
4#include "btllib/nthash.hpp"
-
5
-
6#include "cpptoml.h"
-
7
-
8#include <atomic>
-
9#include <climits>
-
10#include <cstdint>
-
11#include <fstream>
-
12#include <memory>
-
13#include <string>
-
14#include <vector>
-
15
-
16namespace btllib {
-
17
-
18static const uint8_t BIT_MASKS[CHAR_BIT] = {
-
19 // NOLINT
-
20 0x01, 0x02, 0x04, 0x08, // NOLINT
-
21 0x10, 0x20, 0x40, 0x80 // NOLINT
-
22};
-
23
-
24static const char* const BLOOM_FILTER_SIGNATURE = "[BTLBloomFilter_v6]";
-
25static const char* const KMER_BLOOM_FILTER_SIGNATURE =
-
26 "[BTLKmerBloomFilter_v6]";
-
27static const char* const SEED_BLOOM_FILTER_SIGNATURE =
-
28 "[BTLSeedBloomFilter_v6]";
-
29static const char* const HASH_FN = NTHASH_FN_NAME;
-
30
-
31static const unsigned MAX_HASH_VALUES = 1024;
-
32static const unsigned PLACEHOLDER_NEWLINES = 50;
-
33
-
35class BloomFilterInitializer
-
36{
-
37
-
38public:
-
39 BloomFilterInitializer(const std::string& path, const std::string& signature)
-
40 : path(path)
-
41 , ifs(path)
-
42 , table(parse_header(signature))
-
43 {
-
44 }
-
45
-
46 static bool check_file_signature(std::ifstream& ifs,
-
47 const std::string& expected_signature,
-
48 std::string& file_signature);
-
49
-
50 std::string path;
-
51 std::ifstream ifs;
-
52 std::shared_ptr<cpptoml::table> table;
-
53
-
54 BloomFilterInitializer(const BloomFilterInitializer&) = delete;
-
55 BloomFilterInitializer(BloomFilterInitializer&&) = default;
-
56
-
57 BloomFilterInitializer& operator=(const BloomFilterInitializer&) = delete;
-
58 BloomFilterInitializer& operator=(BloomFilterInitializer&&) = default;
-
59
-
60private:
-
63 std::shared_ptr<cpptoml::table> parse_header(const std::string& signature);
-
64};
-
66
- -
68{
-
69
-
70public:
- -
73
-
81 BloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn = "");
-
82
-
88 explicit BloomFilter(const std::string& path);
-
89
-
90 BloomFilter(const BloomFilter&) = delete;
-
91 BloomFilter(BloomFilter&&) = delete;
-
92
-
93 BloomFilter& operator=(const BloomFilter&) = delete;
-
94 BloomFilter& operator=(BloomFilter&&) = delete;
-
95
-
102 void insert(const uint64_t* hashes);
-
103
-
109 void insert(const std::vector<uint64_t>& hashes) { insert(hashes.data()); }
-
110
-
119 bool contains(const uint64_t* hashes) const;
-
120
-
128 bool contains(const std::vector<uint64_t>& hashes) const
-
129 {
-
130 return contains(hashes.data());
-
131 }
-
132
-
141 bool contains_insert(const uint64_t* hashes);
-
142
-
150 bool contains_insert(const std::vector<uint64_t>& hashes)
-
151 {
-
152 return contains_insert(hashes.data());
-
153 }
-
154
-
156 size_t get_bytes() const { return bytes; }
-
158 uint64_t get_pop_cnt() const;
-
160 double get_occupancy() const;
-
162 unsigned get_hash_num() const { return hash_num; }
-
164 double get_fpr() const;
-
166 const std::string& get_hash_fn() const { return hash_fn; }
-
167
-
173 void save(const std::string& path);
-
174
-
175 static void save(const std::string& path,
-
176 const cpptoml::table& table,
-
177 const char* data,
-
178 size_t n);
-
179
-
185 static bool is_bloom_file(const std::string& path)
-
186 {
-
187 return check_file_signature(path, BLOOM_FILTER_SIGNATURE);
-
188 }
-
189
-
190 static bool check_file_signature(const std::string& path,
-
191 const std::string& signature);
-
192
-
193private:
-
194 BloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
-
195
-
196 friend class KmerBloomFilter;
-
197 friend class SeedBloomFilter;
-
198
-
199 size_t bytes = 0;
-
200 size_t array_size =
-
201 0; // Should be equal to bytes, but not guaranteed by standard
-
202 size_t array_bits = 0;
-
203 unsigned hash_num = 0;
-
204 std::string hash_fn;
-
205 std::unique_ptr<std::atomic<uint8_t>[]> array;
-
206};
-
207
- -
212{
-
213
-
214public:
- -
217
-
225 KmerBloomFilter(size_t bytes, unsigned hash_num, unsigned k);
-
226
-
232 explicit KmerBloomFilter(const std::string& path);
-
233
-
234 KmerBloomFilter(const KmerBloomFilter&) = delete;
- -
236
-
237 KmerBloomFilter& operator=(const KmerBloomFilter&) = delete;
-
238 KmerBloomFilter& operator=(KmerBloomFilter&&) = delete;
-
239
-
246 void insert(const char* seq, size_t seq_len);
-
247
-
253 void insert(const std::string& seq) { insert(seq.c_str(), seq.size()); }
-
254
-
261 void insert(const uint64_t* hashes) { bloom_filter.insert(hashes); }
-
262
-
268 void insert(const std::vector<uint64_t>& hashes)
-
269 {
-
270 bloom_filter.insert(hashes);
-
271 }
-
272
-
281 unsigned contains(const char* seq, size_t seq_len) const;
-
282
-
290 unsigned contains(const std::string& seq) const
-
291 {
-
292 return contains(seq.c_str(), seq.size());
-
293 }
-
294
-
301 bool contains(const uint64_t* hashes) const
-
302 {
-
303 return bloom_filter.contains(hashes);
-
304 }
-
305
-
311 bool contains(const std::vector<uint64_t>& hashes) const
-
312 {
-
313 return bloom_filter.contains(hashes);
-
314 }
-
315
-
324 unsigned contains_insert(const char* seq, size_t seq_len);
-
325
-
333 unsigned contains_insert(const std::string& seq)
-
334 {
-
335 return contains_insert(seq.c_str(), seq.size());
-
336 }
-
337
-
346 bool contains_insert(const uint64_t* hashes)
-
347 {
-
348 return bloom_filter.contains_insert(hashes);
-
349 }
-
350
-
358 bool contains_insert(const std::vector<uint64_t>& hashes)
-
359 {
-
360 return bloom_filter.contains_insert(hashes);
-
361 }
-
362
-
364 size_t get_bytes() const { return bloom_filter.get_bytes(); }
-
366 uint64_t get_pop_cnt() const { return bloom_filter.get_pop_cnt(); }
-
368 double get_occupancy() const { return bloom_filter.get_occupancy(); }
-
370 unsigned get_hash_num() const { return bloom_filter.get_hash_num(); }
-
372 double get_fpr() const { return bloom_filter.get_fpr(); }
-
374 unsigned get_k() const { return k; }
-
376 const std::string& get_hash_fn() const { return bloom_filter.get_hash_fn(); }
-
378 BloomFilter& get_bloom_filter() { return bloom_filter; }
-
379
-
385 void save(const std::string& path);
-
386
-
392 static bool is_bloom_file(const std::string& path)
-
393 {
-
394 return btllib::BloomFilter::check_file_signature(
-
395 path, KMER_BLOOM_FILTER_SIGNATURE);
-
396 }
-
397
-
398private:
-
399 KmerBloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
-
400
-
401 friend class SeedBloomFilter;
-
402
-
403 unsigned k = 0;
-
404 BloomFilter bloom_filter;
-
405};
-
406
- -
411{
-
412
-
413public:
- -
416
-
425 SeedBloomFilter(size_t bytes,
-
426 unsigned k,
-
427 const std::vector<std::string>& seeds,
-
428 unsigned hash_num_per_seed);
-
429
-
435 explicit SeedBloomFilter(const std::string& path);
-
436
-
437 SeedBloomFilter(const SeedBloomFilter&) = delete;
- -
439
-
440 SeedBloomFilter& operator=(const SeedBloomFilter&) = delete;
-
441 SeedBloomFilter& operator=(SeedBloomFilter&&) = delete;
-
442
-
449 void insert(const char* seq, size_t seq_len);
-
450
-
456 void insert(const std::string& seq) { insert(seq.c_str(), seq.size()); }
-
457
-
464 void insert(const uint64_t* hashes) { kmer_bloom_filter.insert(hashes); }
-
465
-
471 void insert(const std::vector<uint64_t>& hashes)
-
472 {
-
473 kmer_bloom_filter.insert(hashes);
-
474 }
-
475
-
486 std::vector<std::vector<unsigned>> contains(const char* seq,
-
487 size_t seq_len) const;
-
488
-
498 std::vector<std::vector<unsigned>> contains(const std::string& seq) const
-
499 {
-
500 return contains(seq.c_str(), seq.size());
-
501 }
-
502
-
510 bool contains(const uint64_t* hashes) const
-
511 {
-
512 return kmer_bloom_filter.contains(hashes);
-
513 }
-
514
-
521 bool contains(const std::vector<uint64_t>& hashes) const
-
522 {
-
523 return kmer_bloom_filter.contains(hashes);
-
524 }
-
525
-
537 std::vector<std::vector<unsigned>> contains_insert(const char* seq,
-
538 size_t seq_len);
-
539
-
550 std::vector<std::vector<unsigned>> contains_insert(const std::string& seq)
-
551 {
-
552 return contains_insert(seq.c_str(), seq.size());
-
553 }
-
554
-
564 bool contains_insert(const uint64_t* hashes)
-
565 {
-
566 return kmer_bloom_filter.contains_insert(hashes);
-
567 }
-
568
-
577 bool contains_insert(const std::vector<uint64_t>& hashes)
-
578 {
-
579 return kmer_bloom_filter.contains_insert(hashes);
-
580 }
-
581
-
583 size_t get_bytes() const { return kmer_bloom_filter.get_bytes(); }
-
585 uint64_t get_pop_cnt() const { return kmer_bloom_filter.get_pop_cnt(); }
-
587 double get_occupancy() const { return kmer_bloom_filter.get_occupancy(); }
-
590 unsigned get_total_hash_num() const
-
591 {
-
592 return get_hash_num_per_seed() * get_seeds().size();
-
593 }
-
596 double get_fpr() const;
-
598 unsigned get_k() const { return kmer_bloom_filter.get_k(); }
-
600 const std::vector<std::string>& get_seeds() const { return seeds; }
-
603 const std::vector<SpacedSeed>& get_parsed_seeds() const
-
604 {
-
605 return parsed_seeds;
-
606 }
-
608 unsigned get_hash_num_per_seed() const
-
609 {
-
610 return kmer_bloom_filter.get_hash_num();
-
611 }
-
613 unsigned get_hash_num() const { return get_hash_num_per_seed(); }
-
615 const std::string& get_hash_fn() const
-
616 {
-
617 return kmer_bloom_filter.get_hash_fn();
-
618 }
-
620 KmerBloomFilter& get_kmer_bloom_filter() { return kmer_bloom_filter; }
-
621
-
627 void save(const std::string& path);
-
628
-
634 static bool is_bloom_file(const std::string& path)
-
635 {
-
636 return btllib::BloomFilter::check_file_signature(
-
637 path, SEED_BLOOM_FILTER_SIGNATURE);
-
638 }
-
639
-
640private:
-
641 SeedBloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
-
642
-
643 std::vector<std::string> seeds;
-
644 std::vector<SpacedSeed> parsed_seeds;
-
645 KmerBloomFilter kmer_bloom_filter;
-
646};
-
647
-
648} // namespace btllib
-
649
-
650#endif
-
Definition bloom_filter.hpp:68
-
bool contains(const uint64_t *hashes) const
-
bool contains(const std::vector< uint64_t > &hashes) const
Definition bloom_filter.hpp:128
-
void insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:109
-
void insert(const uint64_t *hashes)
-
static bool is_bloom_file(const std::string &path)
Definition bloom_filter.hpp:185
-
double get_fpr() const
-
const std::string & get_hash_fn() const
Definition bloom_filter.hpp:166
-
unsigned get_hash_num() const
Definition bloom_filter.hpp:162
-
BloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn="")
-
void save(const std::string &path)
-
size_t get_bytes() const
Definition bloom_filter.hpp:156
-
double get_occupancy() const
-
bool contains_insert(const uint64_t *hashes)
-
BloomFilter()
Definition bloom_filter.hpp:72
-
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:150
-
uint64_t get_pop_cnt() const
-
BloomFilter(const std::string &path)
-
Definition bloom_filter.hpp:212
-
void insert(const char *seq, size_t seq_len)
-
unsigned contains_insert(const char *seq, size_t seq_len)
-
double get_fpr() const
Definition bloom_filter.hpp:372
-
BloomFilter & get_bloom_filter()
Definition bloom_filter.hpp:378
-
void insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:268
-
void insert(const std::string &seq)
Definition bloom_filter.hpp:253
-
unsigned get_hash_num() const
Definition bloom_filter.hpp:370
-
static bool is_bloom_file(const std::string &path)
Definition bloom_filter.hpp:392
-
unsigned contains(const char *seq, size_t seq_len) const
-
unsigned contains_insert(const std::string &seq)
Definition bloom_filter.hpp:333
-
KmerBloomFilter(const std::string &path)
-
uint64_t get_pop_cnt() const
Definition bloom_filter.hpp:366
-
bool contains_insert(const uint64_t *hashes)
Definition bloom_filter.hpp:346
-
KmerBloomFilter()
Definition bloom_filter.hpp:216
-
bool contains(const uint64_t *hashes) const
Definition bloom_filter.hpp:301
-
void insert(const uint64_t *hashes)
Definition bloom_filter.hpp:261
-
const std::string & get_hash_fn() const
Definition bloom_filter.hpp:376
-
void save(const std::string &path)
-
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:358
-
size_t get_bytes() const
Definition bloom_filter.hpp:364
-
double get_occupancy() const
Definition bloom_filter.hpp:368
-
unsigned contains(const std::string &seq) const
Definition bloom_filter.hpp:290
-
unsigned get_k() const
Definition bloom_filter.hpp:374
-
bool contains(const std::vector< uint64_t > &hashes) const
Definition bloom_filter.hpp:311
-
KmerBloomFilter(size_t bytes, unsigned hash_num, unsigned k)
-
Definition bloom_filter.hpp:411
-
unsigned get_total_hash_num() const
Definition bloom_filter.hpp:590
-
double get_occupancy() const
Definition bloom_filter.hpp:587
-
bool contains(const uint64_t *hashes) const
Definition bloom_filter.hpp:510
-
std::vector< std::vector< unsigned > > contains_insert(const std::string &seq)
Definition bloom_filter.hpp:550
-
void insert(const char *seq, size_t seq_len)
-
bool contains(const std::vector< uint64_t > &hashes) const
Definition bloom_filter.hpp:521
-
std::vector< std::vector< unsigned > > contains_insert(const char *seq, size_t seq_len)
-
void save(const std::string &path)
-
SeedBloomFilter(size_t bytes, unsigned k, const std::vector< std::string > &seeds, unsigned hash_num_per_seed)
-
const std::vector< SpacedSeed > & get_parsed_seeds() const
Definition bloom_filter.hpp:603
-
KmerBloomFilter & get_kmer_bloom_filter()
Definition bloom_filter.hpp:620
-
void insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:471
-
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition bloom_filter.hpp:577
-
static bool is_bloom_file(const std::string &path)
Definition bloom_filter.hpp:634
-
unsigned get_hash_num_per_seed() const
Definition bloom_filter.hpp:608
-
SeedBloomFilter(const std::string &path)
-
double get_fpr() const
-
uint64_t get_pop_cnt() const
Definition bloom_filter.hpp:585
-
size_t get_bytes() const
Definition bloom_filter.hpp:583
-
unsigned get_k() const
Definition bloom_filter.hpp:598
-
void insert(const uint64_t *hashes)
Definition bloom_filter.hpp:464
-
const std::vector< std::string > & get_seeds() const
Definition bloom_filter.hpp:600
-
const std::string & get_hash_fn() const
Definition bloom_filter.hpp:615
-
std::vector< std::vector< unsigned > > contains(const char *seq, size_t seq_len) const
-
SeedBloomFilter()
Definition bloom_filter.hpp:415
-
unsigned get_hash_num() const
Definition bloom_filter.hpp:613
-
std::vector< std::vector< unsigned > > contains(const std::string &seq) const
Definition bloom_filter.hpp:498
-
void insert(const std::string &seq)
Definition bloom_filter.hpp:456
-
bool contains_insert(const uint64_t *hashes)
Definition bloom_filter.hpp:564
-
Definition aahash.hpp:15
+
1 #ifndef BTLLIB_BLOOM_FILTER_HPP
+
2 #define BTLLIB_BLOOM_FILTER_HPP
+
3 
+
4 #include "btllib/nthash.hpp"
+
5 
+
6 // clang-format off
+
7 // NOLINTBEGIN llvm-include-order
+
8 #include <limits>
+
9 #include "cpptoml.h"
+
10 // NOLINTEND llvm-include-order
+
11 // clang-format on
+
12 
+
13 #include <atomic>
+
14 #include <climits>
+
15 #include <cstdint>
+
16 #include <fstream>
+
17 #include <memory>
+
18 #include <string>
+
19 #include <vector>
+
20 
+
21 namespace btllib {
+
22 
+
23 static const uint8_t BIT_MASKS[CHAR_BIT] = {
+
24  // NOLINT
+
25  0x01, 0x02, 0x04, 0x08, // NOLINT
+
26  0x10, 0x20, 0x40, 0x80 // NOLINT
+
27 };
+
28 
+
29 static const char* const BLOOM_FILTER_SIGNATURE = "[BTLBloomFilter_v6]";
+
30 static const char* const KMER_BLOOM_FILTER_SIGNATURE =
+
31  "[BTLKmerBloomFilter_v6]";
+
32 static const char* const SEED_BLOOM_FILTER_SIGNATURE =
+
33  "[BTLSeedBloomFilter_v6]";
+
34 static const char* const HASH_FN = NTHASH_FN_NAME;
+
35 
+
36 static const unsigned MAX_HASH_VALUES = 1024;
+
37 static const unsigned PLACEHOLDER_NEWLINES = 50;
+
38 
+
40 class BloomFilterInitializer
+
41 {
+
42 
+
43 public:
+
44  BloomFilterInitializer(const std::string& path, const std::string& signature)
+
45  : path(path)
+
46  , ifs(path)
+
47  , table(parse_header(signature))
+
48  {
+
49  }
+
50 
+
51  static bool check_file_signature(std::ifstream& ifs,
+
52  const std::string& expected_signature,
+
53  std::string& file_signature);
+
54 
+
55  std::string path;
+
56  std::ifstream ifs;
+
57  std::shared_ptr<cpptoml::table> table;
+
58 
+
59  BloomFilterInitializer(const BloomFilterInitializer&) = delete;
+
60  BloomFilterInitializer(BloomFilterInitializer&&) = default;
+
61 
+
62  BloomFilterInitializer& operator=(const BloomFilterInitializer&) = delete;
+
63  BloomFilterInitializer& operator=(BloomFilterInitializer&&) = default;
+
64 
+
65 private:
+
68  std::shared_ptr<cpptoml::table> parse_header(const std::string& signature);
+
69 };
+
71 
+ +
73 {
+
74 
+
75 public:
+ +
78 
+
86  BloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn = "");
+
87 
+
93  explicit BloomFilter(const std::string& path);
+
94 
+
95  BloomFilter(const BloomFilter&) = delete;
+
96  BloomFilter(BloomFilter&&) = delete;
+
97 
+
98  BloomFilter& operator=(const BloomFilter&) = delete;
+
99  BloomFilter& operator=(BloomFilter&&) = delete;
+
100 
+
107  void insert(const uint64_t* hashes);
+
108 
+
114  void insert(const std::vector<uint64_t>& hashes) { insert(hashes.data()); }
+
115 
+
124  bool contains(const uint64_t* hashes) const;
+
125 
+
133  bool contains(const std::vector<uint64_t>& hashes) const
+
134  {
+
135  return contains(hashes.data());
+
136  }
+
137 
+
146  bool contains_insert(const uint64_t* hashes);
+
147 
+
155  bool contains_insert(const std::vector<uint64_t>& hashes)
+
156  {
+
157  return contains_insert(hashes.data());
+
158  }
+
159 
+
161  size_t get_bytes() const { return bytes; }
+
163  uint64_t get_pop_cnt() const;
+
165  double get_occupancy() const;
+
167  unsigned get_hash_num() const { return hash_num; }
+
169  double get_fpr() const;
+
171  const std::string& get_hash_fn() const { return hash_fn; }
+
172 
+
178  void save(const std::string& path);
+
179 
+
180  static void save(const std::string& path,
+
181  const cpptoml::table& table,
+
182  const char* data,
+
183  size_t n);
+
184 
+
190  static bool is_bloom_file(const std::string& path)
+
191  {
+
192  return check_file_signature(path, BLOOM_FILTER_SIGNATURE);
+
193  }
+
194 
+
195  static bool check_file_signature(const std::string& path,
+
196  const std::string& signature);
+
197 
+
198 private:
+
199  BloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
+
200 
+
201  friend class KmerBloomFilter;
+
202  friend class SeedBloomFilter;
+
203 
+
204  size_t bytes = 0;
+
205  size_t array_size =
+
206  0; // Should be equal to bytes, but not guaranteed by standard
+
207  size_t array_bits = 0;
+
208  unsigned hash_num = 0;
+
209  std::string hash_fn;
+
210  std::unique_ptr<std::atomic<uint8_t>[]> array;
+
211 };
+
212 
+ +
217 {
+
218 
+
219 public:
+ +
222 
+
230  KmerBloomFilter(size_t bytes, unsigned hash_num, unsigned k);
+
231 
+
237  explicit KmerBloomFilter(const std::string& path);
+
238 
+
239  KmerBloomFilter(const KmerBloomFilter&) = delete;
+
240  KmerBloomFilter(KmerBloomFilter&&) = delete;
+
241 
+
242  KmerBloomFilter& operator=(const KmerBloomFilter&) = delete;
+
243  KmerBloomFilter& operator=(KmerBloomFilter&&) = delete;
+
244 
+
251  void insert(const char* seq, size_t seq_len);
+
252 
+
258  void insert(const std::string& seq) { insert(seq.c_str(), seq.size()); }
+
259 
+
266  void insert(const uint64_t* hashes) { bloom_filter.insert(hashes); }
+
267 
+
273  void insert(const std::vector<uint64_t>& hashes)
+
274  {
+
275  bloom_filter.insert(hashes);
+
276  }
+
277 
+
286  unsigned contains(const char* seq, size_t seq_len) const;
+
287 
+
295  unsigned contains(const std::string& seq) const
+
296  {
+
297  return contains(seq.c_str(), seq.size());
+
298  }
+
299 
+
306  bool contains(const uint64_t* hashes) const
+
307  {
+
308  return bloom_filter.contains(hashes);
+
309  }
+
310 
+
316  bool contains(const std::vector<uint64_t>& hashes) const
+
317  {
+
318  return bloom_filter.contains(hashes);
+
319  }
+
320 
+
329  unsigned contains_insert(const char* seq, size_t seq_len);
+
330 
+
338  unsigned contains_insert(const std::string& seq)
+
339  {
+
340  return contains_insert(seq.c_str(), seq.size());
+
341  }
+
342 
+
351  bool contains_insert(const uint64_t* hashes)
+
352  {
+
353  return bloom_filter.contains_insert(hashes);
+
354  }
+
355 
+
363  bool contains_insert(const std::vector<uint64_t>& hashes)
+
364  {
+
365  return bloom_filter.contains_insert(hashes);
+
366  }
+
367 
+
369  size_t get_bytes() const { return bloom_filter.get_bytes(); }
+
371  uint64_t get_pop_cnt() const { return bloom_filter.get_pop_cnt(); }
+
373  double get_occupancy() const { return bloom_filter.get_occupancy(); }
+
375  unsigned get_hash_num() const { return bloom_filter.get_hash_num(); }
+
377  double get_fpr() const { return bloom_filter.get_fpr(); }
+
379  unsigned get_k() const { return k; }
+
381  const std::string& get_hash_fn() const { return bloom_filter.get_hash_fn(); }
+
383  BloomFilter& get_bloom_filter() { return bloom_filter; }
+
384 
+
390  void save(const std::string& path);
+
391 
+
397  static bool is_bloom_file(const std::string& path)
+
398  {
+
399  return btllib::BloomFilter::check_file_signature(
+
400  path, KMER_BLOOM_FILTER_SIGNATURE);
+
401  }
+
402 
+
403 private:
+
404  KmerBloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
+
405 
+
406  friend class SeedBloomFilter;
+
407 
+
408  unsigned k = 0;
+
409  BloomFilter bloom_filter;
+
410 };
+
411 
+ +
416 {
+
417 
+
418 public:
+ +
421 
+
430  SeedBloomFilter(size_t bytes,
+
431  unsigned k,
+
432  const std::vector<std::string>& seeds,
+
433  unsigned hash_num_per_seed);
+
434 
+
440  explicit SeedBloomFilter(const std::string& path);
+
441 
+
442  SeedBloomFilter(const SeedBloomFilter&) = delete;
+
443  SeedBloomFilter(SeedBloomFilter&&) = delete;
+
444 
+
445  SeedBloomFilter& operator=(const SeedBloomFilter&) = delete;
+
446  SeedBloomFilter& operator=(SeedBloomFilter&&) = delete;
+
447 
+
454  void insert(const char* seq, size_t seq_len);
+
455 
+
461  void insert(const std::string& seq) { insert(seq.c_str(), seq.size()); }
+
462 
+
469  void insert(const uint64_t* hashes) { kmer_bloom_filter.insert(hashes); }
+
470 
+
476  void insert(const std::vector<uint64_t>& hashes)
+
477  {
+
478  kmer_bloom_filter.insert(hashes);
+
479  }
+
480 
+
491  std::vector<std::vector<unsigned>> contains(const char* seq,
+
492  size_t seq_len) const;
+
493 
+
503  std::vector<std::vector<unsigned>> contains(const std::string& seq) const
+
504  {
+
505  return contains(seq.c_str(), seq.size());
+
506  }
+
507 
+
515  bool contains(const uint64_t* hashes) const
+
516  {
+
517  return kmer_bloom_filter.contains(hashes);
+
518  }
+
519 
+
526  bool contains(const std::vector<uint64_t>& hashes) const
+
527  {
+
528  return kmer_bloom_filter.contains(hashes);
+
529  }
+
530 
+
542  std::vector<std::vector<unsigned>> contains_insert(const char* seq,
+
543  size_t seq_len);
+
544 
+
555  std::vector<std::vector<unsigned>> contains_insert(const std::string& seq)
+
556  {
+
557  return contains_insert(seq.c_str(), seq.size());
+
558  }
+
559 
+
569  bool contains_insert(const uint64_t* hashes)
+
570  {
+
571  return kmer_bloom_filter.contains_insert(hashes);
+
572  }
+
573 
+
582  bool contains_insert(const std::vector<uint64_t>& hashes)
+
583  {
+
584  return kmer_bloom_filter.contains_insert(hashes);
+
585  }
+
586 
+
588  size_t get_bytes() const { return kmer_bloom_filter.get_bytes(); }
+
590  uint64_t get_pop_cnt() const { return kmer_bloom_filter.get_pop_cnt(); }
+
592  double get_occupancy() const { return kmer_bloom_filter.get_occupancy(); }
+
595  unsigned get_total_hash_num() const
+
596  {
+
597  return get_hash_num_per_seed() * get_seeds().size();
+
598  }
+
601  double get_fpr() const;
+
603  unsigned get_k() const { return kmer_bloom_filter.get_k(); }
+
605  const std::vector<std::string>& get_seeds() const { return seeds; }
+
608  const std::vector<btllib::hashing_internals::SpacedSeed>& get_parsed_seeds()
+
609  const
+
610  {
+
611  return parsed_seeds;
+
612  }
+
614  unsigned get_hash_num_per_seed() const
+
615  {
+
616  return kmer_bloom_filter.get_hash_num();
+
617  }
+
619  unsigned get_hash_num() const { return get_hash_num_per_seed(); }
+
621  const std::string& get_hash_fn() const
+
622  {
+
623  return kmer_bloom_filter.get_hash_fn();
+
624  }
+
626  KmerBloomFilter& get_kmer_bloom_filter() { return kmer_bloom_filter; }
+
627 
+
633  void save(const std::string& path);
+
634 
+
640  static bool is_bloom_file(const std::string& path)
+
641  {
+
642  return btllib::BloomFilter::check_file_signature(
+
643  path, SEED_BLOOM_FILTER_SIGNATURE);
+
644  }
+
645 
+
646 private:
+
647  SeedBloomFilter(const std::shared_ptr<BloomFilterInitializer>& bfi);
+
648 
+
649  std::vector<std::string> seeds;
+
650  std::vector<btllib::hashing_internals::SpacedSeed> parsed_seeds;
+
651  KmerBloomFilter kmer_bloom_filter;
+
652 };
+
653 
+
654 } // namespace btllib
+
655 
+
656 #endif
+
uint64_t get_pop_cnt() const
Definition: bloom_filter.hpp:590
+
unsigned contains_insert(const std::string &seq)
Definition: bloom_filter.hpp:338
+
Definition: bloom_filter.hpp:415
+
unsigned get_hash_num() const
Definition: bloom_filter.hpp:375
+
bool contains_insert(const uint64_t *hashes)
Definition: bloom_filter.hpp:569
+
double get_occupancy() const
+
std::vector< std::vector< unsigned > > contains(const std::string &seq) const
Definition: bloom_filter.hpp:503
+
void insert(const uint64_t *hashes)
Definition: bloom_filter.hpp:469
+
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:155
+
size_t get_bytes() const
Definition: bloom_filter.hpp:161
+
uint64_t get_pop_cnt() const
+
void insert(const char *seq, size_t seq_len)
+
void insert(const uint64_t *hashes)
+
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:582
+
void insert(const char *seq, size_t seq_len)
+
double get_occupancy() const
Definition: bloom_filter.hpp:373
+
BloomFilter & get_bloom_filter()
Definition: bloom_filter.hpp:383
+
BloomFilter()
Definition: bloom_filter.hpp:77
+
unsigned contains(const std::string &seq) const
Definition: bloom_filter.hpp:295
+
static bool is_bloom_file(const std::string &path)
Definition: bloom_filter.hpp:397
+
const std::vector< btllib::hashing_internals::SpacedSeed > & get_parsed_seeds() const
Definition: bloom_filter.hpp:608
+
static bool is_bloom_file(const std::string &path)
Definition: bloom_filter.hpp:640
+
bool contains(const std::vector< uint64_t > &hashes) const
Definition: bloom_filter.hpp:526
+
bool contains(const uint64_t *hashes) const
Definition: bloom_filter.hpp:515
+
unsigned get_hash_num() const
Definition: bloom_filter.hpp:619
+
void insert(const uint64_t *hashes)
Definition: bloom_filter.hpp:266
+
size_t get_bytes() const
Definition: bloom_filter.hpp:369
+
bool contains_insert(const uint64_t *hashes)
+
uint64_t get_pop_cnt() const
Definition: bloom_filter.hpp:371
+
std::vector< std::vector< unsigned > > contains(const char *seq, size_t seq_len) const
+
void insert(const std::string &seq)
Definition: bloom_filter.hpp:461
+
double get_fpr() const
+
unsigned get_total_hash_num() const
Definition: bloom_filter.hpp:595
+
KmerBloomFilter & get_kmer_bloom_filter()
Definition: bloom_filter.hpp:626
+
void insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:273
+
bool contains(const uint64_t *hashes) const
+
void save(const std::string &path)
+
std::vector< std::vector< unsigned > > contains_insert(const char *seq, size_t seq_len)
+
const std::string & get_hash_fn() const
Definition: bloom_filter.hpp:171
+
unsigned get_hash_num() const
Definition: bloom_filter.hpp:167
+
Definition: bloom_filter.hpp:216
+
Definition: bloom_filter.hpp:72
+
double get_fpr() const
Definition: bloom_filter.hpp:377
+
size_t get_bytes() const
Definition: bloom_filter.hpp:588
+
void insert(const std::string &seq)
Definition: bloom_filter.hpp:258
+
unsigned get_k() const
Definition: bloom_filter.hpp:379
+
void insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:114
+
unsigned get_k() const
Definition: bloom_filter.hpp:603
+
bool contains(const std::vector< uint64_t > &hashes) const
Definition: bloom_filter.hpp:316
+
const std::string & get_hash_fn() const
Definition: bloom_filter.hpp:621
+
bool contains_insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:363
+
void insert(const std::vector< uint64_t > &hashes)
Definition: bloom_filter.hpp:476
+
void save(const std::string &path)
+
bool contains(const uint64_t *hashes) const
Definition: bloom_filter.hpp:306
+
double get_fpr() const
+
bool contains(const std::vector< uint64_t > &hashes) const
Definition: bloom_filter.hpp:133
+
const std::vector< std::string > & get_seeds() const
Definition: bloom_filter.hpp:605
+
std::vector< std::vector< unsigned > > contains_insert(const std::string &seq)
Definition: bloom_filter.hpp:555
+
double get_occupancy() const
Definition: bloom_filter.hpp:592
+
void save(const std::string &path)
+
const std::string & get_hash_fn() const
Definition: bloom_filter.hpp:381
+
SeedBloomFilter()
Definition: bloom_filter.hpp:420
+
unsigned get_hash_num_per_seed() const
Definition: bloom_filter.hpp:614
+
static bool is_bloom_file(const std::string &path)
Definition: bloom_filter.hpp:190
+
KmerBloomFilter()
Definition: bloom_filter.hpp:221
+
unsigned contains_insert(const char *seq, size_t seq_len)
+
bool contains_insert(const uint64_t *hashes)
Definition: bloom_filter.hpp:351
+
unsigned contains(const char *seq, size_t seq_len) const
diff --git a/docs/classbtllib_1_1AAHash-members.html b/docs/classbtllib_1_1AAHash-members.html index b60df369..9117cb30 100644 --- a/docs/classbtllib_1_1AAHash-members.html +++ b/docs/classbtllib_1_1AAHash-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::AAHash Member List
+
+
btllib::AAHash Member List

This is the complete list of members for btllib::AAHash, including all inherited members.

- + - - - - - - - + + + + + + + - +
AAHash(std::string_view seq, uint8_t hash_num, uint16_t k, unsigned level, size_t pos=0)btllib::AAHashinline
AAHash(const AAHash &aahash) (defined in btllib::AAHash)btllib::AAHashinline
AAHash(const AAHash &aahash) (defined in btllib::AAHash)btllib::AAHashinline
AAHash(AAHash &&)=default (defined in btllib::AAHash)btllib::AAHash
get_forward_hash() const (defined in btllib::AAHash)btllib::AAHashinline
get_hash_num() const (defined in btllib::AAHash)btllib::AAHashinline
get_k() const (defined in btllib::AAHash)btllib::AAHashinline
get_level() const (defined in btllib::AAHash)btllib::AAHashinline
get_pos() const (defined in btllib::AAHash)btllib::AAHashinline
get_seq() const (defined in btllib::AAHash)btllib::AAHashinline
hashes() const (defined in btllib::AAHash)btllib::AAHashinline
get_forward_hash() const (defined in btllib::AAHash)btllib::AAHashinline
get_hash_num() const (defined in btllib::AAHash)btllib::AAHashinline
get_k() const (defined in btllib::AAHash)btllib::AAHashinline
get_level() const (defined in btllib::AAHash)btllib::AAHashinline
get_pos() const (defined in btllib::AAHash)btllib::AAHashinline
get_seq() const (defined in btllib::AAHash)btllib::AAHashinline
hashes() const (defined in btllib::AAHash)btllib::AAHashinline
roll()btllib::AAHash
SeedAAHash (defined in btllib::AAHash)btllib::AAHashfriend
SeedAAHash (defined in btllib::AAHash)btllib::AAHashfriend
diff --git a/docs/classbtllib_1_1AAHash.html b/docs/classbtllib_1_1AAHash.html index 040556c5..600ba1b6 100644 --- a/docs/classbtllib_1_1AAHash.html +++ b/docs/classbtllib_1_1AAHash.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::AAHash Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- + - - - - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::AAHash Class Reference
+
+
btllib::AAHash Class Reference
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + +

+

Public Member Functions

 AAHash (std::string_view seq, uint8_t hash_num, uint16_t k, unsigned level, size_t pos=0)
 
+
 AAHash (const AAHash &aahash)
 
+
 AAHash (AAHash &&)=default
 
bool roll ()
 
-const uint64_t * hashes () const
 
-size_t get_pos () const
 
-unsigned get_hash_num () const
 
-unsigned get_k () const
 
-uint64_t get_forward_hash () const
 
-unsigned get_level () const
 
-const char * get_seq () const
 
+const uint64_t * hashes () const
 
+size_t get_pos () const
 
+unsigned get_hash_num () const
 
+unsigned get_k () const
 
+uint64_t get_forward_hash () const
 
+unsigned get_level () const
 
+const char * get_seq () const
 
- -

+

Friends

+
class SeedAAHash
 

Constructor & Destructor Documentation

- -

◆ AAHash()

- +
@@ -173,7 +185,8 @@

-

Constructor.

Parameters
+

Constructor.

+
Parameters

@@ -187,9 +200,7 @@

Member Function Documentation

- -

◆ roll()

- +
seqString of DNA sequence to be hashed.
hash_numNumber of hashes to produce per k-mer.
@@ -212,7 +223,9 @@

diff --git a/docs/classbtllib_1_1BlindNtHash-members.html b/docs/classbtllib_1_1BlindNtHash-members.html index 6467bfd3..e6236576 100644 --- a/docs/classbtllib_1_1BlindNtHash-members.html +++ b/docs/classbtllib_1_1BlindNtHash-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@

- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::BlindNtHash Member List
+
+
btllib::BlindNtHash Member List

This is the complete list of members for btllib::BlindNtHash, including all inherited members.

- - - - - - - - - - - - - - - - - + + + + + + + + + + + + +
BlindNtHash(const char *seq, size_t seq_len, unsigned hash_num, unsigned k, size_t pos=0)btllib::BlindNtHash
BlindNtHash(const std::string &seq, unsigned hash_num, unsigned k, size_t pos=0)btllib::BlindNtHash
BlindNtHash(const BlindNtHash &nthash) (defined in btllib::BlindNtHash)btllib::BlindNtHash
BlindNtHash(BlindNtHash &&)=default (defined in btllib::BlindNtHash)btllib::BlindNtHash
change_seq(const std::string &new_seq, size_t new_pos=0) (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
forward() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
get_forward_hash() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
get_hash_num() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
get_k() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
get_pos() constbtllib::BlindNtHashinline
get_reverse_hash() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
hashes() const (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
peek(char char_in)btllib::BlindNtHash
peek_back(char char_in)btllib::BlindNtHash
roll(char char_in)btllib::BlindNtHash
roll_back(char char_in)btllib::BlindNtHash
sub(const std::vector< unsigned > &positions, const std::vector< unsigned char > &new_bases) (defined in btllib::BlindNtHash)btllib::BlindNtHash
BlindNtHash(const std::string &seq, hashing_internals::NUM_HASHES_TYPE num_hashes, hashing_internals::K_TYPE k, long pos=0)btllib::BlindNtHashinline
BlindNtHash(const BlindNtHash &obj) (defined in btllib::BlindNtHash)btllib::BlindNtHashinline
BlindNtHash(BlindNtHash &&)=default (defined in btllib::BlindNtHash)btllib::BlindNtHash
get_forward_hash() const btllib::BlindNtHashinline
get_hash_num() const btllib::BlindNtHashinline
get_k() const btllib::BlindNtHashinline
get_pos() const btllib::BlindNtHashinline
get_reverse_hash() const btllib::BlindNtHashinline
hashes() const btllib::BlindNtHashinline
peek(char char_in)btllib::BlindNtHashinline
peek_back(char char_in)btllib::BlindNtHashinline
roll(char char_in)btllib::BlindNtHashinline
roll_back(char char_in)btllib::BlindNtHashinline
diff --git a/docs/classbtllib_1_1BlindNtHash.html b/docs/classbtllib_1_1BlindNtHash.html index d75f9745..57192ff1 100644 --- a/docs/classbtllib_1_1BlindNtHash.html +++ b/docs/classbtllib_1_1BlindNtHash.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::BlindNtHash Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-

#include <nthash.hpp>

+

#include <nthash_kmer.hpp>

- - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +

+

Public Member Functions

 BlindNtHash (const char *seq, size_t seq_len, unsigned hash_num, unsigned k, size_t pos=0)
 
 BlindNtHash (const std::string &seq, unsigned hash_num, unsigned k, size_t pos=0)
 
BlindNtHash (const BlindNtHash &nthash)
 
+
 BlindNtHash (const std::string &seq, hashing_internals::NUM_HASHES_TYPE num_hashes, hashing_internals::K_TYPE k, long pos=0)
 
BlindNtHash (const BlindNtHash &obj)
 
 BlindNtHash (BlindNtHash &&)=default
 
bool roll (char char_in)
 
bool roll_back (char char_in)
 
bool peek (char char_in)
 
bool peek_back (char char_in)
 
-void sub (const std::vector< unsigned > &positions, const std::vector< unsigned char > &new_bases)
 
-const uint64_t * hashes () const
 
size_t get_pos () const
 
-bool forward () const
 
-unsigned get_hash_num () const
 
-unsigned get_k () const
 
-uint64_t get_forward_hash () const
 
-uint64_t get_reverse_hash () const
 
-void change_seq (const std::string &new_seq, size_t new_pos=0)
 
void roll (char char_in)
 
void roll_back (char char_in)
 
void peek (char char_in)
 
void peek_back (char char_in)
 
const uint64_t * hashes () const
 
long get_pos () const
 
hashing_internals::NUM_HASHES_TYPE get_hash_num () const
 
hashing_internals::K_TYPE get_k () const
 
uint64_t get_forward_hash () const
 
uint64_t get_reverse_hash () const
 

Detailed Description

-

Similar to NtHash class, but instead of rolling on a predefined sequence, BlindNtHash needs to be fed the new character on each roll. This is useful when traversing an implicit de Bruijn Graph, as we need to query all bases to know the possible extensions.

+

Similar to the NtHash class, but instead of rolling on a predefined sequence, BlindNtHash needs to be fed the new character on each roll. This is useful when traversing an implicit de Bruijn Graph, as we need to query all bases to know the possible extensions.

Constructor & Destructor Documentation

- -

◆ BlindNtHash() [1/2]

- +
+ + + - + @@ -373,7 +377,7 @@

Parameters

- + - - - - - - - - + + - + - + @@ -174,73 +167,152 @@

+inline +

+
btllib::BlindNtHash::BlindNtHash (const char * const std::string &  seq,
size_t seq_len,
unsigned hash_num, hashing_internals::NUM_HASHES_TYPE num_hashes,
unsigned hashing_internals::K_TYPE  k,
size_t long  pos = 0 
-

Constructor.

Parameters
+

Construct an ntHash object for hashing k-mers on-the-fly.

+
Parameters
- - - - - + + + +
seqC string of DNA sequence to start hashing from.
seq_lenLength of seq.
hash_numNumber of hashes to produce per k-mer.
kK-mer size.
posPosition in seq to start hashing from.
seqSequence data. Only the first k characters will be used, starting from pos.
hash_numNumber of hashes to generate per k-mer
kK-mer size
posPosition in sequence to start hashing from
-
-

◆ BlindNtHash() [2/2]

- +

Member Function Documentation

+
+ + + + + +
- + - - + + +
btllib::BlindNtHash::BlindNtHash uint64_t btllib::BlindNtHash::get_forward_hash (const std::string & seq, ) const
+
+inline
+
+

Get the hash value of the forward strand.

+
Returns
Forward hash value
+ +
+
+ +
+
+ + + + + +
+ - - - - + + + + +
unsigned hash_num, hashing_internals::NUM_HASHES_TYPE btllib::BlindNtHash::get_hash_num () const
+
+inline
+
+

Get the number of hashes generated per k-mer.

+
Returns
Number of hashes per k-mer
+ +
+
+ +
+
+ + + + + +
+ - - - - + + + + +
unsigned k, hashing_internals::K_TYPE btllib::BlindNtHash::get_k () const
+
+inline
+
+

Get the length of the k-mers.

+
Returns
k
+ +
+
+ +
+
+ + + + + +
+ - - - - + + + + +
size_t pos = 0 long btllib::BlindNtHash::get_pos () const
+
+inline
+
+

Get the position of last hashed k-mer or the k-mer to be hashed if roll() has never been called on this NtHash object.

+
Returns
Position of the most recently hashed k-mer's first base-pair
+ +
+
+ +
+
+ + + + + +
+ - - - + + + +
)uint64_t btllib::BlindNtHash::get_reverse_hash () const
+
+inline
-

Constructor.

Parameters
- - - - - -
seqString of DNA sequence to start hashing from.
hash_numNumber of hashes to produce per k-mer.
kK-mer size.
posPosition in seq to start hashing from.
-
-
+

Get the hash value of the reverse strand.

+
Returns
Reverse-complement hash value
-

Member Function Documentation

- -

◆ get_pos()

- +
@@ -248,7 +320,7 @@

- + @@ -260,97 +332,120 @@

-

Get the position of last hashed k-mer or the k-mer to be hashed if roll() has never been called on this NtHash object.

+

Get the array of current hash values (length = get_hash_num())

+
Returns
Pointer to the hash array
- -

◆ peek()

- +
+
size_t btllib::BlindNtHash::get_pos const uint64_t* btllib::BlindNtHash::hashes ( ) const
+ + + + +
- +
bool btllib::BlindNtHash::peek void btllib::BlindNtHash::peek ( char  char_in)
+
+inline
-

Like NtHash::peek(), but as if roll(char char_in) was called.

-
Returns
true on success and false otherwise.
+

Like NtHash::peek(), but as if roll(char char_in) was called.

- -

◆ peek_back()

- +
+ + + + + +
- +
bool btllib::BlindNtHash::peek_back void btllib::BlindNtHash::peek_back ( char  char_in)
+
+inline
-

Like peek(char char_in), but as if roll_back(char char_in) was called.

-
Returns
true on success and false otherwise.
+

Like peek(char char_in), but as if roll_back(char char_in) was called.

- -

◆ roll()

- +
+ + + + + +
- +
bool btllib::BlindNtHash::roll void btllib::BlindNtHash::roll ( char  char_in)
+
+inline
-

Like the NtHash::roll() function, but instead of advancing in the sequence BlindNtHash object was constructed on, the provided character char_in is used as the next base. Useful if you want to query for possible paths in an implicit de Bruijn graph graph.

-
Returns
true on success and false otherwise.
+

Like the NtHash::roll() function, but instead of advancing in the sequence BlindNtHash object was constructed on, the provided character char_in is used as the next base. Useful if you want to query for possible paths in an implicit de Bruijn graph graph.

- -

◆ roll_back()

- +
+ + + + + +
- +
bool btllib::BlindNtHash::roll_back void btllib::BlindNtHash::roll_back ( char  char_in)
+
+inline
-

Like the roll(char char_in) function, but advance backwards.

-
Returns
true on success and false otherwise.
+

Like the roll(char char_in) function, but advance backwards.


The documentation for this class was generated from the following file: diff --git a/docs/classbtllib_1_1BlindSeedNtHash-members.html b/docs/classbtllib_1_1BlindSeedNtHash-members.html new file mode 100644 index 00000000..62ed0478 --- /dev/null +++ b/docs/classbtllib_1_1BlindSeedNtHash-members.html @@ -0,0 +1,116 @@ + + + + + + +btllib: Member List + + + + + + + + + +
+
+ + + + + + +
+
btllib +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
btllib::BlindSeedNtHash Member List
+
+
+ +

This is the complete list of members for btllib::BlindSeedNtHash, including all inherited members.

+ + + + + + + + + + + + + +
BlindSeedNtHash(const char *seq, const std::vector< std::string > &seeds, hashing_internals::NUM_HASHES_TYPE num_hashes_per_seed, hashing_internals::K_TYPE k, long pos=0)btllib::BlindSeedNtHashinline
BlindSeedNtHash(const BlindSeedNtHash &seed_nthash) (defined in btllib::BlindSeedNtHash)btllib::BlindSeedNtHashinline
BlindSeedNtHash(BlindSeedNtHash &&)=default (defined in btllib::BlindSeedNtHash)btllib::BlindSeedNtHash
get_forward_hash() const btllib::BlindSeedNtHashinline
get_hash_num() const btllib::BlindSeedNtHashinline
get_hash_num_per_seed() const btllib::BlindSeedNtHashinline
get_k() const btllib::BlindSeedNtHashinline
get_pos() const btllib::BlindSeedNtHashinline
get_reverse_hash() const btllib::BlindSeedNtHashinline
hashes() const btllib::BlindSeedNtHashinline
roll(char char_in)btllib::BlindSeedNtHashinline
roll_back(char char_in)btllib::BlindSeedNtHashinline
+ + + + diff --git a/docs/classbtllib_1_1BlindSeedNtHash.html b/docs/classbtllib_1_1BlindSeedNtHash.html new file mode 100644 index 00000000..8d0ca018 --- /dev/null +++ b/docs/classbtllib_1_1BlindSeedNtHash.html @@ -0,0 +1,431 @@ + + + + + + +btllib: btllib::BlindSeedNtHash Class Reference + + + + + + + + + +
+
+ + + + + + +
+
btllib +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
btllib::BlindSeedNtHash Class Reference
+
+
+ +

#include <nthash_seed.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BlindSeedNtHash (const char *seq, const std::vector< std::string > &seeds, hashing_internals::NUM_HASHES_TYPE num_hashes_per_seed, hashing_internals::K_TYPE k, long pos=0)
 
BlindSeedNtHash (const BlindSeedNtHash &seed_nthash)
 
BlindSeedNtHash (BlindSeedNtHash &&)=default
 
void roll (char char_in)
 
void roll_back (char char_in)
 
const uint64_t * hashes () const
 
long get_pos () const
 
unsigned get_hash_num () const
 
hashing_internals::NUM_HASHES_TYPE get_hash_num_per_seed () const
 
hashing_internals::K_TYPE get_k () const
 
uint64_t * get_forward_hash () const
 
uint64_t * get_reverse_hash () const
 
+

Detailed Description

+

Similar to the SeedNtHash class, but instead of rolling on a predefined sequence, BlindSeedNtHash needs to be fed the new character on each roll.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
btllib::BlindSeedNtHash::BlindSeedNtHash (const char * seq,
const std::vector< std::string > & seeds,
hashing_internals::NUM_HASHES_TYPE num_hashes_per_seed,
hashing_internals::K_TYPE k,
long pos = 0 
)
+
+inline
+
+

Construct an ntHash object for hashing spaced seeds on-the-fly.

+
Parameters
+ + + + + + +
seqC-string of the data. Only the first k characters will be used, starting from pos.
seedsVector of parsed spaced seed patterns (vectors of don't care positions)
num_hashes_per_seedNumber of hashes to generate per seed
kK-mer size
posPosition in seq to start hashing from
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
uint64_t* btllib::BlindSeedNtHash::get_forward_hash () const
+
+inline
+
+

Get the hash values of the forward strand.

+
Returns
Array of forward hash value arrays for each seed
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
unsigned btllib::BlindSeedNtHash::get_hash_num () const
+
+inline
+
+

Get the length of the hash array.

+
Returns
Number of seeds times get_hash_num_per_seed()
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
hashing_internals::NUM_HASHES_TYPE btllib::BlindSeedNtHash::get_hash_num_per_seed () const
+
+inline
+
+

Get the number of hashes generated per seed.

+
Returns
Number of hashes per seed
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
hashing_internals::K_TYPE btllib::BlindSeedNtHash::get_k () const
+
+inline
+
+

Get the length of the k-mers.

+
Returns
k
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
long btllib::BlindSeedNtHash::get_pos () const
+
+inline
+
+

Get the position of last hashed k-mer or the k-mer to be hashed if roll() has never been called on this NtHash object.

+
Returns
Position of the most recently hashed k-mer's first base-pair
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
uint64_t* btllib::BlindSeedNtHash::get_reverse_hash () const
+
+inline
+
+

Get the hash values of the reverse strand.

+
Returns
Array of reverse-complement hash value arrays for each seed
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
const uint64_t* btllib::BlindSeedNtHash::hashes () const
+
+inline
+
+

Get the array of current hash values (length = get_hash_num())

+
Returns
Pointer to the hash array
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void btllib::BlindSeedNtHash::roll (char char_in)
+
+inline
+
+

Like the NtHash::roll() function, but instead of advancing in the sequence BlindSeedNtHash object was constructed on, the provided character char_in is used as the next base.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void btllib::BlindSeedNtHash::roll_back (char char_in)
+
+inline
+
+

Like the roll(char char_in) function, but advance backwards.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/classbtllib_1_1BloomFilter-members.html b/docs/classbtllib_1_1BloomFilter-members.html index 2f12b068..d83c46e1 100644 --- a/docs/classbtllib_1_1BloomFilter-members.html +++ b/docs/classbtllib_1_1BloomFilter-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::BloomFilter Member List
+
+
btllib::BloomFilter Member List

This is the complete list of members for btllib::BloomFilter, including all inherited members.

- + - + - - - + + + - - - - - - - + + + + + + + - + - + - + - +
BloomFilter()btllib::BloomFilterinline
BloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn="")btllib::BloomFilter
BloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn="")btllib::BloomFilter
BloomFilter(const std::string &path)btllib::BloomFilterexplicit
BloomFilter(const BloomFilter &)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
BloomFilter(const BloomFilter &)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
BloomFilter(BloomFilter &&)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
check_file_signature(const std::string &path, const std::string &signature) (defined in btllib::BloomFilter)btllib::BloomFilterstatic
contains(const uint64_t *hashes) constbtllib::BloomFilter
contains(const std::vector< uint64_t > &hashes) constbtllib::BloomFilterinline
check_file_signature(const std::string &path, const std::string &signature) (defined in btllib::BloomFilter)btllib::BloomFilterstatic
contains(const uint64_t *hashes) const btllib::BloomFilter
contains(const std::vector< uint64_t > &hashes) const btllib::BloomFilterinline
contains_insert(const uint64_t *hashes)btllib::BloomFilter
contains_insert(const std::vector< uint64_t > &hashes)btllib::BloomFilterinline
get_bytes() constbtllib::BloomFilterinline
get_fpr() constbtllib::BloomFilter
get_hash_fn() constbtllib::BloomFilterinline
get_hash_num() constbtllib::BloomFilterinline
get_occupancy() constbtllib::BloomFilter
get_pop_cnt() constbtllib::BloomFilter
contains_insert(const std::vector< uint64_t > &hashes)btllib::BloomFilterinline
get_bytes() const btllib::BloomFilterinline
get_fpr() const btllib::BloomFilter
get_hash_fn() const btllib::BloomFilterinline
get_hash_num() const btllib::BloomFilterinline
get_occupancy() const btllib::BloomFilter
get_pop_cnt() const btllib::BloomFilter
insert(const uint64_t *hashes)btllib::BloomFilter
insert(const std::vector< uint64_t > &hashes)btllib::BloomFilterinline
insert(const std::vector< uint64_t > &hashes)btllib::BloomFilterinline
is_bloom_file(const std::string &path)btllib::BloomFilterinlinestatic
KmerBloomFilter (defined in btllib::BloomFilter)btllib::BloomFilterfriend
KmerBloomFilter (defined in btllib::BloomFilter)btllib::BloomFilterfriend
operator=(const BloomFilter &)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
operator=(BloomFilter &&)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
operator=(BloomFilter &&)=delete (defined in btllib::BloomFilter)btllib::BloomFilter
save(const std::string &path)btllib::BloomFilter
save(const std::string &path, const cpptoml::table &table, const char *data, size_t n) (defined in btllib::BloomFilter)btllib::BloomFilterstatic
save(const std::string &path, const cpptoml::table &table, const char *data, size_t n) (defined in btllib::BloomFilter)btllib::BloomFilterstatic
SeedBloomFilter (defined in btllib::BloomFilter)btllib::BloomFilterfriend
diff --git a/docs/classbtllib_1_1BloomFilter.html b/docs/classbtllib_1_1BloomFilter.html index 8cd32331..e6376c5c 100644 --- a/docs/classbtllib_1_1BloomFilter.html +++ b/docs/classbtllib_1_1BloomFilter.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::BloomFilter Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::BloomFilter Class Reference
+
+
btllib::BloomFilter Class Reference
- @@ -90,69 +104,67 @@ - - - - - + - + - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + +

+

Public Member Functions

 BloomFilter ()
 
 
 BloomFilter (const std::string &path)
 
+
 BloomFilter (const BloomFilter &)=delete
 
+
 BloomFilter (BloomFilter &&)=delete
 
+
BloomFilteroperator= (const BloomFilter &)=delete
 
+
 
BloomFilteroperator= (BloomFilter &&)=delete
 
 
void insert (const uint64_t *hashes)
 
void insert (const std::vector< uint64_t > &hashes)
 
bool contains (const uint64_t *hashes) const
 
bool contains (const std::vector< uint64_t > &hashes) const
 
bool contains (const uint64_t *hashes) const
 
bool contains (const std::vector< uint64_t > &hashes) const
 
bool contains_insert (const uint64_t *hashes)
 
bool contains_insert (const std::vector< uint64_t > &hashes)
 
size_t get_bytes () const
 
uint64_t get_pop_cnt () const
 
double get_occupancy () const
 
unsigned get_hash_num () const
 
double get_fpr () const
 
const std::string & get_hash_fn () const
 
size_t get_bytes () const
 
uint64_t get_pop_cnt () const
 
double get_occupancy () const
 
unsigned get_hash_num () const
 
double get_fpr () const
 
const std::string & get_hash_fn () const
 
void save (const std::string &path)
 
- - -

+

Static Public Member Functions

+
static void save (const std::string &path, const cpptoml::table &table, const char *data, size_t n)
 
static bool is_bloom_file (const std::string &path)
 
+
static bool check_file_signature (const std::string &path, const std::string &signature)
 
- - -

+

Friends

+
class KmerBloomFilter
 
+
class SeedBloomFilter
 

Constructor & Destructor Documentation

- -

◆ BloomFilter() [1/3]

- +
@@ -176,9 +188,7 @@

-

◆ BloomFilter() [2/3]

- +

@@ -219,9 +229,7 @@

-

◆ BloomFilter() [3/3]

- +

@@ -253,33 +261,23 @@

Member Function Documentation

- -

◆ contains() [1/2]

- +
-
- - - - -
- +
bool btllib::BloomFilter::contains (const std::vector< uint64_t > & const uint64_t *  hashes) const
-
-inline

Check for the presence of an element's hash values.

Parameters
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
@@ -287,25 +285,31 @@

-

◆ contains() [2/2]

- +
+ + + + + +
- +
bool btllib::BloomFilter::contains (const uint64_t * const std::vector< uint64_t > &  hashes) const
+
+inline

Check for the presence of an element's hash values.

Parameters
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
@@ -313,33 +317,23 @@

-

◆ contains_insert() [1/2]

- +
- - - - - -
- +
bool btllib::BloomFilter::contains_insert (const std::vector< uint64_t > & const uint64_t *  hashes)
-
-inline

Check for the presence of an element's hash values and insert if missing.

Parameters
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
@@ -347,25 +341,31 @@

-

◆ contains_insert() [2/2]

- +
+ + + + + +
- +
bool btllib::BloomFilter::contains_insert (const uint64_t * const std::vector< uint64_t > &  hashes)
+
+inline

Check for the presence of an element's hash values and insert if missing.

Parameters
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
@@ -373,9 +373,7 @@

-

◆ get_bytes()

- +
@@ -399,9 +397,7 @@

-

◆ get_fpr()

- +

@@ -417,9 +413,7 @@

-

◆ get_hash_fn()

- +

@@ -427,7 +421,7 @@

- + @@ -443,9 +437,7 @@

-

◆ get_hash_num()

- +
const std::string & btllib::BloomFilter::get_hash_fn const std::string& btllib::BloomFilter::get_hash_fn ( ) const
@@ -469,9 +461,7 @@

-

◆ get_occupancy()

- +

@@ -487,9 +477,7 @@

-

◆ get_pop_cnt()

- +

@@ -505,67 +493,61 @@

-

◆ insert() [1/2]

- +
-

- - - - -
- +
void btllib::BloomFilter::insert (const std::vector< uint64_t > & const uint64_t *  hashes)
-
-inline

Insert an element's hash values.

Parameters
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
- -

◆ insert() [2/2]

- +
+ + + + + +
- +
void btllib::BloomFilter::insert (const uint64_t * const std::vector< uint64_t > &  hashes)
+
+inline

Insert an element's hash values.

Parameters
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
- -

◆ is_bloom_file()

- +
@@ -596,9 +578,7 @@

-

◆ save()

- +

@@ -627,7 +607,9 @@

diff --git a/docs/classbtllib_1_1CountingBloomFilter-members.html b/docs/classbtllib_1_1CountingBloomFilter-members.html index 35cbf16e..4056d7c3 100644 --- a/docs/classbtllib_1_1CountingBloomFilter-members.html +++ b/docs/classbtllib_1_1CountingBloomFilter-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@

- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+

-
btllib::CountingBloomFilter< T > Member List
+
+
btllib::CountingBloomFilter< T > Member List

This is the complete list of members for btllib::CountingBloomFilter< T >, including all inherited members.

- - - - - + + + + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - +
clear(const uint64_t *hashes)btllib::CountingBloomFilter< T >
clear(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
contains(const uint64_t *hashes) constbtllib::CountingBloomFilter< T >inline
contains(const std::vector< uint64_t > &hashes) constbtllib::CountingBloomFilter< T >inline
contains_insert(const uint64_t *hashes)btllib::CountingBloomFilter< T >inline
contains_insert(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
clear(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
contains(const uint64_t *hashes) const btllib::CountingBloomFilter< T >inline
contains(const std::vector< uint64_t > &hashes) const btllib::CountingBloomFilter< T >inline
contains_insert(const uint64_t *hashes, T n=1)btllib::CountingBloomFilter< T >inline
contains_insert(const std::vector< uint64_t > &hashes, T n=1)btllib::CountingBloomFilter< T >inline
contains_insert_thresh(const uint64_t *hashes, T threshold)btllib::CountingBloomFilter< T >inline
contains_insert_thresh(const std::vector< uint64_t > &hashes, const T threshold)btllib::CountingBloomFilter< T >inline
contains_insert_thresh(const std::vector< uint64_t > &hashes, const T threshold)btllib::CountingBloomFilter< T >inline
CountingBloomFilter()btllib::CountingBloomFilter< T >inline
CountingBloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn="")btllib::CountingBloomFilter< T >inline
CountingBloomFilter(size_t bytes, unsigned hash_num, std::string hash_fn="")btllib::CountingBloomFilter< T >inline
CountingBloomFilter(const std::string &path)btllib::CountingBloomFilter< T >inlineexplicit
CountingBloomFilter(const CountingBloomFilter &)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
CountingBloomFilter(const CountingBloomFilter &)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
CountingBloomFilter(CountingBloomFilter &&)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
get_bytes() constbtllib::CountingBloomFilter< T >inline
get_fpr(T threshold=1) constbtllib::CountingBloomFilter< T >inline
get_hash_fn() constbtllib::CountingBloomFilter< T >inline
get_hash_num() constbtllib::CountingBloomFilter< T >inline
get_occupancy(T threshold=1) constbtllib::CountingBloomFilter< T >inline
get_pop_cnt(T threshold=1) constbtllib::CountingBloomFilter< T >inline
insert(const uint64_t *hashes)btllib::CountingBloomFilter< T >inline
insert(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
insert_contains(const uint64_t *hashes)btllib::CountingBloomFilter< T >inline
insert_contains(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
insert_thresh_contains(const uint64_t *hashes, T threshold)btllib::CountingBloomFilter< T >inline
get_bytes() const btllib::CountingBloomFilter< T >inline
get_fpr(T threshold=1) const btllib::CountingBloomFilter< T >inline
get_hash_fn() const btllib::CountingBloomFilter< T >inline
get_hash_num() const btllib::CountingBloomFilter< T >inline
get_occupancy(T threshold=1) const btllib::CountingBloomFilter< T >inline
get_pop_cnt(T threshold=1) const btllib::CountingBloomFilter< T >inline
insert(const uint64_t *hashes, T n=1)btllib::CountingBloomFilter< T >inline
insert(const std::vector< uint64_t > &hashes, T n=1)btllib::CountingBloomFilter< T >inline
insert_contains(const uint64_t *hashes, T n=1)btllib::CountingBloomFilter< T >inline
insert_contains(const std::vector< uint64_t > &hashes, T n=1)btllib::CountingBloomFilter< T >inline
insert_thresh_contains(const uint64_t *hashes, T threshold)btllib::CountingBloomFilter< T >inline
insert_thresh_contains(const std::vector< uint64_t > &hashes, const T threshold)btllib::CountingBloomFilter< T >inline
is_bloom_file(const std::string &path)btllib::CountingBloomFilter< T >inlinestatic
is_bloom_file(const std::string &path)btllib::CountingBloomFilter< T >inlinestatic
KmerCountingBloomFilter< T > (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >friend
operator=(const CountingBloomFilter &)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
operator=(const CountingBloomFilter &)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
operator=(CountingBloomFilter &&)=delete (defined in btllib::CountingBloomFilter< T >)btllib::CountingBloomFilter< T >
remove(const uint64_t *hashes)btllib::CountingBloomFilter< T >inline
remove(const uint64_t *hashes)btllib::CountingBloomFilter< T >inline
remove(const std::vector< uint64_t > &hashes)btllib::CountingBloomFilter< T >inline
save(const std::string &path)btllib::CountingBloomFilter< T >inline
save(const std::string &path)btllib::CountingBloomFilter< T >inline
diff --git a/docs/classbtllib_1_1CountingBloomFilter.html b/docs/classbtllib_1_1CountingBloomFilter.html index 73d8729e..c2ddd23b 100644 --- a/docs/classbtllib_1_1CountingBloomFilter.html +++ b/docs/classbtllib_1_1CountingBloomFilter.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::CountingBloomFilter< T > Class Template Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::CountingBloomFilter< T > Class Template Reference
+
+
btllib::CountingBloomFilter< T > Class Template Reference

#include <counting_bloom_filter.hpp>

- @@ -92,22 +106,22 @@ - - - - - + - - - - - + + + + + @@ -116,18 +130,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -136,39 +150,39 @@ - - - - - - - - - - - - + + + + + + + + + + + +

+

Public Member Functions

 CountingBloomFilter ()
 
 
 CountingBloomFilter (const std::string &path)
 
+
 CountingBloomFilter (const CountingBloomFilter &)=delete
 
+
 CountingBloomFilter (CountingBloomFilter &&)=delete
 
+
CountingBloomFilteroperator= (const CountingBloomFilter &)=delete
 
+
 
CountingBloomFilteroperator= (CountingBloomFilter &&)=delete
 
void insert (const uint64_t *hashes)
 
void insert (const std::vector< uint64_t > &hashes)
 
 
void insert (const uint64_t *hashes, T n=1)
 
void insert (const std::vector< uint64_t > &hashes, T n=1)
 
void remove (const uint64_t *hashes)
 
void remove (const std::vector< uint64_t > &hashes)
 
void clear (const std::vector< uint64_t > &hashes)
 
contains (const uint64_t *hashes) const
 
contains (const std::vector< uint64_t > &hashes) const
 
contains_insert (const uint64_t *hashes)
 
contains_insert (const std::vector< uint64_t > &hashes)
 
insert_contains (const uint64_t *hashes)
 
insert_contains (const std::vector< uint64_t > &hashes)
 
contains (const uint64_t *hashes) const
 
contains (const std::vector< uint64_t > &hashes) const
 
contains_insert (const uint64_t *hashes, T n=1)
 
contains_insert (const std::vector< uint64_t > &hashes, T n=1)
 
insert_contains (const uint64_t *hashes, T n=1)
 
insert_contains (const std::vector< uint64_t > &hashes, T n=1)
 
insert_thresh_contains (const uint64_t *hashes, T threshold)
 
insert_thresh_contains (const std::vector< uint64_t > &hashes, const T threshold)
 
contains_insert_thresh (const std::vector< uint64_t > &hashes, const T threshold)
 
size_t get_bytes () const
 
uint64_t get_pop_cnt (T threshold=1) const
 
double get_occupancy (T threshold=1) const
 
unsigned get_hash_num () const
 
double get_fpr (T threshold=1) const
 
const std::string & get_hash_fn () const
 
size_t get_bytes () const
 
uint64_t get_pop_cnt (T threshold=1) const
 
double get_occupancy (T threshold=1) const
 
unsigned get_hash_num () const
 
double get_fpr (T threshold=1) const
 
const std::string & get_hash_fn () const
 
void save (const std::string &path)
 
-

+

Static Public Member Functions

static bool is_bloom_file (const std::string &path)
 
- -

+

Friends

+
class KmerCountingBloomFilter< T >
 

Detailed Description

-
template<typename T>
-class btllib::CountingBloomFilter< T >

Counting Bloom filter data structure. Provides CountingBloomFilter8, CountingBloomFilter16, and CountingBloomFilter32 classes with corresponding bit-size counters.

-

Constructor & Destructor Documentation

- -

◆ CountingBloomFilter() [1/3]

+

template<typename T>
+class btllib::CountingBloomFilter< T >

+

Counting Bloom filter data structure. Provides CountingBloomFilter8, CountingBloomFilter16, and CountingBloomFilter32 classes with corresponding bit-size counters.

+

Constructor & Destructor Documentation

+

Set the count of an element to zero.

Parameters
- +
hashesInteger vector of the element's hash values.
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
- -

◆ clear() [2/2]

- +
template<typename T >
+ + + + + +
- +
void btllib::CountingBloomFilter< T >::clear (const uint64_t * const std::vector< uint64_t > &  hashes)
+
+inline

Set the count of an element to zero.

Parameters
- +
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the element's hash values.
- -

◆ contains() [1/2]

- +
@@ -359,7 +363,7 @@

T btllib::CountingBloomFilter< T >::contains

(const std::vector< uint64_t > & const uint64_t *  hashes) const
- +
hashesInteger vector of the element's hash values.
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
@@ -381,9 +385,7 @@

-

◆ contains() [2/2]

- +
@@ -395,7 +397,7 @@

T btllib::CountingBloomFilter< T >::contains ( - const uint64_t *  + const std::vector< uint64_t > &  hashes) const @@ -409,7 +411,7 @@

Parameters
- +
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the element's hash values.
@@ -417,9 +419,7 @@

-

◆ contains_insert() [1/2]

- +
@@ -431,9 +431,19 @@

T btllib::CountingBloomFilter< T >::contains_insert ( - const std::vector< uint64_t > &  - hashes) + const uint64_t *  + hashes, + + + + T  + n = 1  + + + + ) + @@ -445,7 +455,8 @@

Parameters
- + +
hashesInteger vector of the element's hash values.
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
nIncrement value
@@ -453,9 +464,7 @@

-

◆ contains_insert() [2/2]

- +
@@ -467,9 +476,19 @@

T btllib::CountingBloomFilter< T >::contains_insert ( - const uint64_t *  - hashes) + const std::vector< uint64_t > &  + hashes, + + + + + T  + n = 1  + + + ) + @@ -481,7 +500,8 @@

Parameters
- + +
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the element's hash values.
nIncrement value
@@ -489,9 +509,7 @@

-

◆ contains_insert_thresh() [1/2]

- +
@@ -503,13 +521,13 @@

T btllib::CountingBloomFilter< T >::contains_insert_thresh ( - const std::vector< uint64_t > &  + const uint64_t *  hashes, - const T  + T  threshold  @@ -527,7 +545,7 @@

Parameters
- +
hashesInteger vector of the element's hash values.
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
thresholdThe threshold.
@@ -536,9 +554,7 @@

-

◆ contains_insert_thresh() [2/2]

- +
@@ -550,13 +566,13 @@

T btllib::CountingBloomFilter< T >::contains_insert_thresh ( - const uint64_t *  + const std::vector< uint64_t > &  hashes, - T  + const T  threshold  @@ -574,7 +590,7 @@

Parameters
- +
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the element's hash values.
thresholdThe threshold.
@@ -583,9 +599,7 @@

-

◆ get_bytes()

- +
@@ -611,9 +625,7 @@

-

◆ get_fpr()

- +
@@ -647,9 +659,7 @@

-

◆ get_hash_fn()

- +
- -

◆ insert() [2/2]

- +
- -

◆ insert_contains() [1/2]

- +
@@ -845,9 +865,19 @@

T btllib::CountingBloomFilter< T >::insert_contains ( - const std::vector< uint64_t > &  - hashes) + const uint64_t *  + hashes, + + + + T  + n = 1  + + + + ) + @@ -859,7 +889,8 @@

Parameters
- + +
hashesInteger vector of the element's hash values.
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
nIncrement value
@@ -867,9 +898,7 @@

-

◆ insert_contains() [2/2]

- +
@@ -881,9 +910,19 @@

T btllib::CountingBloomFilter< T >::insert_contains ( - const uint64_t *  - hashes) + const std::vector< uint64_t > &  + hashes, + + + + T  + n = 1  + + + + ) + @@ -895,7 +934,8 @@

Parameters
- + +
hashesInteger array of the element's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the element's hash values.
nIncrement value
@@ -903,9 +943,7 @@

-

◆ insert_thresh_contains() [1/2]

- +
@@ -917,13 +955,13 @@

T btllib::CountingBloomFilter< T >::insert_thresh_contains ( - const std::vector< uint64_t > &  + const uint64_t *  hashes, - const T  + T  threshold  @@ -950,9 +988,7 @@

-

◆ insert_thresh_contains() [2/2]

- +
@@ -964,13 +1000,13 @@

T btllib::CountingBloomFilter< T >::insert_thresh_contains ( - const uint64_t *  + const std::vector< uint64_t > &  hashes, - T  + const T  threshold  @@ -997,9 +1033,7 @@

-

◆ is_bloom_file()

- +
@@ -1032,9 +1066,7 @@

-

◆ remove() [1/2]

- +
- -

◆ remove() [2/2]

- +
- -

◆ save()

- +
@@ -1144,7 +1172,9 @@

diff --git a/docs/classbtllib_1_1Indexlr-members.html b/docs/classbtllib_1_1Indexlr-members.html index 35fbd324..49c7e000 100644 --- a/docs/classbtllib_1_1Indexlr-members.html +++ b/docs/classbtllib_1_1Indexlr-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables

-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::Indexlr Member List
+
+
btllib::Indexlr Member List

This is the complete list of members for btllib::Indexlr, including all inherited members.

- + - - - + + + - - - - - - - + + + + + + + - +
begin()btllib::Indexlrinline
close() noexcept (defined in btllib::Indexlr)btllib::Indexlrinline
close() noexcept (defined in btllib::Indexlr)btllib::Indexlrinline
end() (defined in btllib::Indexlr)btllib::Indexlrinline
filter_in() const (defined in btllib::Indexlr)btllib::Indexlrinline
filter_out() const (defined in btllib::Indexlr)btllib::Indexlrinline
HashedKmer typedef (defined in btllib::Indexlr)btllib::Indexlr
filter_in() const (defined in btllib::Indexlr)btllib::Indexlrinline
filter_out() const (defined in btllib::Indexlr)btllib::Indexlrinline
HashedKmer typedef (defined in btllib::Indexlr)btllib::Indexlr
Indexlr(std::string seqfile, size_t k, size_t w, unsigned flags=0, unsigned threads=5, bool verbose=false, const btllib::BloomFilter &bf1=Indexlr::dummy_bf(), const btllib::BloomFilter &bf2=Indexlr::dummy_bf())btllib::Indexlrinline
Indexlr(std::string seqfile, size_t k, size_t w, size_t q, unsigned flags=0, unsigned threads=5, bool verbose=false, const btllib::BloomFilter &bf1=Indexlr::dummy_bf(), const btllib::BloomFilter &bf2=Indexlr::dummy_bf()) (defined in btllib::Indexlr)btllib::Indexlrinline
long_mode() const (defined in btllib::Indexlr)btllib::Indexlrinline
MAX_SIMULTANEOUS_INDEXLRS (defined in btllib::Indexlr)btllib::Indexlrstatic
output_bx() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_id() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_qual() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_seq() const (defined in btllib::Indexlr)btllib::Indexlrinline
Indexlr(std::string seqfile, size_t k, size_t w, size_t q, unsigned flags=0, unsigned threads=5, bool verbose=false, const btllib::BloomFilter &bf1=Indexlr::dummy_bf(), const btllib::BloomFilter &bf2=Indexlr::dummy_bf()) (defined in btllib::Indexlr)btllib::Indexlrinline
long_mode() const (defined in btllib::Indexlr)btllib::Indexlrinline
MAX_SIMULTANEOUS_INDEXLRS (defined in btllib::Indexlr)btllib::Indexlrstatic
output_bx() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_id() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_qual() const (defined in btllib::Indexlr)btllib::Indexlrinline
output_seq() const (defined in btllib::Indexlr)btllib::Indexlrinline
read()btllib::Indexlrinline
short_mode() const (defined in btllib::Indexlr)btllib::Indexlrinline
short_mode() const (defined in btllib::Indexlr)btllib::Indexlrinline
~Indexlr() (defined in btllib::Indexlr)btllib::Indexlrinline
diff --git a/docs/classbtllib_1_1Indexlr.html b/docs/classbtllib_1_1Indexlr.html index a4b12b40..e7aea625 100644 --- a/docs/classbtllib_1_1Indexlr.html +++ b/docs/classbtllib_1_1Indexlr.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::Indexlr Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::Indexlr Class Reference
+
+
btllib::Indexlr Class Reference
- @@ -92,64 +106,62 @@

+

Classes

struct  Flag
 
struct  Record
 
- -

+

Public Types

+
using HashedKmer = Minimizer
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - -

+

Public Member Functions

-bool output_id () const
 
-bool output_bx () const
 
-bool output_seq () const
 
-bool output_qual () const
 
-bool filter_in () const
 
-bool filter_out () const
 
-bool short_mode () const
 
-bool long_mode () const
 
+bool output_id () const
 
+bool output_bx () const
 
+bool output_seq () const
 
+bool output_qual () const
 
+bool filter_in () const
 
+bool filter_out () const
 
+bool short_mode () const
 
+bool long_mode () const
 
Record read ()
 
 Indexlr (std::string seqfile, size_t k, size_t w, unsigned flags=0, unsigned threads=5, bool verbose=false, const btllib::BloomFilter &bf1=Indexlr::dummy_bf(), const btllib::BloomFilter &bf2=Indexlr::dummy_bf())
 
+
 Indexlr (std::string seqfile, size_t k, size_t w, size_t q, unsigned flags=0, unsigned threads=5, bool verbose=false, const btllib::BloomFilter &bf1=Indexlr::dummy_bf(), const btllib::BloomFilter &bf2=Indexlr::dummy_bf())
 
+
void close () noexcept
 
RecordIterator begin ()
 
+
RecordIterator end ()
 
- -

+

Static Public Attributes

+
static const size_t MAX_SIMULTANEOUS_INDEXLRS = 256
 

Constructor & Destructor Documentation

- -

◆ Indexlr()

- +
@@ -235,9 +247,7 @@

Member Function Documentation

- -

◆ begin()

- +
@@ -261,9 +271,7 @@

-

◆ read()

- +

@@ -293,7 +301,9 @@

diff --git a/docs/classbtllib_1_1KmerBloomFilter-members.html b/docs/classbtllib_1_1KmerBloomFilter-members.html index 19673904..43eef6bd 100644 --- a/docs/classbtllib_1_1KmerBloomFilter-members.html +++ b/docs/classbtllib_1_1KmerBloomFilter-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@

- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::KmerBloomFilter Member List
+
+
btllib::KmerBloomFilter Member List

This is the complete list of members for btllib::KmerBloomFilter, including all inherited members.

- - - - + + + + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - +
contains(const char *seq, size_t seq_len) constbtllib::KmerBloomFilter
contains(const std::string &seq) constbtllib::KmerBloomFilterinline
contains(const uint64_t *hashes) constbtllib::KmerBloomFilterinline
contains(const std::vector< uint64_t > &hashes) constbtllib::KmerBloomFilterinline
contains(const char *seq, size_t seq_len) const btllib::KmerBloomFilter
contains(const std::string &seq) const btllib::KmerBloomFilterinline
contains(const uint64_t *hashes) const btllib::KmerBloomFilterinline
contains(const std::vector< uint64_t > &hashes) const btllib::KmerBloomFilterinline
contains_insert(const char *seq, size_t seq_len)btllib::KmerBloomFilter
contains_insert(const std::string &seq)btllib::KmerBloomFilterinline
contains_insert(const std::string &seq)btllib::KmerBloomFilterinline
contains_insert(const uint64_t *hashes)btllib::KmerBloomFilterinline
contains_insert(const std::vector< uint64_t > &hashes)btllib::KmerBloomFilterinline
get_bloom_filter()btllib::KmerBloomFilterinline
get_bytes() constbtllib::KmerBloomFilterinline
get_fpr() constbtllib::KmerBloomFilterinline
get_hash_fn() constbtllib::KmerBloomFilterinline
get_hash_num() constbtllib::KmerBloomFilterinline
get_k() constbtllib::KmerBloomFilterinline
get_occupancy() constbtllib::KmerBloomFilterinline
get_pop_cnt() constbtllib::KmerBloomFilterinline
contains_insert(const std::vector< uint64_t > &hashes)btllib::KmerBloomFilterinline
get_bloom_filter()btllib::KmerBloomFilterinline
get_bytes() const btllib::KmerBloomFilterinline
get_fpr() const btllib::KmerBloomFilterinline
get_hash_fn() const btllib::KmerBloomFilterinline
get_hash_num() const btllib::KmerBloomFilterinline
get_k() const btllib::KmerBloomFilterinline
get_occupancy() const btllib::KmerBloomFilterinline
get_pop_cnt() const btllib::KmerBloomFilterinline
insert(const char *seq, size_t seq_len)btllib::KmerBloomFilter
insert(const std::string &seq)btllib::KmerBloomFilterinline
insert(const std::string &seq)btllib::KmerBloomFilterinline
insert(const uint64_t *hashes)btllib::KmerBloomFilterinline
insert(const std::vector< uint64_t > &hashes)btllib::KmerBloomFilterinline
insert(const std::vector< uint64_t > &hashes)btllib::KmerBloomFilterinline
is_bloom_file(const std::string &path)btllib::KmerBloomFilterinlinestatic
KmerBloomFilter()btllib::KmerBloomFilterinline
KmerBloomFilter()btllib::KmerBloomFilterinline
KmerBloomFilter(size_t bytes, unsigned hash_num, unsigned k)btllib::KmerBloomFilter
KmerBloomFilter(const std::string &path)btllib::KmerBloomFilterexplicit
KmerBloomFilter(const std::string &path)btllib::KmerBloomFilterexplicit
KmerBloomFilter(const KmerBloomFilter &)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
KmerBloomFilter(KmerBloomFilter &&)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
KmerBloomFilter(KmerBloomFilter &&)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
operator=(const KmerBloomFilter &)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
operator=(KmerBloomFilter &&)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
operator=(KmerBloomFilter &&)=delete (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilter
save(const std::string &path)btllib::KmerBloomFilter
SeedBloomFilter (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilterfriend
SeedBloomFilter (defined in btllib::KmerBloomFilter)btllib::KmerBloomFilterfriend
diff --git a/docs/classbtllib_1_1KmerBloomFilter.html b/docs/classbtllib_1_1KmerBloomFilter.html index 3d5da2dd..c392b556 100644 --- a/docs/classbtllib_1_1KmerBloomFilter.html +++ b/docs/classbtllib_1_1KmerBloomFilter.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::KmerBloomFilter Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::KmerBloomFilter Class Reference
+
+
btllib::KmerBloomFilter Class Reference

#include <bloom_filter.hpp>

- @@ -92,18 +106,18 @@ - - - - - + - + @@ -112,14 +126,14 @@ - - - - - - - - + + + + + + + + @@ -128,42 +142,40 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +

+

Public Member Functions

 KmerBloomFilter ()
 
 
 KmerBloomFilter (const std::string &path)
 
+
 KmerBloomFilter (const KmerBloomFilter &)=delete
 
+
 KmerBloomFilter (KmerBloomFilter &&)=delete
 
+
KmerBloomFilteroperator= (const KmerBloomFilter &)=delete
 
+
 
KmerBloomFilteroperator= (KmerBloomFilter &&)=delete
 
 
void insert (const char *seq, size_t seq_len)
 
void insert (const std::string &seq)
 
void insert (const std::vector< uint64_t > &hashes)
 
unsigned contains (const char *seq, size_t seq_len) const
 
unsigned contains (const std::string &seq) const
 
bool contains (const uint64_t *hashes) const
 
bool contains (const std::vector< uint64_t > &hashes) const
 
unsigned contains (const char *seq, size_t seq_len) const
 
unsigned contains (const std::string &seq) const
 
bool contains (const uint64_t *hashes) const
 
bool contains (const std::vector< uint64_t > &hashes) const
 
unsigned contains_insert (const char *seq, size_t seq_len)
 
unsigned contains_insert (const std::string &seq)
 
bool contains_insert (const std::vector< uint64_t > &hashes)
 
size_t get_bytes () const
 
uint64_t get_pop_cnt () const
 
double get_occupancy () const
 
unsigned get_hash_num () const
 
double get_fpr () const
 
unsigned get_k () const
 
const std::string & get_hash_fn () const
 
BloomFilterget_bloom_filter ()
 
size_t get_bytes () const
 
uint64_t get_pop_cnt () const
 
double get_occupancy () const
 
unsigned get_hash_num () const
 
double get_fpr () const
 
unsigned get_k () const
 
const std::string & get_hash_fn () const
 
BloomFilterget_bloom_filter ()
 
void save (const std::string &path)
 
-

+

Static Public Member Functions

static bool is_bloom_file (const std::string &path)
 
- -

+

Friends

+
class SeedBloomFilter
 

Detailed Description

Bloom filter data structure stores k-mers.

Constructor & Destructor Documentation

- -

◆ KmerBloomFilter() [1/3]

- +
@@ -187,9 +199,7 @@

-

◆ KmerBloomFilter() [2/3]

- +

@@ -230,9 +240,7 @@

-

◆ KmerBloomFilter() [3/3]

- +

@@ -264,9 +272,7 @@

Member Function Documentation

- -

◆ contains() [1/4]

- +
@@ -301,9 +307,7 @@

-

◆ contains() [2/4]

- +

@@ -335,9 +339,7 @@

-

◆ contains() [3/4]

- +

@@ -347,7 +349,7 @@

bool btllib::KmerBloomFilter::contains

- + @@ -361,16 +363,14 @@

Parameters

(const std::vector< uint64_t > & const uint64_t *  hashes) const
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
- -

◆ contains() [4/4]

- +
@@ -380,7 +380,7 @@

bool btllib::KmerBloomFilter::contains

- + @@ -394,16 +394,14 @@

Parameters

(const uint64_t * const std::vector< uint64_t > &  hashes) const
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
- -

◆ contains_insert() [1/4]

- +
@@ -438,9 +436,7 @@

-

◆ contains_insert() [2/4]

- +

@@ -472,9 +468,7 @@

-

◆ contains_insert() [3/4]

- +

@@ -484,7 +478,7 @@

bool btllib::KmerBloomFilter::contains_insert

- + @@ -498,7 +492,7 @@

Parameters

(const std::vector< uint64_t > & const uint64_t *  hashes)
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
@@ -506,9 +500,7 @@

-

◆ contains_insert() [4/4]

- +
@@ -518,7 +510,7 @@

bool btllib::KmerBloomFilter::contains_insert

- + @@ -532,7 +524,7 @@

Parameters

(const uint64_t * const std::vector< uint64_t > &  hashes)
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
@@ -540,9 +532,7 @@

-

◆ get_bloom_filter()

- +
@@ -550,7 +540,7 @@

- + @@ -566,9 +556,7 @@

-

◆ get_bytes()

- +
BloomFilter & btllib::KmerBloomFilter::get_bloom_filter BloomFilter& btllib::KmerBloomFilter::get_bloom_filter ( )
@@ -592,9 +580,7 @@

-

◆ get_fpr()

- +

@@ -618,9 +604,7 @@

-

◆ get_hash_fn()

- +

@@ -628,7 +612,7 @@

- + @@ -644,9 +628,7 @@

-

◆ get_hash_num()

- +
const std::string & btllib::KmerBloomFilter::get_hash_fn const std::string& btllib::KmerBloomFilter::get_hash_fn ( ) const
@@ -670,9 +652,7 @@

-

◆ get_k()

- +

@@ -696,9 +676,7 @@

-

◆ get_occupancy()

- +

@@ -722,9 +700,7 @@

-

◆ get_pop_cnt()

- +

@@ -748,9 +724,7 @@

-

◆ insert() [1/4]

- +

@@ -784,9 +758,7 @@

-

◆ insert() [2/4]

- +

@@ -817,9 +789,7 @@

-

◆ insert() [3/4]

- +

@@ -829,7 +799,7 @@

void btllib::KmerBloomFilter::insert

- + @@ -843,16 +813,14 @@

Parameters

(const std::vector< uint64_t > & const uint64_t *  hashes)
- +
hashesInteger vector of hash values.
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
- -

◆ insert() [4/4]

- +
@@ -862,7 +830,7 @@

void btllib::KmerBloomFilter::insert

- + @@ -876,16 +844,14 @@

Parameters

(const uint64_t * const std::vector< uint64_t > &  hashes)
- +
hashesInteger array of hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of hash values.
- -

◆ is_bloom_file()

- +
@@ -916,9 +882,7 @@

-

◆ save()

- +

@@ -947,7 +911,9 @@

diff --git a/docs/classbtllib_1_1KmerCountingBloomFilter-members.html b/docs/classbtllib_1_1KmerCountingBloomFilter-members.html index 35314dbb..3572f557 100644 --- a/docs/classbtllib_1_1KmerCountingBloomFilter-members.html +++ b/docs/classbtllib_1_1KmerCountingBloomFilter-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@

- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::KmerCountingBloomFilter< T > Member List
+
+
btllib::KmerCountingBloomFilter< T > Member List

This is the complete list of members for btllib::KmerCountingBloomFilter< T >, including all inherited members.

- + - - - - - + + + + + - - - + + + - + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - +
clear(const char *seq, size_t seq_len)btllib::KmerCountingBloomFilter< T >inline
clear(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
clear(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
clear(const uint64_t *hashes)btllib::KmerCountingBloomFilter< T >inline
clear(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
contains(const char *seq, size_t seq_len) constbtllib::KmerCountingBloomFilter< T >inline
contains(const std::string &seq) constbtllib::KmerCountingBloomFilter< T >inline
contains(const uint64_t *hashes) constbtllib::KmerCountingBloomFilter< T >inline
contains(const std::vector< uint64_t > &hashes) constbtllib::KmerCountingBloomFilter< T >inline
clear(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
contains(const char *seq, size_t seq_len) const btllib::KmerCountingBloomFilter< T >inline
contains(const std::string &seq) const btllib::KmerCountingBloomFilter< T >inline
contains(const uint64_t *hashes) const btllib::KmerCountingBloomFilter< T >inline
contains(const std::vector< uint64_t > &hashes) const btllib::KmerCountingBloomFilter< T >inline
contains_insert(const char *seq, size_t seq_len)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const uint64_t *hashes)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const uint64_t *hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
contains_insert(const std::vector< uint64_t > &hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const char *seq, size_t seq_len, T threshold)btllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const std::string &seq, const T threshold)btllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const std::string &seq, const T threshold)btllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const uint64_t *hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const std::vector< uint64_t > &hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
get_bytes() constbtllib::KmerCountingBloomFilter< T >inline
get_counting_bloom_filter()btllib::KmerCountingBloomFilter< T >inline
get_fpr(T threshold=1) constbtllib::KmerCountingBloomFilter< T >inline
get_hash_fn() constbtllib::KmerCountingBloomFilter< T >inline
get_hash_num() constbtllib::KmerCountingBloomFilter< T >inline
get_k() constbtllib::KmerCountingBloomFilter< T >inline
get_occupancy(T threshold=1) constbtllib::KmerCountingBloomFilter< T >inline
get_pop_cnt(T threshold=1) constbtllib::KmerCountingBloomFilter< T >inline
contains_insert_thresh(const std::vector< uint64_t > &hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
get_bytes() const btllib::KmerCountingBloomFilter< T >inline
get_counting_bloom_filter()btllib::KmerCountingBloomFilter< T >inline
get_fpr(T threshold=1) const btllib::KmerCountingBloomFilter< T >inline
get_hash_fn() const btllib::KmerCountingBloomFilter< T >inline
get_hash_num() const btllib::KmerCountingBloomFilter< T >inline
get_k() const btllib::KmerCountingBloomFilter< T >inline
get_occupancy(T threshold=1) const btllib::KmerCountingBloomFilter< T >inline
get_pop_cnt(T threshold=1) const btllib::KmerCountingBloomFilter< T >inline
insert(const char *seq, size_t seq_len)btllib::KmerCountingBloomFilter< T >inline
insert(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
insert(const uint64_t *hashes)btllib::KmerCountingBloomFilter< T >inline
insert(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
insert(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
insert(const uint64_t *hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
insert(const std::vector< uint64_t > &hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const char *seq, size_t seq_len)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const uint64_t *hashes)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const uint64_t *hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
insert_contains(const std::vector< uint64_t > &hashes, T n=1)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const char *seq, size_t seq_len, T threshold)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const std::string &seq, const T threshold)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const std::string &seq, const T threshold)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const uint64_t *hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const std::vector< uint64_t > &hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
insert_thresh_contains(const std::vector< uint64_t > &hashes, const T threshold)btllib::KmerCountingBloomFilter< T >inline
is_bloom_file(const std::string &path)btllib::KmerCountingBloomFilter< T >inlinestatic
KmerCountingBloomFilter()btllib::KmerCountingBloomFilter< T >inline
KmerCountingBloomFilter()btllib::KmerCountingBloomFilter< T >inline
KmerCountingBloomFilter(size_t bytes, unsigned hash_num, unsigned k)btllib::KmerCountingBloomFilter< T >inline
KmerCountingBloomFilter(const std::string &path)btllib::KmerCountingBloomFilter< T >inlineexplicit
KmerCountingBloomFilter(const std::string &path)btllib::KmerCountingBloomFilter< T >inlineexplicit
KmerCountingBloomFilter(const KmerCountingBloomFilter &)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
KmerCountingBloomFilter(KmerCountingBloomFilter &&)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
KmerCountingBloomFilter(KmerCountingBloomFilter &&)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
operator=(const KmerCountingBloomFilter &)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
operator=(KmerCountingBloomFilter &&)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
operator=(KmerCountingBloomFilter &&)=delete (defined in btllib::KmerCountingBloomFilter< T >)btllib::KmerCountingBloomFilter< T >
remove(const char *seq, size_t seq_len)btllib::KmerCountingBloomFilter< T >inline
remove(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
remove(const std::string &seq)btllib::KmerCountingBloomFilter< T >inline
remove(const uint64_t *hashes)btllib::KmerCountingBloomFilter< T >inline
remove(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
remove(const std::vector< uint64_t > &hashes)btllib::KmerCountingBloomFilter< T >inline
save(const std::string &path)btllib::KmerCountingBloomFilter< T >inline
diff --git a/docs/classbtllib_1_1KmerCountingBloomFilter.html b/docs/classbtllib_1_1KmerCountingBloomFilter.html index aed9f2b1..db0b9f41 100644 --- a/docs/classbtllib_1_1KmerCountingBloomFilter.html +++ b/docs/classbtllib_1_1KmerCountingBloomFilter.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::KmerCountingBloomFilter< T > Class Template Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::KmerCountingBloomFilter< T > Class Template Reference
+
+
btllib::KmerCountingBloomFilter< T > Class Template Reference

#include <counting_bloom_filter.hpp>

- @@ -91,26 +105,26 @@ - - - - - + - + - - - - + + + + @@ -127,30 +141,30 @@ - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + @@ -167,37 +181,37 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +

+

Public Member Functions

 KmerCountingBloomFilter ()
 
 
 KmerCountingBloomFilter (const std::string &path)
 
+
 KmerCountingBloomFilter (const KmerCountingBloomFilter &)=delete
 
+
 KmerCountingBloomFilter (KmerCountingBloomFilter &&)=delete
 
+
KmerCountingBloomFilteroperator= (const KmerCountingBloomFilter &)=delete
 
+
 
KmerCountingBloomFilteroperator= (KmerCountingBloomFilter &&)=delete
 
 
void insert (const char *seq, size_t seq_len)
 
void insert (const std::string &seq)
 
void insert (const uint64_t *hashes)
 
void insert (const std::vector< uint64_t > &hashes)
 
void insert (const uint64_t *hashes, T n=1)
 
void insert (const std::vector< uint64_t > &hashes, T n=1)
 
void remove (const char *seq, size_t seq_len)
 
void remove (const std::string &seq)
 
void clear (const std::vector< uint64_t > &hashes)
 
uint64_t contains (const char *seq, size_t seq_len) const
 
uint64_t contains (const std::string &seq) const
 
contains (const uint64_t *hashes) const
 
contains (const std::vector< uint64_t > &hashes) const
 
uint64_t contains (const char *seq, size_t seq_len) const
 
uint64_t contains (const std::string &seq) const
 
contains (const uint64_t *hashes) const
 
contains (const std::vector< uint64_t > &hashes) const
 
contains_insert (const char *seq, size_t seq_len)
 
contains_insert (const std::string &seq)
 
contains_insert (const uint64_t *hashes)
 
contains_insert (const std::vector< uint64_t > &hashes)
 
contains_insert (const uint64_t *hashes, T n=1)
 
contains_insert (const std::vector< uint64_t > &hashes, T n=1)
 
insert_contains (const char *seq, size_t seq_len)
 
insert_contains (const std::string &seq)
 
insert_contains (const uint64_t *hashes)
 
insert_contains (const std::vector< uint64_t > &hashes)
 
insert_contains (const uint64_t *hashes, T n=1)
 
insert_contains (const std::vector< uint64_t > &hashes, T n=1)
 
insert_thresh_contains (const char *seq, size_t seq_len, T threshold)
 
insert_thresh_contains (const std::string &seq, const T threshold)
 
contains_insert_thresh (const std::vector< uint64_t > &hashes, const T threshold)
 
size_t get_bytes () const
 
uint64_t get_pop_cnt (T threshold=1) const
 
double get_occupancy (T threshold=1) const
 
unsigned get_hash_num () const
 
double get_fpr (T threshold=1) const
 
unsigned get_k () const
 
const std::string & get_hash_fn () const
 
CountingBloomFilter< T > & get_counting_bloom_filter ()
 
size_t get_bytes () const
 
uint64_t get_pop_cnt (T threshold=1) const
 
double get_occupancy (T threshold=1) const
 
unsigned get_hash_num () const
 
double get_fpr (T threshold=1) const
 
unsigned get_k () const
 
const std::string & get_hash_fn () const
 
CountingBloomFilter< T > & get_counting_bloom_filter ()
 
void save (const std::string &path)
 
-

+

Static Public Member Functions

static bool is_bloom_file (const std::string &path)
 

Detailed Description

-
template<typename T>
-class btllib::KmerCountingBloomFilter< T >

Counting Bloom filter data structure that stores k-mers. Provides KmerCountingBloomFilter8, KmerCountingBloomFilter16, and KmerCountingBloomFilter32 classes with corresponding bit-size counters.

-

Constructor & Destructor Documentation

- -

◆ KmerCountingBloomFilter() [1/3]

+

template<typename T>
+class btllib::KmerCountingBloomFilter< T >

+

Counting Bloom filter data structure that stores k-mers. Provides KmerCountingBloomFilter8, KmerCountingBloomFilter16, and KmerCountingBloomFilter32 classes with corresponding bit-size counters.

+

Constructor & Destructor Documentation

+
@@ -207,7 +221,7 @@

- + @@ -223,9 +237,7 @@

-

◆ KmerCountingBloomFilter() [2/3]

- +
@@ -235,7 +247,7 @@

btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter ( )
- + @@ -276,9 +288,7 @@

-

◆ KmerCountingBloomFilter() [3/3]

- +
@@ -288,7 +298,7 @@

btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter ( size_t  bytes,
- + @@ -312,9 +322,7 @@

Member Function Documentation

- -

◆ clear() [1/4]

- +
@@ -358,9 +366,7 @@

-

◆ clear() [2/4]

- +
@@ -393,9 +399,7 @@

-

◆ clear() [3/4]

- +
@@ -407,7 +411,7 @@

void btllib::KmerCountingBloomFilter< T >::clear

- + @@ -421,16 +425,14 @@

Parameters

btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter btllib::KmerCountingBloomFilter< T >::KmerCountingBloomFilter ( const std::string &  path) (const std::vector< uint64_t > & const uint64_t *  hashes)
- +
hashesInteger vector of the k-mer's hash values.
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.

- -

◆ clear() [4/4]

- +
- -

◆ contains() [1/4]

- +
@@ -510,9 +510,7 @@

-

◆ contains() [2/4]

- +
@@ -546,9 +544,7 @@

-

◆ contains() [3/4]

- +
@@ -560,7 +556,7 @@

T btllib::KmerCountingBloomFilter< T >::contains ( - const std::vector< uint64_t > &  + const uint64_t *  hashes) const @@ -574,7 +570,7 @@

Parameters
- +
hashesInteger vector of k-mer's hash values.
hashesInteger array of k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
@@ -582,9 +578,7 @@

-

◆ contains() [4/4]

- +
@@ -596,7 +590,7 @@

T btllib::KmerCountingBloomFilter< T >::contains ( - const uint64_t *  + const std::vector< uint64_t > &  hashes) const @@ -610,7 +604,7 @@

Parameters
- +
hashesInteger array of k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of k-mer's hash values.
@@ -618,9 +612,7 @@

-

◆ contains_insert() [1/4]

- +
@@ -665,9 +657,7 @@

-

◆ contains_insert() [2/4]

- +
@@ -701,9 +691,7 @@

-

◆ contains_insert() [3/4]

- +
@@ -715,9 +703,19 @@

T btllib::KmerCountingBloomFilter< T >::contains_insert ( - const std::vector< uint64_t > &  - hashes) + const uint64_t *  + hashes, + + + + T  + n = 1  + + + + ) + @@ -729,7 +727,8 @@

Parameters
- + +
hashesInteger vector of the k-mer's hash values.
hashesInteger array of the k-mers's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
nIncrement value
@@ -737,9 +736,7 @@

-

◆ contains_insert() [4/4]

- +
@@ -751,9 +748,19 @@

T btllib::KmerCountingBloomFilter< T >::contains_insert ( - const uint64_t *  - hashes) + const std::vector< uint64_t > &  + hashes, + + + + T  + n = 1  + + + + ) + @@ -765,7 +772,8 @@

Parameters
- + +
hashesInteger array of the k-mers's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the k-mer's hash values.
nIncrement value
@@ -773,9 +781,7 @@

-

◆ contains_insert_thresh() [1/4]

- +
@@ -827,9 +833,7 @@

-

◆ contains_insert_thresh() [2/4]

- +
@@ -874,9 +878,7 @@

-

◆ contains_insert_thresh() [3/4]

- +
@@ -888,7 +890,7 @@

T btllib::KmerCountingBloomFilter< T >::contains_insert_thresh ( - const std::vector< uint64_t > &  + const uint64_t *  hashes, @@ -912,7 +914,7 @@

Parameters
- +
hashesInteger vector of the k-mer's hash values.
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
thresholdThe threshold.
@@ -921,9 +923,7 @@

-

◆ contains_insert_thresh() [4/4]

- +
@@ -935,7 +935,7 @@

T btllib::KmerCountingBloomFilter< T >::contains_insert_thresh ( - const uint64_t *  + const std::vector< uint64_t > &  hashes, @@ -959,7 +959,7 @@

Parameters
- +
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the k-mer's hash values.
thresholdThe threshold.
@@ -968,9 +968,7 @@

-

◆ get_bytes()

- +
@@ -996,9 +994,7 @@

-

◆ get_counting_bloom_filter()

- +
- -

◆ insert() [4/4]

- +
@@ -1332,9 +1319,19 @@

void btllib::KmerCountingBloomFilter< T >::insert ( - const uint64_t *  - hashes) + const std::vector< uint64_t > &  + hashes, + + + + T  + n = 1  + + + + ) + @@ -1346,16 +1343,15 @@

Parameters
- + +
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the k-mer's hash values.
nIncrement value

- -

◆ insert_contains() [1/4]

- +
@@ -1400,9 +1396,7 @@

-

◆ insert_contains() [2/4]

- +
@@ -1436,9 +1430,7 @@

-

◆ insert_contains() [3/4]

- +
@@ -1450,9 +1442,19 @@

T btllib::KmerCountingBloomFilter< T >::insert_contains ( - const std::vector< uint64_t > &  - hashes) + const uint64_t *  + hashes, + + + + T  + n = 1  + + + + ) + @@ -1464,7 +1466,8 @@

Parameters
- + +
hashesInteger vector of the k-mer's hash values.
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
nIncrement value
@@ -1472,9 +1475,7 @@

-

◆ insert_contains() [4/4]

- +
@@ -1486,9 +1487,19 @@

T btllib::KmerCountingBloomFilter< T >::insert_contains ( - const uint64_t *  - hashes) + const std::vector< uint64_t > &  + hashes, + + + + T  + n = 1  + + + + ) + @@ -1500,7 +1511,8 @@

Parameters
- + +
hashesInteger array of the k-mer's hash values. Array size should equal the hash_num argument used when the Bloom filter was constructed.
hashesInteger vector of the k-mer's hash values.
nIncrement value
@@ -1508,9 +1520,7 @@

-

◆ insert_thresh_contains() [1/4]

- +
@@ -1562,9 +1572,7 @@

-

◆ insert_thresh_contains() [2/4]

- +
@@ -1609,9 +1617,7 @@

-

◆ insert_thresh_contains() [3/4]

- +
@@ -1623,7 +1629,7 @@

T btllib::KmerCountingBloomFilter< T >::insert_thresh_contains ( - const std::vector< uint64_t > &  + const uint64_t *  hashes, @@ -1656,9 +1662,7 @@

-

◆ insert_thresh_contains() [4/4]

- +
@@ -1670,7 +1674,7 @@

T btllib::KmerCountingBloomFilter< T >::insert_thresh_contains ( - const uint64_t *  + const std::vector< uint64_t > &  hashes, @@ -1703,9 +1707,7 @@

-

◆ is_bloom_file()

- +
@@ -1738,9 +1740,7 @@

-

◆ remove() [1/4]

- +
@@ -1784,9 +1784,7 @@

-

◆ remove() [2/4]

- +
@@ -1819,9 +1817,7 @@

-

◆ remove() [3/4]

- +
- -

◆ remove() [4/4]

- +
- -

◆ save()

- +
@@ -1931,7 +1923,9 @@

diff --git a/docs/classbtllib_1_1NtHash-members.html b/docs/classbtllib_1_1NtHash-members.html index 4b7e9436..72293e12 100644 --- a/docs/classbtllib_1_1NtHash-members.html +++ b/docs/classbtllib_1_1NtHash-members.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: Member List - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables

-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+
-
btllib::NtHash Member List
+
+
btllib::NtHash Member List

This is the complete list of members for btllib::NtHash, including all inherited members.

- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +
change_seq(const std::string &new_seq, size_t new_pos=0) (defined in btllib::NtHash)btllib::NtHashinline
forward() const (defined in btllib::NtHash)btllib::NtHashinline
get_forward_hash() const (defined in btllib::NtHash)btllib::NtHashinline
get_hash_num() const (defined in btllib::NtHash)btllib::NtHashinline
get_k() const (defined in btllib::NtHash)btllib::NtHashinline
get_pos() constbtllib::NtHashinline
get_reverse_hash() const (defined in btllib::NtHash)btllib::NtHashinline
hashes() const (defined in btllib::NtHash)btllib::NtHashinline
NtHash(const char *seq, size_t seq_len, unsigned hash_num, unsigned k, size_t pos=0)btllib::NtHash
NtHash(const std::string &seq, unsigned hash_num, unsigned k, size_t pos=0)btllib::NtHash
NtHash(const NtHash &nthash) (defined in btllib::NtHash)btllib::NtHash
NtHash(NtHash &&)=default (defined in btllib::NtHash)btllib::NtHash
peek()btllib::NtHash
peek(char char_in)btllib::NtHash
peek_back()btllib::NtHash
peek_back(char char_in)btllib::NtHash
roll()btllib::NtHash
roll_back()btllib::NtHash
SeedNtHash (defined in btllib::NtHash)btllib::NtHashfriend
sub(const std::vector< unsigned > &positions, const std::vector< unsigned char > &new_bases) (defined in btllib::NtHash)btllib::NtHash
get_forward_hash() const btllib::NtHashinline
get_hash_num() const btllib::NtHashinline
get_k() const btllib::NtHashinline
get_pos() const btllib::NtHashinline
get_reverse_hash() const btllib::NtHashinline
hashes() const btllib::NtHashinline
NtHash(const char *seq, size_t seq_len, hashing_internals::NUM_HASHES_TYPE num_hashes, hashing_internals::K_TYPE k, size_t pos=0)btllib::NtHashinline
NtHash(const std::string &seq, hashing_internals::NUM_HASHES_TYPE num_hashes, hashing_internals::K_TYPE k, size_t pos=0)btllib::NtHashinline
NtHash(const NtHash &obj) (defined in btllib::NtHash)btllib::NtHashinline
NtHash(NtHash &&)=default (defined in btllib::NtHash)btllib::NtHash
peek()btllib::NtHashinline
peek(char char_in)btllib::NtHashinline
peek_back()btllib::NtHashinline
peek_back(char char_in)btllib::NtHashinline
roll()btllib::NtHashinline
roll_back()btllib::NtHashinline
sub(const std::vector< unsigned > &positions, const std::vector< unsigned char > &new_bases) (defined in btllib::NtHash)btllib::NtHashinline
diff --git a/docs/classbtllib_1_1NtHash.html b/docs/classbtllib_1_1NtHash.html index 03aae588..33215f69 100644 --- a/docs/classbtllib_1_1NtHash.html +++ b/docs/classbtllib_1_1NtHash.html @@ -1,17 +1,18 @@ - - + + - - - + + btllib: btllib::NtHash Class Reference - + @@ -19,8 +20,8 @@
- - + @@ -29,42 +30,54 @@
+
btllib
- - - - + - + +
-
+ All Classes Namespaces Functions Variables
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
+