X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=maligner.h;h=fc00e99faf3ad3931f76606c34ffb65b69eb4de7;hp=6277e7300a02fbe815468e223298f5f969813a51;hb=d1c97b8c04bb75faca1e76ffad60b37a4d789d3d;hpb=05a0195e07c42c996592ee1c8abb63adedb7f493 diff --git a/maligner.h b/maligner.h index 6277e73..fc00e99 100644 --- a/maligner.h +++ b/maligner.h @@ -10,64 +10,46 @@ */ #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, float, int, int); //int, 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; + Sequence query; + vector refSeqs; + vector db; + int minCoverage, minSimilarity, matchScore, misMatchPenalty; float minDivR, percentIdenticalQueryChimera; vector outputResults; - - vector minCoverageFilter(vector); //removes top matches that do not have minimum coverage with query. + map spotMap; + vector unalignedMap; + vector minCoverageFilter(vector); //removes top matches that do not have minimum coverage with query. int computeChimeraPenalty(); - void verticalFilter(vector); + vector verticalFilter(vector); vector< vector > buildScoreMatrix(int, int); - void fillScoreMatrix(vector >&, vector, int); + void fillScoreMatrix(vector >&, vector, int); vector extractHighestPath(vector >); - vector mapTraceRegionsToAlignment(vector, vector); - string constructChimericSeq(vector, vector); + vector mapTraceRegionsToAlignment(vector); + string constructChimericSeq(vector, vector); + string constructAntiChimericSeq(vector, vector); float computePercentID(string, string); + string chimeraMaligner(int, DeCalculator); + MothurOut* m; };