X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=maligner.h;h=a4c959bb480ae7035b3f74b1f76b5c833bd8138c;hb=5334a314651228c55fd0f206dec0209bc3148b24;hp=6277e7300a02fbe815468e223298f5f969813a51;hpb=05a0195e07c42c996592ee1c8abb63adedb7f493;p=mothur.git diff --git a/maligner.h b/maligner.h index 6277e73..a4c959b 100644 --- a/maligner.h +++ b/maligner.h @@ -10,53 +10,36 @@ */ #include "decalc.h" +#include "chimera.h" +#include "database.hpp" /***********************************************************************/ //This class was modeled after the chimeraMaligner written by the Broad Institute -/***********************************************************************/ -struct score_struct { - int prev; - int score; - int row; - int col; -}; -/***********************************************************************/ -struct trace_struct { - int col; - int oldCol; - int row; -}; -/***********************************************************************/ -struct results { - int regionStart; - int regionEnd; - string parent; - float queryToParent; - float queryToParentLocal; - float divR; -}; - /**********************************************************************/ class Maligner { public: - Maligner(vector, int, int, int, float, int); + Maligner(vector, int, int, int, float, int, int, string, Database*, Database*); ~Maligner() {}; - string getResults(Sequence*); + string getResults(Sequence*, DeCalculator*); float getPercentID() { return percentIdenticalQueryChimera; } vector getOutput() { return outputResults; } private: - DeCalculator* decalc; Sequence* query; vector refSeqs; vector db; - int numWanted, matchScore, misMatchPenalty, minCoverage; + int numWanted, matchScore, misMatchPenalty, minCoverage, minSimilarity; + string searchMethod; float minDivR, percentIdenticalQueryChimera; vector outputResults; + vector indexes; //stores index into template seqs of the refSeqs, so we can return the whole sequence rather than the trimmed and filtered one + map spotMap; + Database* databaseLeft; + Database* databaseRight; vector minCoverageFilter(vector); //removes top matches that do not have minimum coverage with query. int computeChimeraPenalty(); @@ -68,6 +51,10 @@ class Maligner { vector mapTraceRegionsToAlignment(vector, vector); string constructChimericSeq(vector, vector); float computePercentID(string, string); + string chimeraMaligner(int, DeCalculator*); + vector getBlastSeqs(Sequence*, int); + vector getKmerSeqs(Sequence*, int); + MothurOut* m; };