]> git.donarmstrong.com Git - mothur.git/blob - filterseqscommand.h
c670f37919e7da8ce3e3f3ee5d294cd4d23acd94
[mothur.git] / filterseqscommand.h
1 #ifndef FILTERSEQSCOMMAND_H\r
2 #define FILTERSEQSCOMMAND_H\r
3 \r
4 /*\r
5  *  filterseqscommand.h\r
6  *  Mothur\r
7  *\r
8  *  Created by Thomas Ryabin on 5/4/09.\r
9  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.\r
10  *\r
11  */\r
12 \r
13 #include "command.hpp"\r
14 #include "filters.h"\r
15 \r
16 class Sequence;\r
17 class FilterSeqsCommand : public Command {\r
18 \r
19 public:\r
20         FilterSeqsCommand(string);\r
21         FilterSeqsCommand();\r
22         ~FilterSeqsCommand() {};\r
23         vector<string> getRequiredParameters();\r
24         vector<string> getValidParameters();\r
25         vector<string> getRequiredFiles();\r
26         map<string, vector<string> > getOutputFiles() { return outputTypes; }\r
27         int execute();  \r
28         void help();\r
29         \r
30 private:\r
31         struct linePair {\r
32                 unsigned long int start;\r
33                 unsigned long int end;\r
34                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}\r
35         };\r
36 \r
37         vector<linePair*> lines;\r
38         vector<int> processIDS;\r
39 \r
40         string vertical, filter, fasta, hard, outputDir, filterFileName;\r
41         vector<string> fastafileNames;  \r
42         int alignmentLength, processors;\r
43         vector<int> bufferSizes;\r
44         vector<string> outputNames;\r
45         map<string, vector<string> > outputTypes;\r
46 \r
47         char trump;\r
48         bool abort;\r
49         float soft;\r
50         int numSeqs;\r
51         \r
52         string createFilter();\r
53         int filterSequences();\r
54         int createProcessesCreateFilter(Filters&, string);\r
55         int createProcessesRunFilter(string, string);\r
56         int driverRunFilter(string, string, string, linePair*);\r
57         int driverCreateFilter(Filters& F, string filename, linePair* line);\r
58         #ifdef USE_MPI\r
59         int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<unsigned long int>&);\r
60         int MPICreateFilter(int, int, Filters&, MPI_File&, vector<unsigned long int>&); \r
61         #endif\r
62         \r
63 };\r
64 \r
65 #endif\r