X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=unifracweightedcommand.h;h=2e2ba3a64f11bf35f7b6ff612bd8b32e6bdd644a;hb=e150b0b0664caec517485ee6d69dcdade6dcae77;hp=d309566e45b0d58fb2631eeb1a0ad1816907f437;hpb=5a3592c6478d5d786ec20e4bee71854ad92fdb8c;p=mothur.git diff --git a/unifracweightedcommand.h b/unifracweightedcommand.h index d309566..2e2ba3a 100644 --- a/unifracweightedcommand.h +++ b/unifracweightedcommand.h @@ -13,42 +13,71 @@ #include "command.hpp" #include "weighted.h" #include "treemap.h" - -using namespace std; - -class GlobalData; +#include "progress.hpp" +#include "sharedutilities.h" +#include "fileoutput.h" +#include "readtree.h" class UnifracWeightedCommand : public Command { public: - UnifracWeightedCommand(); - ~UnifracWeightedCommand() { delete weighted; } - int execute(); + UnifracWeightedCommand(string); + UnifracWeightedCommand(); + ~UnifracWeightedCommand() {} + + vector setParameters(); + string getCommandName() { return "unifrac.weighted"; } + string getCommandCategory() { return "Hypothesis Testing"; } + string getHelpString(); + string getCitation() { return "http://www.mothur.org/wiki/Unifrac.weighted"; } + + int execute(); + void help() { m->mothurOut(getHelpString()); } private: - GlobalData* globaldata; + struct linePair { + int start; + int num; + linePair(int i, int j) : start(i), num(j) {} + }; + vector lines; + + ReadTree* read; + SharedUtil* util; + FileOutput* output; vector T; //user trees - vector utreeScores; //user tree unweighted scores - vector WScoreSig; //tree weighted score signifigance when compared to random trees - percentage of random trees with that score or lower. + vector utreeScores; //user tree unweighted scores + vector WScoreSig; //tree weighted score signifigance when compared to random trees - percentage of random trees with that score or lower. vector groupComb; // AB. AC, BC... - Tree* randT; //random tree TreeMap* tmap; Weighted* weighted; - string weightedFile, sumFile; - int iters, numGroups, numComp; + string sumFile, outputDir; + int iters, numGroups, numComp, counter; EstOutput userData; //weighted score info for user tree EstOutput randomData; //weighted score info for random trees - vector< vector > validScores; //vector each group comb has an entry - vector< vector > rScores; //vector each group comb has an entry - vector< vector > uScores; //vector each group comb has an entry - - ofstream outSum, out; + vector< vector > rScores; //vector each group comb has an entry + vector< vector > uScores; //vector each group comb has an entry + vector< map > rScoreFreq; //map -vector entry for each combination. + vector< map > rCumul; //map -vector entry for each c + map validScores; //map contains scores from random + + bool abort, phylip, random, includeRoot; + string groups, itersString, outputForm, treefile, groupfile, namefile; + vector Groups, outputNames; //holds groups to be used + int processors, numUniquesInName; + ofstream outSum; + map nameMap; void printWSummaryFile(); - // void printWeightedFile(); - void removeValidScoresDuplicates(); - int findIndex(float); - void setGroups(); + void printWeightedFile(); + void createPhylipFile(); + //void removeValidScoresDuplicates(); + int findIndex(float, int); + void calculateFreqsCumuls(); + int createProcesses(Tree*, vector< vector >, vector< vector >&); + int driver(Tree*, vector< vector >, int, int, vector< vector >&); + int readNamesFile(); + };