X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kmerdb.hpp;h=ead3d7e0b20d7b0ee070caebaad74aedeaae7dd3;hb=bd27c2b0612942815b7417c79f7ee41f669a2a34;hp=af52789dedc231eb5495f4a2f10cbc0efe73a37c;hpb=c5c7502f435e1413c19e373dab1dfebcaa67588d;p=mothur.git diff --git a/kmerdb.hpp b/kmerdb.hpp index af52789..ead3d7e 100644 --- a/kmerdb.hpp +++ b/kmerdb.hpp @@ -8,21 +8,41 @@ * Created by Pat Schloss on 12/16/08. * Copyright 2008 Patrick D. Schloss. All rights reserved. * + * This class is a child class of the Database class, which stores the template sequences as a kmer table and provides + * a method of searching the kmer table for the sequence with the most kmers in common with a query sequence. + * kmerLocations is the primary storage variable that is a two-dimensional vector where each row represents the + * different number of kmers and each column contains the index to sequences that use that kmer. + * + * Construction of an object of this type will first look for an appropriately named database file and if it is found + * then will read in the database file (readKmerDB), otherwise it will generate one and store the data in memory + * (generateKmerDB) + */ #include "mothur.h" +#include "database.hpp" class KmerDB : public Database { public: KmerDB(string, int); - Sequence* findClosestSequence(Sequence*); - + KmerDB(); + ~KmerDB(); + + void generateDB(); + void addSequence(Sequence); + vector findClosestSequences(Sequence*, int); + void readKmerDB(ifstream&); + int getCount(int); //returns number of sequences with that kmer number + vector getSequencesWithKmer(int); //returns vector of sequences that contain kmer passed in + int getReversed(int); //returns reverse compliment kmerNumber + int getMaxKmer() { return maxKmer; } + private: - void generateKmerDB(string); - void readKmerDB(string, ifstream&); + int kmerSize; - int maxKmer; + int maxKmer, count; + string kmerDBName; vector > kmerLocations; };