/*
* pcacommand.h
- * Mothur
+ * mothur
*
- * Created by westcott on 1/4/10.
- * Copyright 2010 Schloss Lab. All rights reserved.
+ * Created by westcott on 1/7/11.
+ * Copyright 2011 Schloss Lab. All rights reserved.
*
*/
-
+
#include "command.hpp"
+#include "linearalgebra.h"
+#include "globaldata.hpp"
/*****************************************************************/
public:
PCACommand(string);
+ PCACommand();
~PCACommand();
+ vector<string> getRequiredParameters();
+ vector<string> getValidParameters();
+ vector<string> getRequiredFiles();
+ map<string, vector<string> > getOutputFiles() { return outputTypes; }
int execute();
void help();
private:
-
- bool abort;
- string phylipfile, columnfile, namefile, format, filename, fbase;
- float cutoff, precision;
- int matrix;
+ GlobalData* globaldata;
- void get_comment(istream&, char, char);
- void read_mega(istream&, int, vector<string>&, vector<vector<double> >&);
- void read_phylip(istream&, int, vector<string>&, vector<vector<double> >&);
- void read(string, int, vector<string>&, vector<vector<double> >&);
- double pythag(double, double);
- void matrix_mult(vector<vector<double> >, vector<vector<double> >, vector<vector<double> >&);
- void recenter(double, vector<vector<double> >, vector<vector<double> >&);
- void tred2(vector<vector<double> >&, vector<double>&, vector<double>&);
- void qtli(vector<double>&, vector<double>&, vector<vector<double> >&);
- void output(string, vector<string>, vector<vector<double> >, vector<double>);
- void print_matrix(vector<vector<double> >);
+ bool abort, metric;
+ string outputDir, mode, inputFile, label, groups;
+ vector<string> outputNames, Groups;
+ set<string> labels;
+ map<string, vector<string> > outputTypes;
+ LinearAlgebra linearCalc;
-};
+ vector< vector<double> > createMatrix(vector<SharedRAbundFloatVector*>);
+ int process(vector<SharedRAbundFloatVector*>&);
+ void output(string, vector<string>, vector<vector<double> >&, vector<double>);
+};
+
/*****************************************************************/
-
+
#endif
+