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