+ Database();
+ virtual ~Database();
+ virtual void generateDB() = 0;
+ virtual void addSequence(Sequence) = 0; //add sequence to search engine
+ virtual string getName(int) { return ""; }
+ virtual vector<int> findClosestSequences(Sequence*, int) = 0; // returns indexes of n closest sequences to query
+ virtual vector<int> findClosestMegaBlast(Sequence*, int, int){return results;}
+ virtual float getSearchScore();
+ virtual vector<float> getSearchScores() { return Scores; } //assumes you already called findClosestMegaBlast
+ virtual int getLongestBase();
+ virtual void readKmerDB(ifstream&){};
+ virtual void setNumSeqs(int i) { numSeqs = i; }
+ virtual vector<int> getSequencesWithKmer(int){ vector<int> filler; return filler; };
+ virtual int getReversed(int) { return 0; }
+ virtual int getMaxKmer(){ return 1; }