]> git.donarmstrong.com Git - mothur.git/blobdiff - maligner.h
changes while testing
[mothur.git] / maligner.h
index 6277e7300a02fbe815468e223298f5f969813a51..fc00e99faf3ad3931f76606c34ffb65b69eb4de7 100644 (file)
  */
  
 #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<Sequence*>, int, int, int, float, int);
+               Maligner(vector<Sequence>, int, int, float, int, int); //int, int, int, , string, Database*, Database*
                ~Maligner() {};
                
-               string getResults(Sequence*);
+               string getResults(Sequence, DeCalculator);
                float getPercentID() {  return percentIdenticalQueryChimera;    }
                vector<results> getOutput()  {  return outputResults;                   }
                
                                
        private:
-               DeCalculator* decalc;
-               Sequence* query;
-               vector<Sequence*> refSeqs;
-               vector<Sequence*> db;
-               int numWanted, matchScore, misMatchPenalty, minCoverage;
+               Sequence query;
+               vector<Sequence> refSeqs;
+               vector<Sequence> db;
+               int minCoverage, minSimilarity, matchScore, misMatchPenalty;
                float minDivR, percentIdenticalQueryChimera;
                vector<results> outputResults;
-               
-               vector<Sequence*> minCoverageFilter(vector<Sequence*>);  //removes top matches that do not have minimum coverage with query.
+               map<int, int> spotMap;
+               vector<int> unalignedMap;
+               vector<Sequence> minCoverageFilter(vector<Sequence>);  //removes top matches that do not have minimum coverage with query.
                int computeChimeraPenalty();
-               void verticalFilter(vector<Sequence*>);
+               vector<Sequence> verticalFilter(vector<Sequence>);
                
                vector< vector<score_struct> > buildScoreMatrix(int, int);
-               void fillScoreMatrix(vector<vector<score_struct> >&, vector<Sequence*>, int);
+               void fillScoreMatrix(vector<vector<score_struct> >&, vector<Sequence>, int);
                vector<score_struct> extractHighestPath(vector<vector<score_struct> >);
-               vector<trace_struct> mapTraceRegionsToAlignment(vector<score_struct>, vector<Sequence*>);
-               string constructChimericSeq(vector<trace_struct>, vector<Sequence*>);
+               vector<trace_struct> mapTraceRegionsToAlignment(vector<score_struct>);
+               string constructChimericSeq(vector<trace_struct>, vector<Sequence>);
+               string constructAntiChimericSeq(vector<trace_struct>, vector<Sequence>);
                float computePercentID(string, string);
+               string chimeraMaligner(int, DeCalculator);
+               MothurOut* m;
                
 };