]> git.donarmstrong.com Git - mothur.git/blobdiff - decalc.h
changes while testing
[mothur.git] / decalc.h
index 9309c37378d8c08c0fc7e1c270f272a153e555f4..d6cca182e81937dd5a494d57c2c8221b6039ad45 100644 (file)
--- a/decalc.h
+++ b/decalc.h
 
 /***********************************************************************/
 
+//this structure is necessary to determine the sequence that contributed to the outliers when we remove them
+//this way we can remove all scores that are contributed by outlier sequences.
+struct quanMember {
+       float score;
+       int member1;
+       int member2;
+       quanMember (float s, int m, int n) : score(s), member1(m),  member2(n) {}
+       quanMember() {}
+       
+};
+               
+//********************************************************************************************************************
 class DeCalculator {
 
        public:
                
-               DeCalculator() {};
+               DeCalculator() { m = MothurOut::getInstance(); }
                ~DeCalculator() {};
                
+               vector<Sequence> findClosest(Sequence, vector<Sequence*>&, vector<Sequence*>&, int, int);  //takes querySeq, a reference db, filteredRefDB, numWanted, minSim 
+               Sequence* findClosest(Sequence*, vector<Sequence*>);
                set<int> getPos() {  return h;  }
-               void setMask(string m); 
+               void setMask(string); 
+               void setAlignmentLength(int l) {  alignLength = l;  }
                void runMask(Sequence*);
                void trimSeqs(Sequence*, Sequence*, map<int, int>&);
+               map<int, int> trimSeqs(Sequence&, vector<Sequence>&);
+               void removeObviousOutliers(vector< vector<float> >&, int);
                vector<float> calcFreq(vector<Sequence*>, string);
                vector<int> findWindows(Sequence*, int, int, int&, int);
                vector<float> calcObserved(Sequence*, Sequence*, vector<int>, int);
@@ -41,9 +58,20 @@ class DeCalculator {
                float getCoef(vector<float>, vector<float>);
                vector< vector<float> > getQuantiles(vector<Sequence*>, vector<int>, int, vector<float>, int, int, int);
                
+               vector<int> returnObviousOutliers(vector< vector<quanMember> >, int);
+               
+               map<int, int> getMaskMap() { return maskMap; }
+               
        private:
+               //vector<quanMember> sortContrib(map<quanMember*, float>);  //used by mallard
+               float findAverage(vector<float>);
+               //int findLargestContrib(vector<int>);
+               //void removeContrib(int, vector<quanMember>&);
                string seqMask;
                set<int> h;
+               int alignLength;
+               map<int, int> maskMap;
+               MothurOut* m;
 
 };