X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=decalc.h;h=d6cca182e81937dd5a494d57c2c8221b6039ad45;hp=dbdf31650235f5b0d5074923d8495591380ec30b;hb=1a20e24ee786195ab0e1cccd4f5aede7a88f3f4e;hpb=7597c66c08bac938fedcacc1f760186bc077b3f1 diff --git a/decalc.h b/decalc.h index dbdf316..d6cca18 100644 --- a/decalc.h +++ b/decalc.h @@ -20,29 +20,58 @@ /***********************************************************************/ +//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() {}; - void setMask(string m); + vector findClosest(Sequence, vector&, vector&, int, int); //takes querySeq, a reference db, filteredRefDB, numWanted, minSim + Sequence* findClosest(Sequence*, vector); + set getPos() { return h; } + void setMask(string); + void setAlignmentLength(int l) { alignLength = l; } void runMask(Sequence*); - void trimSeqs(Sequence*, Sequence, map&); + void trimSeqs(Sequence*, Sequence*, map&); + map trimSeqs(Sequence&, vector&); + void removeObviousOutliers(vector< vector >&, int); vector calcFreq(vector, string); vector findWindows(Sequence*, int, int, int&, int); - vector calcObserved(Sequence*, Sequence, vector, int); + vector calcObserved(Sequence*, Sequence*, vector, int); vector calcExpected(vector, float); vector findQav(vector, int, vector); float calcDE(vector, vector); - float calcDist(Sequence*, Sequence, int, int); + float calcDist(Sequence*, Sequence*, int, int); float getCoef(vector, vector); vector< vector > getQuantiles(vector, vector, int, vector, int, int, int); + vector returnObviousOutliers(vector< vector >, int); + + map getMaskMap() { return maskMap; } + private: + //vector sortContrib(map); //used by mallard + float findAverage(vector); + //int findLargestContrib(vector); + //void removeContrib(int, vector&); string seqMask; set h; + int alignLength; + map maskMap; + MothurOut* m; };