]> git.donarmstrong.com Git - mothur.git/blobdiff - kmerdb.cpp
another pds fix to sffinfo
[mothur.git] / kmerdb.cpp
index bf8679e57a932af0567df8a456f038b76fbf0fae..33761a8416524fa3a0fd10b7136ea5a097d3fd08 100644 (file)
@@ -42,12 +42,14 @@ KmerDB::KmerDB(string fastaFileName, int kSize) : Database(), kmerSize(kSize) {
                
        }
        catch(exception& e) {
-               errorOut(e, "KmerDB", "KmerDB");
+               m->errorOut(e, "KmerDB", "KmerDB");
                exit(1);
        }       
 
 }
 /**************************************************************************************************/
+KmerDB::KmerDB() : Database() {}
+/**************************************************************************************************/
 
 KmerDB::~KmerDB(){}
 
@@ -94,7 +96,7 @@ vector<int> KmerDB::findClosestSequences(Sequence* candidateSeq, int num){
                return topMatches;              
        }
        catch(exception& e) {
-               errorOut(e, "KmerDB", "findClosestSequences");
+               m->errorOut(e, "KmerDB", "findClosestSequences");
                exit(1);
        }       
 }
@@ -118,7 +120,7 @@ void KmerDB::generateDB(){
                
        }
        catch(exception& e) {
-               errorOut(e, "KmerDB", "generateDB");
+               m->errorOut(e, "KmerDB", "generateDB");
                exit(1);
        }       
        
@@ -143,7 +145,7 @@ void KmerDB::addSequence(Sequence seq) {
                count++;
        }
        catch(exception& e) {
-               errorOut(e, "KmerDB", "addSequence");
+               m->errorOut(e, "KmerDB", "addSequence");
                exit(1);
        }       
 }
@@ -170,9 +172,43 @@ void KmerDB::readKmerDB(ifstream& kmerDBFile){
                
        }
        catch(exception& e) {
-               errorOut(e, "KmerDB", "readKmerDB");
+               m->errorOut(e, "KmerDB", "readKmerDB");
                exit(1);
        }       
 }
 
 /**************************************************************************************************/
+int KmerDB::getCount(int kmer) {
+       try {
+               if (kmer < 0) { return 0; }  //if user gives negative number
+               else if (kmer > maxKmer) {      return 0;       }  //or a kmer that is bigger than maxkmer
+               else {  return kmerLocations[kmer].size();      }  // kmer is in vector range
+       }
+       catch(exception& e) {
+               m->errorOut(e, "KmerDB", "getCount");
+               exit(1);
+       }       
+}
+/**************************************************************************************************/
+vector<int> KmerDB::getSequencesWithKmer(int kmer) {
+       try {
+               
+               vector<int> seqs;
+       
+               if (kmer < 0) { }  //if user gives negative number
+               else if (kmer > maxKmer) {      }  //or a kmer that is bigger than maxkmer
+               else {  seqs = kmerLocations[kmer];     }
+               
+               return seqs;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "KmerDB", "getSequencesWithKmer");
+               exit(1);
+       }       
+}
+/**************************************************************************************************/
+
+
+/**************************************************************************************************/
+
+