Skip to content

Instantly share code, notes, and snippets.

@standage
Created June 1, 2017 19:59
Show Gist options
  • Save standage/c7e20fc52b6b92f5c8a5c88192162e10 to your computer and use it in GitHub Desktop.
Save standage/c7e20fc52b6b92f5c8a5c88192162e10 to your computer and use it in GitHub Desktop.
template<typename HasherType, typename StorageType>
class Sketch
{
protected:
StorageType storage;
public:
Sketch(size_t Wordsize, size_t table_size, size_t num_tables = 4);
add(std::string& kmer);
get(std::string& kmer);
save(std::string& filename);
load(std::string& filename);
};
template<typename HasherType, typename StorageType>
void consume_string(std::string& sequence, Sketch<HasherType, StorageType> sketch);
template<typename HasherType, typename StorageType, typename Parser>
void consume_seqfile(std::string& filename, Sketch<HasherType, StorageType> sketch);
template class Sketch<MurmurHasher, BitStorage>;
template class Sketch<MurmurHasher, ByteStorage>;
template class Sketch<MurmurHasher, NibbleStorage>;
template class Sketch<TwoBitHasher, BitStorage>;
template class Sketch<TwoBitHasher, ByteStorage>;
template class Sketch<TwoBitHasher, NibbleStorage>;
template void consume_string<MurmurHasher, BitStorage>;
template void consume_string<MurmurHasher, ByteStorage>;
template void consume_string<MurmurHasher, NibbleStorage>;
template void consume_string<TwoBitHasher, BitStorage>;
template void consume_string<TwoBitHasher, ByteStorage>;
template void consume_string<TwoBitHasher, NibbleStorage>;
template void consume_seqfile<MurmurHasher, BitStorage, FastxReader>;
template void consume_seqfile<MurmurHasher, ByteStorage, FastxReader>;
template void consume_seqfile<MurmurHasher, NibbleStorage, FastxReader>;
template void consume_seqfile<TwoBitHasher, BitStorage, FastxReader>;
template void consume_seqfile<TwoBitHasher, ByteStorage, FastxReader>;
template void consume_seqfile<TwoBitHasher, NibbleStorage, FastxReader>;
template void consume_seqfile<MurmurHasher, BitStorage, BamReader>;
template void consume_seqfile<MurmurHasher, ByteStorage, BamReader>;
template void consume_seqfile<MurmurHasher, NibbleStorage, BamReader>;
template void consume_seqfile<TwoBitHasher, BitStorage, BamReader>;
template void consume_seqfile<TwoBitHasher, ByteStorage, BamReader>;
template void consume_seqfile<TwoBitHasher, NibbleStorage, BamReader>;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment