-#ifndef PCACOMMAND_H
-#define PCACOMMAND_H
+#ifndef PCOACOMMAND_H
+#define PCOACOMMAND_H
/*
- * pcacommand.h
+ * pcoacommand.h
* Mothur
*
* Created by westcott on 1/4/10.
*/
#include "command.hpp"
+#include "linearalgebra.h"
/*****************************************************************/
-class PCACommand : public Command {
+class PCOACommand : public Command {
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();
+ PCOACommand(string);
+ PCOACommand();
+ ~PCOACommand(){}
+
+ vector<string> setParameters();
+ string getCommandName() { return "pcoa"; }
+ string getCommandCategory() { return "Hypothesis Testing"; }
+ string getHelpString();
+ string getCitation() { return "McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Pcoa"; }
+
+ int execute();
+ void help() { m->mothurOut(getHelpString()); }
private:
- bool abort;
- string phylipfile, columnfile, namefile, format, filename, fbase, outputDir;
- float cutoff, precision;
+ bool abort, metric;
+ string phylipfile, filename, fbase, outputDir;
vector<string> outputNames;
- map<string, vector<string> > outputTypes;
+ LinearAlgebra linearCalc;
void get_comment(istream&, char, char);
- int read_phylip(istream&, int, vector<string>&, vector<vector<double> >&);
- void read(string, 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 output(string, vector<string>, vector<vector<double> >&, vector<double>);
};