X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kruskalwalliscommand.h;h=4a1e18971802619f245d53af5a1ab7b881936316;hb=aa3ee3c06f2937ac571078f9b6902407ac19103f;hp=7e526137bc42daa1928c7e0988e1b52d546dbf2a;hpb=013ef8f1507c29ef442e47eb3538ecdd1ef6ddef;p=mothur.git diff --git a/kruskalwalliscommand.h b/kruskalwalliscommand.h index 7e52613..4a1e189 100644 --- a/kruskalwalliscommand.h +++ b/kruskalwalliscommand.h @@ -9,11 +9,14 @@ #define KRUSKALWALLISCOMMAND_H #include "command.hpp" +#include "inputdata.h" +#include "sharedrabundvector.h" -class KruskalWallisCommand : public Command { +class KruskalWallisCommand : public Command { + public: - + KruskalWallisCommand(string); KruskalWallisCommand(); ~KruskalWallisCommand(){} @@ -26,16 +29,35 @@ public: string getCitation() { return "http://www.mothur.org/wiki/kruskalwallis"; } string getDescription() { return "Non-parametric method for testing whether samples originate from the same distribution."; } + struct groupRank { + string group; + double value; + double rank; + }; + int execute(); void help() { m->mothurOut(getHelpString()); } - multimap getRank(vector); + void assignRank(vector&); + void assignValue(vector&); + private: - string outputDir; + string outputDir, sharedfile; + bool abort; + set labels; + vector outputNames; vector counts; vector rankSums; vector rankMeans; + + + static bool comparevalue(const groupRank &a, const groupRank &b) { return a.value < b.value; } + static bool equalvalue(const groupRank &a, const groupRank &b) { return a.value == b.value; } + static bool comparerank(const groupRank &a, const groupRank &b) { return a.rank < b.rank; } + static bool equalrank(const groupRank &a, const groupRank &b) { return a.rank == b.rank; } + static bool equalgroup(const groupRank &a, const groupRank &b) { return a.group == b.group; } + }; #endif /* KRUSKALWALLISCOMMAND_H */