X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=database.hpp;h=3191fdfb02d5323129af949cf1eb50aea50ff3c8;hb=4d7ffb38e091e9e7425d94e112551a3f90cacb0f;hp=e497fa42fea869d84502387638279a8a9896bbab;hpb=20a2d0350a737a434c89f303662d64a8eeea7b05;p=mothur.git diff --git a/database.hpp b/database.hpp index e497fa4..3191fdf 100644 --- a/database.hpp +++ b/database.hpp @@ -10,14 +10,57 @@ * */ + +/* This class is a parent to blastdb, kmerdb, suffixdb. */ + +#include "mothur.h" +#include "sequence.hpp" + +/**************************************************************************************************/ +struct seqMatch { //used to select top n matches + int seq; + int match; + seqMatch(int s, int m) : seq(s), match(m) {} +}; +/**************************************************************************************************/ +inline bool compareSeqMatches (seqMatch member, seqMatch member2){ //sorts largest to smallest + if(member.match > member2.match){ + return true; } + else{ + return false; + } +} +/**************************************************************************************************/ +inline bool compareSeqMatchesReverse (seqMatch member, seqMatch member2){ //sorts largest to smallest + if(member.match < member2.match){ + return true; } + else{ + return false; + } +} + +/**************************************************************************************************/ class Database { + public: - Database(string); - virtual Sequence* findClosestSequence(Sequence*) = 0; + Database(); + virtual ~Database(); + virtual void generateDB() = 0; + virtual void addSequence(Sequence) = 0; //add sequence to search engine + virtual vector findClosestSequences(Sequence*, int) = 0; // returns indexes of n closest sequences to query + virtual vector findClosestMegaBlast(Sequence*, int){return results;} + virtual float getSearchScore(); + virtual int getLongestBase(); + virtual void readKmerDB(ifstream&){}; + virtual void setNumSeqs(int i) { numSeqs = i; } + virtual vector getSequencesWithKmer(int){ vector filler; return filler; }; + virtual int getMaxKmer(){ return 1; }; protected: - int numSeqs; - vector templateSequences; + MothurOut* m; + int numSeqs, longest; + float searchScore; + vector results; }; - +/**************************************************************************************************/ #endif