]> git.donarmstrong.com Git - mothur.git/blobdiff - consensuscommand.h
fixed misspelling on consensus
[mothur.git] / consensuscommand.h
diff --git a/consensuscommand.h b/consensuscommand.h
new file mode 100644 (file)
index 0000000..53b8094
--- /dev/null
@@ -0,0 +1,55 @@
+#ifndef CONCENSUSCOMMAND_H
+#define CONCENSUSCOMMAND_H
+/*
+ *  consensuscommand.h
+ *  Mothur
+ *
+ *  Created by Sarah Westcott on 4/29/09.
+ *  Copyright 2009 Schloss Lab UMASS AMherst. All rights reserved.
+ *
+ */
+
+#include "command.hpp"
+#include "tree.h"
+#include "treemap.h"
+#include "sharedutilities.h"
+       
+class GlobalData;
+
+class ConcensusCommand : public Command {
+       
+public:
+       ConcensusCommand(string);       
+       ~ConcensusCommand();
+       int execute();
+       void help();    
+       
+private:
+       GlobalData* globaldata;
+       SharedUtil* util;
+       vector<Tree*> t;
+       Tree* consensusTree;
+       bool abort;
+       vector<string> treeSet;         //set containing all members of the tree to start recursion.  filled in getSets().
+       map< vector<string>, int > nodePairs;  //<map of possible combinations these combos are the pcounts or descendants info, to how many times they occured
+                                                                               // ie. combos FI and EGK would create nodePairs[vector containing F and I] = 1; nodePairs[vector containing E, G and K] = 1
+                                                                               // if you saw the combo FI again in another tree you would then update nodePairs[vector containing F and I] = 2;
+                                                                               // requires vectors to be sorted to find key.
+       map< vector<string>, int > nodePairsInTree;
+       map<string, int>::iterator it;
+       map< vector<string>, int>::iterator it2;
+       string outputFile, notIncluded, filename;
+       ofstream out, out2;
+       int numNodes, numLeaves, count;  //count is the next available spot in the tree vector
+                                                                               
+       void getSets();
+       vector<string> getNextAvailableSet(vector<string>);  //gets next largest and highest rated set that is a subset of the set passed in.
+       vector<string> getRestSet(vector<string>, vector<string>);
+       bool isSubset(vector<string>, vector<string>); 
+       int findSpot(string); 
+       int buildConcensusTree(vector<string>);
+       
+};
+
+#endif
+