]> git.donarmstrong.com Git - mothur.git/blob - mgclustercommand.h
added pipeline commands which involved change to command factory and command class...
[mothur.git] / mgclustercommand.h
1 #ifndef MGCLUSTERCOMMAND_H
2 #define MGCLUSTERCOMMAND_H
3
4 /*
5  *  mgclustercommand.h
6  *  Mothur
7  *
8  *  Created by westcott on 12/11/09.
9  *  Copyright 2009 Schloss Lab. All rights reserved.
10  *
11  */
12
13 #include "command.hpp"
14 #include "readblast.h"
15 #include "sparsematrix.hpp"
16 #include "nameassignment.hpp"
17 #include "globaldata.hpp"
18 #include "cluster.hpp"
19 #include "hcluster.h"
20
21 /**********************************************************************/
22
23 class MGClusterCommand : public Command {
24
25 public:
26         MGClusterCommand(string);
27         MGClusterCommand();
28         ~MGClusterCommand();
29         vector<string> getRequiredParameters();
30         vector<string> getValidParameters();
31         vector<string> getRequiredFiles();
32         map<string, vector<string> > getOutputFiles() { return outputTypes; }
33         int execute();
34         void help();
35         
36 private:
37         GlobalData* globaldata;
38         ReadBlast* read;
39         NameAssignment* nameMap;
40         Cluster* cluster;
41         HCluster* hcluster;
42         ListVector* list;
43         ListVector oldList;
44         vector<seqDist> overlapMatrix;
45         vector<string> outputNames;
46         map<string, vector<string> > outputTypes;
47         
48         string blastfile, method, namefile, overlapFile, distFile, outputDir;
49         ofstream sabundFile, rabundFile, listFile;
50         double cutoff;
51         float penalty;
52         int precision, length, precisionLength;
53         bool abort, minWanted, hclusterWanted, merge, hard;
54         
55         void printData(ListVector*);
56         ListVector* mergeOPFs(map<string, int>, float);
57         void sortHclusterFiles(string, string);
58         vector<seqDist> getSeqs(ifstream&);
59
60 };
61
62 /**********************************************************************/
63
64 #endif
65
66
67