X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=screenseqscommand.h;h=81b915efcbf97e4b91bfca3bf27353da8f9ea8e9;hb=8bc3e5b38c2317a1715f53be22fa96455868c281;hp=f88fe2c442cf1d8ea6b0457a45390383c0c45698;hpb=dc874a77f24b3808775e2ce7e39595c647a07f82;p=mothur.git diff --git a/screenseqscommand.h b/screenseqscommand.h index f88fe2c..81b915e 100644 --- a/screenseqscommand.h +++ b/screenseqscommand.h @@ -11,27 +11,52 @@ */ #include "mothur.h" #include "command.hpp" -#include "globaldata.hpp" -#include "readfasta.h" -#include "readnexus.h" -#include "readclustal.h" -#include "readseqsphylip.h" -#include - -using namespace std; class ScreenSeqsCommand : public Command { public: + ScreenSeqsCommand(string); ScreenSeqsCommand(); ~ScreenSeqsCommand(); + vector getRequiredParameters(); + vector getValidParameters(); + vector getRequiredFiles(); + map > getOutputFiles() { return outputTypes; } int execute(); + void help(); + private: - void screenNameGroupFile(set); - int numSeqs; - GlobalData* globaldata; - ReadSeqs* readSeqs; - SequenceDB* db; + + struct linePair { + unsigned long int start; + unsigned long int end; + linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {} + }; + + vector processIDS; //processid + vector lines; + + int screenNameGroupFile(set); + int screenGroupFile(set); + int screenAlignReport(set); + + int driver(linePair*, string, string, string, set&); + int createProcesses(string, string, string, set&); + + #ifdef USE_MPI + int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector&, set&); + #endif + + bool abort; + string fastafile, namefile, groupfile, alignreport, outputDir; + int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors, criteria; + vector outputNames; + vector optimize; + map > outputTypes; + + int getSummary(vector&); + int createProcessesCreateSummary(vector&, vector&, vector&, vector&, vector&, string); + int driverCreateSummary(vector&, vector&, vector&, vector&, vector&, string, linePair*); }; #endif