]> git.donarmstrong.com Git - mothur.git/blobdiff - phylodiversitycommand.h
Revert to previous commit
[mothur.git] / phylodiversitycommand.h
diff --git a/phylodiversitycommand.h b/phylodiversitycommand.h
new file mode 100644 (file)
index 0000000..5d0cccf
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef PHYLODIVERSITYCOMMAND_H
+#define PHYLODIVERSITYCOMMAND_H
+
+/*
+ *  phylodiversitycommand.h
+ *  Mothur
+ *
+ *  Created by westcott on 4/30/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+#include "command.hpp"
+#include "treemap.h"
+#include "sharedutilities.h"
+#include "tree.h"
+
+class PhyloDiversityCommand : public Command {
+       
+       public:
+               PhyloDiversityCommand(string);
+               PhyloDiversityCommand();
+               ~PhyloDiversityCommand(){}
+       
+               vector<string> setParameters();
+               string getCommandName()                 { return "phylo.diversity";                     }
+               string getCommandCategory()             { return "Hypothesis Testing";          }
+               string getHelpString(); 
+               string getCitation() { return "Faith DP (1994). Phylogenetic pattern and the quantification of organismal biodiversity. Philos Trans R Soc Lond B Biol Sci 345: 45-58. \nhttp://www.mothur.org/wiki/Phylo.diversity"; }
+               string getDescription()         { return "phylo.diversity"; }
+
+               int execute();
+               void help() { m->mothurOut(getHelpString()); }
+private:
+               TreeMap* tmap;
+               float freq;
+               int iters, processors, numUniquesInName;  
+               bool abort, rarefy, summary, collect, scale;
+               string groups, outputDir, treefile, groupfile, namefile;
+               vector<string> Groups, outputNames; //holds groups to be used, and outputFile names
+               
+               int readNamesFile();
+               void printData(set<int>&, map< string, vector<float> >&, ofstream&, int);
+               void printSumData(map< string, vector<float> >&, ofstream&, int);
+               vector<float> calcBranchLength(Tree*, int, map< string, set<int> >&);
+               int driver(Tree*, map< string, vector<float> >&, map<string, vector<float> >&, int, int, vector<int>&, set<int>&, ofstream&, ofstream&, bool);
+               int createProcesses(vector<int>&, Tree*, map< string, vector<float> >&, map<string, vector<float> >&, int, int, vector<int>&, set<int>&, ofstream&, ofstream&);
+
+};
+
+#endif
+