#include "command.hpp"
-#include "inputdata.h"
-#include "sharedrabundvector.h"
-#include "validcalculator.h"
-#include "readphylipvector.h"
-class GlobalData;
+//class GlobalData;
+class GroupMap;
class HomovaCommand : public Command {
public:
HomovaCommand(string);
HomovaCommand();
- ~HomovaCommand();
- vector<string> getRequiredParameters();
- vector<string> getValidParameters();
- vector<string> getRequiredFiles();
- map<string, vector<string> > getOutputFiles() { return outputTypes; }
+ ~HomovaCommand(){}
+
+ vector<string> setParameters();
+ string getCommandName() { return "homova"; }
+ string getCommandCategory() { return "Hypothesis Testing"; }
+ string getHelpString();
+ string getCitation() { return "Stewart CN, Excoffier L (1996). Assessing population genetic structure and variability with RAPD data: Application to Vaccinium macrocarpon (American Cranberry). J Evol Biol 9: 153-71. \nhttp://www.mothur.org/wiki/Homova"; }
+ string getDescription() { return "homova"; }
+
int execute();
- void help();
+ void help() { m->mothurOut(getHelpString()); }
private:
- struct linePair {
- int start;
- int num;
- linePair(int i, int j) : start(i), num(j) {}
- };
- vector<linePair> lines;
-
- GlobalData* globaldata;
+ double runHOMOVA(ofstream& , map<string, vector<int> >, double);
+ double calcSigleSSWithin(vector<int>);
+ double calcBValue(map<string, vector<int> >, vector<double>&);
+ map<string, vector<int> > getRandomizedGroups(map<string, vector<int> >);
+
+ bool abort;
+ vector<string> outputNames;
+
+ string outputDir, inputDir, designFileName, phylipFileName;
GroupMap* designMap;
- map<string, vector<string> > outputTypes;
-
- vector< vector<double> > matrix;
- bool abort, allLines, pickedGroups;
- set<string> labels; //holds labels to be used
- string format, groups, label, outputDir, inputDir, designfile, sets, phylipfile, calc, sharedfile;
- vector<string> Groups, outputNames, Sets;
- vector< vector<string> > namesOfGroupCombos;
- int iters, processors;
- vector<Calculator*> calculators;
-
- int driver(int, int, vector<SharedRAbundVector*>, string);
- int driver(int, int, vector<string>, string, vector< vector<double> >&);
- int process(vector<SharedRAbundVector*>);
- int calcHomova(ofstream&, int, vector<string>);
- map<string, double> calcWithinEach(vector< vector<double> >&, int, vector<string>, map<string, int>&);
- double calcWithin(vector< vector<double> >&, int, vector<string>);
- double calcTotal(int);
+ vector< vector<double> > distanceMatrix;
+ int iters;
+ double experimentwiseAlpha;
};
#endif
-
-