]> git.donarmstrong.com Git - mothur.git/blobdiff - kmerdb.hpp
changes while testing
[mothur.git] / kmerdb.hpp
index af52789dedc231eb5495f4a2f10cbc0efe73a37c..ead3d7e0b20d7b0ee070caebaad74aedeaae7dd3 100644 (file)
@@ -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<int> findClosestSequences(Sequence*, int);
+       void readKmerDB(ifstream&);
+       int getCount(int);  //returns number of sequences with that kmer number
+       vector<int> 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<vector<int> > kmerLocations;
 };