8 * Created by Pat Schloss on 12/16/08.
9 * Copyright 2008 Patrick D. Schloss. All rights reserved.
14 /* This class is a parent to blastdb, kmerdb, suffixdb. */
17 #include "sequence.hpp"
19 /**************************************************************************************************/
20 struct seqMatch { //used to select top n matches
23 seqMatch(int s, int m) : seq(s), match(m) {}
25 /**************************************************************************************************/
26 inline bool compareSeqMatches (seqMatch member, seqMatch member2){ //sorts largest to smallest
27 if(member.match > member2.match){
33 /**************************************************************************************************/
34 inline bool compareSeqMatchesReverse (seqMatch member, seqMatch member2){ //sorts largest to smallest
35 if(member.match < member2.match){
42 /**************************************************************************************************/
48 virtual void generateDB() = 0;
49 virtual void addSequence(Sequence) = 0; //add sequence to search engine
50 virtual vector<int> findClosestSequences(Sequence*, int) = 0; // returns indexes of n closest sequences to query
51 virtual float getSearchScore();
52 virtual int getLongestBase();
53 virtual void readKmerDB(ifstream&){};
54 virtual void setNumSeqs(int i) { numSeqs = i; }
55 virtual vector<int> getSequencesWithKmer(int){ vector<int> filler; return filler; };
56 virtual int getMaxKmer(){ return 1; };
63 /**************************************************************************************************/