*/
#include "command.hpp"
-#include "sharedordervector.h"
-#include "sharedlistvector.h"
#include "inputdata.h"
#include "groupmap.h"
#include "readotu.h"
#include "validcalculator.h"
#include "tree.h"
#include "treemap.h"
-#include "sharedutilities.h"
+#include "readmatrix.hpp"
+#include "readcolumn.h"
+#include "readphylip.h"
+#include "sparsematrix.hpp"
/* This command create a tree file for each similarity calculator at distance level, using various calculators to find the similiarity between groups.
class GlobalData;
+typedef list<PCell>::iterator MatData;
+
class TreeGroupCommand : public Command {
public:
- TreeGroupCommand();
+ TreeGroupCommand(string);
~TreeGroupCommand();
int execute();
+ void help();
private:
- void createTree();
- void printSims();
+ int createTree();
+ void printSims(ostream&);
+ int makeSimsShared();
+ int makeSimsDist();
GlobalData* globaldata;
- SharedUtil* util;
ReadOTUFile* read;
+ ReadMatrix* readMatrix;
+ SparseMatrix* matrix;
+ NameAssignment* nameMap;
+ ListVector* list;
TreeMap* tmap;
Tree* t;
vector<Calculator*> treeCalculators;
map<int, int> index; //maps row in simMatrix to vector index in the tree
InputData* input;
ValidCalculators* validCalculator;
- SharedListVector* SharedList;
- SharedOrderVector* order;
vector<SharedRAbundVector*> lookup;
- string format, outputFile, groupNames;
+ string lastLabel;
+ string format, outputFile, groupNames, filename;
int numGroups;
+ ofstream out;
+ float precision, cutoff;
+
+ bool abort, allLines;
+ set<string> labels; //holds labels to be used
+ string phylipfile, columnfile, namefile, calc, groups, label, outputDir;
+ vector<string> Estimators, Groups, outputNames; //holds estimators to be used
+
+ //if the users enters label "0.06" and there is no "0.06" in their file use the next lowest label.
+ int process(vector<SharedRAbundVector*>);
+
+
};