]> git.donarmstrong.com Git - mothur.git/blob - screenseqscommand.h
added command descriptions
[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         
22         vector<string> setParameters();
23         string getCommandName()                 { return "screen.seqs";                         }
24         string getCommandCategory()             { return "Sequence Processing";         }
25         string getHelpString(); 
26         string getCitation() { return "http://www.mothur.org/wiki/Screen.seqs"; }
27         string getDescription()         { return "enables you to keep sequences that fulfill certain user defined criteria"; }
28
29         int execute(); 
30         void help() { m->mothurOut(getHelpString()); }  
31         
32         
33 private:
34
35         struct linePair {
36                 unsigned long int start;
37                 unsigned long int end;
38                 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
39         };
40
41         vector<int> processIDS;   //processid
42         vector<linePair*> lines;
43
44         int screenNameGroupFile(set<string>);
45         int screenGroupFile(set<string>);
46         int screenAlignReport(set<string>);
47         int screenQual(set<string>);
48         
49         int driver(linePair*, string, string, string, set<string>&);
50         int createProcesses(string, string, string, set<string>&);
51         
52         #ifdef USE_MPI
53         int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
54         #endif
55
56         bool abort;
57         string fastafile, namefile, groupfile, alignreport, outputDir, qualfile;
58         int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors, criteria;
59         vector<string> outputNames;
60         vector<string> optimize;
61         map<string, int> nameMap;
62         int readNames();
63         
64         int getSummary(vector<unsigned long int>&);
65         int createProcessesCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string);
66         int driverCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, linePair*);       
67 };
68
69 #endif