]> git.donarmstrong.com Git - mothur.git/blob - screenseqscommand.h
changed how we break up the files on parallelized commands to avoid scanning file.
[mothur.git] / screenseqscommand.h
1 #ifndef SCREENSEQSCOMMAND_H
2 #define SCREENSEQSCOMMAND_H
3
4 /*
5  *  screenseqscommand.h
6  *  Mothur
7  *
8  *  Created by Pat Schloss on 6/3/09.
9  *  Copyright 2009 Patrick D. Schloss. All rights reserved.
10  *
11  */
12 #include "mothur.h"
13 #include "command.hpp"
14
15 class ScreenSeqsCommand : public Command {
16         
17 public:
18         ScreenSeqsCommand(string);
19         ~ScreenSeqsCommand();
20         int execute();
21         void help();
22         
23 private:
24
25         struct linePair {
26                 unsigned long int start;
27                 unsigned long int end;
28                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
29         };
30
31         vector<int> processIDS;   //processid
32         vector<linePair*> lines;
33
34         int screenNameGroupFile(set<string>);
35         int screenGroupFile(set<string>);
36         int screenAlignReport(set<string>);
37         
38         int driver(linePair*, string, string, string, string, set<string>&);
39         int createProcesses(string, string, string, string, set<string>&);
40         
41         #ifdef USE_MPI
42         int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
43         #endif
44
45         bool abort;
46         string fastafile, namefile, groupfile, alignreport, outputDir;
47         int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors;
48         vector<string> outputNames;
49 };
50
51 #endif