1 #ifndef SCREENSEQSCOMMAND_H
2 #define SCREENSEQSCOMMAND_H
8 * Created by Pat Schloss on 6/3/09.
9 * Copyright 2009 Patrick D. Schloss. All rights reserved.
13 #include "command.hpp"
15 class ScreenSeqsCommand : public Command {
18 ScreenSeqsCommand(string);
20 ~ScreenSeqsCommand() {}
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"; }
30 void help() { m->mothurOut(getHelpString()); }
36 unsigned long long start;
37 unsigned long long end;
38 linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {}
41 vector<int> processIDS; //processid
42 vector<linePair*> lines;
44 int screenNameGroupFile(set<string>);
45 int screenGroupFile(set<string>);
46 int screenAlignReport(set<string>);
47 int screenQual(set<string>);
48 int screenTaxonomy(set<string>);
50 int driver(linePair*, string, string, string, set<string>&);
51 int createProcesses(string, string, string, set<string>&);
54 int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long long>&, set<string>&);
58 string fastafile, namefile, groupfile, alignreport, outputDir, qualfile, taxonomy;
59 int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors, criteria;
60 vector<string> outputNames;
61 vector<string> optimize;
62 map<string, int> nameMap;
65 int getSummary(vector<unsigned long long>&);
66 int createProcessesCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string);
67 int driverCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, linePair*);