]> git.donarmstrong.com Git - mothur.git/blob - filterseqscommand.h
changed how we break up the files on parallelized commands to avoid scanning file.
[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         int execute();  \r
23         void help();\r
24         \r
25 private:\r
26         struct linePair {\r
27                 unsigned long int start;\r
28                 unsigned long int end;\r
29                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}\r
30         };\r
31 \r
32         vector<linePair*> lines;\r
33         vector<int> processIDS;\r
34 \r
35         string vertical, filter, fasta, hard, outputDir, filterFileName;\r
36         vector<string> fastafileNames;  \r
37         int alignmentLength, processors;\r
38         vector<int> bufferSizes;\r
39         vector<string> outputNames;\r
40 \r
41         char trump;\r
42         bool abort;\r
43         float soft;\r
44         int numSeqs;\r
45         \r
46         string createFilter();\r
47         int filterSequences();\r
48         int createProcessesCreateFilter(Filters&, string);\r
49         int createProcessesRunFilter(string, string);\r
50         int driverRunFilter(string, string, string, linePair*);\r
51         int driverCreateFilter(Filters& F, string filename, linePair* line);\r
52         #ifdef USE_MPI\r
53         int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<unsigned long int>&);\r
54         int MPICreateFilter(int, int, Filters&, MPI_File&, vector<unsigned long int>&); \r
55         #endif\r
56         \r
57 };\r
58 \r
59 #endif\r