1 #ifndef GETSHAREDOTUCOMMAND_H
2 #define GETSHAREDOTUCOMMAND_H
3 
4 /*
5  *  getsharedotucommand.h
6  *  Mothur
7  *
8  *  Created by westcott on 9/22/09.
9  *  Copyright 2009 Schloss Lab. All rights reserved.
10  *
11  */
12 
13 #include "command.hpp"
14 #include "listvector.hpp"
15 #include "sequence.hpp"
16 #include "groupmap.h"
17 #include "counttable.h"
18 
19 #include "inputdata.h"
20 
21 //**********************************************************************************************************************
22 class GetSharedOTUCommand : public Command {
23 
24 	public:
25 
26 		GetSharedOTUCommand(string);
~GetSharedOTUCommand()27 		~GetSharedOTUCommand() {}
28 
29 		vector<string> setParameters();
getCommandName()30 		string getCommandName()			{ return "get.sharedseqs";			}
getCommandCategory()31 		string getCommandCategory()		{ return "OTU-Based Approaches";	}
getRequiredCommand()32 		string getRequiredCommand()		{ return "none";					}
33 
34 	string getHelpString();
35     string getOutputPattern(string);
getCitation()36 		string getCitation() { return "http://www.mothur.org/wiki/Get.sharedseqs"; }
getDescription()37 		string getDescription()		{ return "identifies sequences that are either unique or shared by specific groups"; }
38 
39 		int execute();
help()40 		void help() { m->mothurOut(getHelpString()); }
41 
42 
43 
44 	private:
45 		ListVector* list;
46         GroupMap* groupMap;
47         CountTable* ct;
48 
49 		set<string> labels;
50 		string fastafile, label, groups, listfile, groupfile, sharedfile, output, userGroups,  format, countfile;
51 		bool abort, allLines, unique;
52 		vector<string> Groups;
53 		map<string, string> groupFinder;
54 		map<string, string>::iterator it;
55 		vector<Sequence> seqs;
56 		vector<string> outputNames;
57 
58 		int process(ListVector*);
59         int process(SharedRAbundVectors*&);
60         int runShared();
61 
62 };
63 //**********************************************************************************************************************
64 
65 #endif
66 
67