]> git.donarmstrong.com Git - mothur.git/blob - filterseqscommand.h
75e7895c6ef2d4a532dfae9d37ea4fc035243b75
[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         \r
24         vector<string> setParameters();\r
25         string getCommandName()                 { return "filter.seqs";                 }\r
26         string getCommandCategory()             { return "Sequence Processing"; }\r
27         string getHelpString(); \r
28         \r
29         int execute(); \r
30         void help() { m->mothurOut(getHelpString()); }  \r
31         \r
32 private:\r
33         struct linePair {\r
34                 unsigned long int start;\r
35                 unsigned long int end;\r
36                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}\r
37         };\r
38 \r
39         vector<linePair*> lines;\r
40         vector<int> processIDS;\r
41 \r
42         string vertical, filter, fasta, hard, outputDir, filterFileName;\r
43         vector<string> fastafileNames;  \r
44         int alignmentLength, processors;\r
45         vector<int> bufferSizes;\r
46         vector<string> outputNames;\r
47 \r
48         char trump;\r
49         bool abort;\r
50         float soft;\r
51         int numSeqs;\r
52         \r
53         string createFilter();\r
54         int filterSequences();\r
55         int createProcessesCreateFilter(Filters&, string);\r
56         int createProcessesRunFilter(string, string);\r
57         int driverRunFilter(string, string, string, linePair*);\r
58         int driverCreateFilter(Filters& F, string filename, linePair* line);\r
59         #ifdef USE_MPI\r
60         int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<unsigned long int>&);\r
61         int MPICreateFilter(int, int, Filters&, MPI_File&, vector<unsigned long int>&); \r
62         #endif\r
63         \r
64 };\r
65 \r
66 #endif\r