]> git.donarmstrong.com Git - mothur.git/blob - screenseqscommand.h
added namefile to align.check and added seqs from namefile to optimizing piece of...
[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         ~ScreenSeqsCommand();
21         vector<string> getRequiredParameters();
22         vector<string> getValidParameters();
23         vector<string> getRequiredFiles();
24         map<string, vector<string> > getOutputFiles() { return outputTypes; }
25         int execute();
26         void help();
27         
28 private:
29
30         struct linePair {
31                 unsigned long int start;
32                 unsigned long int end;
33                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
34         };
35
36         vector<int> processIDS;   //processid
37         vector<linePair*> lines;
38
39         int screenNameGroupFile(set<string>);
40         int screenGroupFile(set<string>);
41         int screenAlignReport(set<string>);
42         
43         int driver(linePair*, string, string, string, set<string>&);
44         int createProcesses(string, string, string, set<string>&);
45         
46         #ifdef USE_MPI
47         int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
48         #endif
49
50         bool abort;
51         string fastafile, namefile, groupfile, alignreport, outputDir;
52         int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors, criteria;
53         vector<string> outputNames;
54         vector<string> optimize;
55         map<string, vector<string> > outputTypes;
56         map<string, int> nameMap;
57         int readNames();
58         
59         int getSummary(vector<unsigned long int>&);
60         int createProcessesCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string);
61         int driverCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, linePair*);       
62 };
63
64 #endif