}
catch(exception& e) {
- errorOut(e, "KmerDB", "KmerDB");
+ m->errorOut(e, "KmerDB", "KmerDB");
exit(1);
}
}
/**************************************************************************************************/
+KmerDB::KmerDB() : Database() {}
+/**************************************************************************************************/
KmerDB::~KmerDB(){}
return topMatches;
}
catch(exception& e) {
- errorOut(e, "KmerDB", "findClosestSequences");
+ m->errorOut(e, "KmerDB", "findClosestSequences");
exit(1);
}
}
try {
ofstream kmerFile; // once we have the kmerLocations folder print it out
- openOutputFile(kmerDBName, kmerFile); // to a file
+ m->openOutputFile(kmerDBName, kmerFile); // to a file
+
+ //output version
+ kmerFile << "#" << m->getVersion() << endl;
for(int i=0;i<maxKmer;i++){ // step through all of the possible kmer numbers
kmerFile << i << ' ' << kmerLocations[i].size(); // print the kmer number and the number of sequences with
}
catch(exception& e) {
- errorOut(e, "KmerDB", "generateDB");
+ m->errorOut(e, "KmerDB", "generateDB");
exit(1);
}
count++;
}
catch(exception& e) {
- errorOut(e, "KmerDB", "addSequence");
+ m->errorOut(e, "KmerDB", "addSequence");
exit(1);
}
}
kmerDBFile.seekg(0); // start at the beginning of the file
+ //read version
+ string line = m->getline(kmerDBFile); m->gobble(kmerDBFile);
+
string seqName;
int seqNumber;
}
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);
+ }
+}
+/**************************************************************************************************/
+
+
+/**************************************************************************************************/
+
+