X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=unifracweightedcommand.h;h=547e35235a24ac1ab169c918da544301aea7bd13;hb=257eaa172451ede9d63a0715f6cdb7336a52996b;hp=e10aa44e8462d4690e095e4ab1ef37ea8542e9cd;hpb=813502505663a3d00555bf7633163432b643dd68;p=mothur.git diff --git a/unifracweightedcommand.h b/unifracweightedcommand.h index e10aa44..547e352 100644 --- a/unifracweightedcommand.h +++ b/unifracweightedcommand.h @@ -13,28 +13,44 @@ #include "command.hpp" #include "weighted.h" #include "treemap.h" +#include "progress.hpp" +#include "sharedutilities.h" +#include "fileoutput.h" -using namespace std; class GlobalData; class UnifracWeightedCommand : public Command { public: - UnifracWeightedCommand(); - ~UnifracWeightedCommand() { delete weighted; } + UnifracWeightedCommand(string); + UnifracWeightedCommand(); + ~UnifracWeightedCommand() { if (abort == false) { delete weighted; delete util; } } + vector getRequiredParameters(); + vector getValidParameters(); + vector getRequiredFiles(); + map > getOutputFiles() { return outputTypes; } int execute(); + void help(); private: + struct linePair { + int start; + int num; + linePair(int i, int j) : start(i), num(j) {} + }; + vector lines; + GlobalData* globaldata; + 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 groupComb; // AB. AC, BC... - Tree* randT; //random tree TreeMap* tmap; Weighted* weighted; - string weightedFile, weightedFileout, sumFile; + string sumFile, outputDir; int iters, numGroups, numComp, counter; EstOutput userData; //weighted score info for user tree EstOutput randomData; //weighted score info for random trees @@ -43,22 +59,25 @@ class UnifracWeightedCommand : public Command { 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 - map::iterator it2; - map::iterator it; - ofstream outSum, out; - ifstream inFile; + bool abort, phylip, random; + string groups, itersString; + vector Groups, outputNames; //holds groups to be used + map > outputTypes; + int processors; + + + ofstream outSum; void printWSummaryFile(); void printWeightedFile(); + void createPhylipFile(); //void removeValidScoresDuplicates(); int findIndex(float, int); - void setGroups(); void calculateFreqsCumuls(); - void initFile(string); - void output(vector); - void resetFile(); - + int createProcesses(Tree*, vector< vector >, vector< vector >&); + int driver(Tree*, vector< vector >, int, int, vector< vector >&); + };