#include "inputdata.h"
#include "rarefact.h"
#include "display.h"
-#include "readotu.h"
#include "validcalculator.h"
-
-/*The rarefaction() command:
- The rarefaction command generates a rarefaction curve from a given file.
- The rarefaction command can only be executed after a successful read.list, read.sabund or read.rabund command, with one exception.
- The rarefaction command can be executed after a successful cluster command. It will use the .list file from the output of the cluster.
- The rarefaction command outputs a file for each estimator you choose to use. It is recommended to only use rarefaction estimator.
- The rarefaction command parameters are label, line, iters, freq, rarefaction. No parameters are required,
- but you may not use both the line and label parameters at the same time. The rarefaction command should be in the following format:
- rarefaction(label=yourLabel, line=yourLines, iters=yourIters, freq=yourFreq, rarefaction=yourEstimators).
- Example rarefaction(label=unique-.01-.03, line=0,5,10, iters=10000, freq=10, rarefaction=rarefaction-rchao-race-rjack-rbootstrap-rshannon-rnpshannon-rsimpson).
- The default values for iters is 1000, freq is 100, and rarefaction is rarefaction which calculates the rarefaction curve for the observed richness.
- The valid rarefaction estimators are: rarefaction-rchao-race-rjack-rbootstrap-rshannon-rnpshannon-rsimpson.
- Rarefaction is the only recommended estimator. The label and line parameters are used to analyze specific lines in your input. */
-
-
-class GlobalData;
-
class RareFactCommand : public Command {
public:
- RareFactCommand(string);
- ~RareFactCommand();
- int execute();
- void help();
+ RareFactCommand(string);
+ RareFactCommand();
+ ~RareFactCommand(){}
+
+ vector<string> setParameters();
+ string getCommandName() { return "rarefaction.single"; }
+ string getCommandCategory() { return "OTU-Based Approaches"; }
+
+ string getHelpString();
+ string getOutputPattern(string);
+ string getCitation() { return "Magurran AE (2004). Measuring biological diversity. Blackwell Pub.: Malden, Ma. \nhttp://www.mothur.org/wiki/Rarefaction.single"; }
+ string getDescription() { return "generate intra-sample rarefaction curves using a re-sampling without replacement approach"; }
+
+ int execute();
+ void help() { m->mothurOut(getHelpString()); }
private:
- GlobalData* globaldata;
+
vector<Display*> rDisplays;
- ReadOTUFile* read;
OrderVector* order;
InputData* input;
- ValidCalculators* validCalculator;
Rarefact* rCurve;
- int freq, nIters, abund;
-
- bool abort, allLines;
- set<int> lines; //hold lines to be used
+ int nIters, abund, processors;
+ float freq;
+
+ bool abort, allLines, groupMode;
set<string> labels; //holds labels to be used
- string line, label, calc;
+ string label, calc, sharedfile, listfile, rabundfile, sabundfile, format, inputfile;
vector<string> Estimators;
-
+ vector<string> inputFileNames, outputNames;
+ vector<string> groups;
+ string outputDir;
+
+ vector<string> parseSharedFile(string, map<string, set<int> >&);
+ vector<string> createGroupFile(vector<string>&, map<int, string>);
};
#endif