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
24 seqMatch(int s, int m) : seq(s), match(m) {}
26 /**************************************************************************************************/
27 inline bool compareSeqMatches (seqMatch member, seqMatch member2){ //sorts largest to smallest
28 if(member.match > member2.match){
34 /**************************************************************************************************/
35 inline bool compareSeqMatchesReverse (seqMatch member, seqMatch member2){ //sorts largest to smallest
36 if(member.match < member2.match){
43 /**************************************************************************************************/
49 virtual void generateDB() = 0;
50 virtual void addSequence(Sequence) = 0; //add sequence to search engine
51 virtual string getName(int) { return ""; }
52 virtual vector<int> findClosestSequences(Sequence*, int) = 0; // returns indexes of n closest sequences to query
53 virtual vector<int> findClosestMegaBlast(Sequence*, int, int){return results;}
54 virtual float getSearchScore();
55 virtual vector<float> getSearchScores() { return Scores; } //assumes you already called findClosestMegaBlast
56 virtual int getLongestBase();
57 virtual void readKmerDB(ifstream&){};
58 virtual void setNumSeqs(int i) { numSeqs = i; }
59 virtual vector<int> getSequencesWithKmer(int){ vector<int> filler; return filler; };
60 virtual int getMaxKmer(){ return 1; };
69 /**************************************************************************************************/