X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=decalc.h;fp=decalc.h;h=65a8f46038e53bc79fc24085e9c6a995f85fda6f;hb=8c3489da5da7fb7274f34bfa091c54aa496e75bd;hp=4ce45bf751915dd9e077ce478ae912358e789900;hpb=e79a9a566775025f92dc317219628caef7f14a30;p=mothur.git diff --git a/decalc.h b/decalc.h index 4ce45bf..65a8f46 100644 --- a/decalc.h +++ b/decalc.h @@ -20,6 +20,18 @@ /***********************************************************************/ +//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: @@ -32,7 +44,7 @@ class DeCalculator { void setAlignmentLength(int l) { alignLength = l; } void runMask(Sequence*); void trimSeqs(Sequence*, Sequence*, map&); - void removeObviousOutliers(vector< vector >&); + vector< vector > removeObviousOutliers(vector< vector >&, int); vector calcFreq(vector, string); vector findWindows(Sequence*, int, int, int&, int); vector calcObserved(Sequence*, Sequence*, vector, int); @@ -41,10 +53,15 @@ class DeCalculator { float calcDE(vector, vector); float calcDist(Sequence*, Sequence*, int, int); float getCoef(vector, vector); - vector< vector > getQuantiles(vector, vector, int, vector, int, int, int); + vector< vector > getQuantiles(vector, vector, int, vector, int, int, int, vector&); + + vector returnObviousOutliers(vector< vector >, int); private: - float findAverage(vector myVector); + vector sortContrib(map); //used by mallard + float findAverage(vector); + int findLargestContrib(vector); + void removeContrib(int, vector&); string seqMask; set h; int alignLength;