X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=database.hpp;fp=database.hpp;h=01916d1924bb86466798dc2667f83aaeda174c3d;hb=63e089e0b3aad1741bab60119ed7ccc784dce347;hp=01393c130adb3250ffaf5c9ed97fd8a2d4043c1e;hpb=f5023c911c377e5320c5110c78af98dd8841ef58;p=mothur.git diff --git a/database.hpp b/database.hpp index 01393c1..01916d1 100644 --- a/database.hpp +++ b/database.hpp @@ -11,24 +11,51 @@ */ -/* This class is a parent to blastdb, distancedb, kmerdb, suffixdb. Which are used to convert a squencedb object into that form. */ +/* This class is a parent to blastdb, kmerdb, suffixdb. */ #include "mothur.h" +#include "sequence.hpp" -class Sequence; +/**************************************************************************************************/ +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); + Database(); virtual ~Database(); - virtual Sequence findClosestSequence(Sequence*) = 0; + 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 float getSearchScore(); virtual int getLongestBase(); + virtual void readKmerDB(ifstream&){}; + virtual void setNumSeqs(int i) { numSeqs = i; } protected: int numSeqs, longest; float searchScore; - vector templateSequences; }; - +/**************************************************************************************************/ #endif