]> git.donarmstrong.com Git - mothur.git/blob - subsamplecommand.h
parsimony calculator changed order of groups to reflect change in shared Utils made...
[mothur.git] / subsamplecommand.h
1 #ifndef SUBSAMPLECOMMAND_H
2 #define SUBSAMPLECOMMAND_H
3
4 /*
5  *  subsamplecommand.h
6  *  Mothur
7  *
8  *  Created by westcott on 10/27/10.
9  *  Copyright 2010 Schloss Lab. All rights reserved.
10  *
11  */
12  
13 #include "command.hpp"
14 #include "globaldata.hpp"
15 #include "sharedrabundvector.h"
16 #include "listvector.hpp"
17 #include "rabundvector.hpp"
18 #include "inputdata.h"
19
20
21 class SubSampleCommand : public Command {
22
23 public:
24         SubSampleCommand(string);
25         SubSampleCommand();
26         ~SubSampleCommand();
27         vector<string> getRequiredParameters();
28         vector<string> getValidParameters();
29         vector<string> getRequiredFiles();
30         map<string, vector<string> > getOutputFiles() { return outputTypes; }
31         int execute();
32         void help();
33         
34 private:
35         
36         struct nameToBin {
37                 string name;
38                 int bin;
39                 
40                 nameToBin(string n, int b) : name(n), bin(b) {}
41         };
42         
43         GlobalData* globaldata;
44         
45         bool abort, pickedGroups, allLines;
46         string listfile, groupfile, sharedfile, rabundfile, sabundfile, fastafile, namefile;
47         set<string> labels; //holds labels to be used
48         string groups, label, outputDir;
49         vector<string> Groups, outputNames;
50         map<string, vector<string> > outputTypes;
51         int size;
52         
53         int eliminateZeroOTUS(vector<SharedRAbundVector*>&);
54         int getSubSampleShared();
55         int getSubSampleList();
56         int processShared(vector<SharedRAbundVector*>&, ofstream&);
57         int processListGroup(ListVector*&, GroupMap*&, ofstream&, ofstream&);
58         
59 };
60
61 #endif
62