]> git.donarmstrong.com Git - mothur.git/blobdiff - screenseqscommand.h
added pipeline commands which involved change to command factory and command class...
[mothur.git] / screenseqscommand.h
index f88fe2c442cf1d8ea6b0457a45390383c0c45698..81b915efcbf97e4b91bfca3bf27353da8f9ea8e9 100644 (file)
  */
 #include "mothur.h"
 #include "command.hpp"
-#include "globaldata.hpp"
-#include "readfasta.h"
-#include "readnexus.h"
-#include "readclustal.h"
-#include "readseqsphylip.h"
-#include <set>
-
-using namespace std;
 
 class ScreenSeqsCommand : public Command {
        
 public:
+       ScreenSeqsCommand(string);
        ScreenSeqsCommand();
        ~ScreenSeqsCommand();
+       vector<string> getRequiredParameters();
+       vector<string> getValidParameters();
+       vector<string> getRequiredFiles();
+       map<string, vector<string> > getOutputFiles() { return outputTypes; }
        int execute();
+       void help();
+       
 private:
-       void screenNameGroupFile(set<string>);
-       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<int> processIDS;   //processid
+       vector<linePair*> lines;
+
+       int screenNameGroupFile(set<string>);
+       int screenGroupFile(set<string>);
+       int screenAlignReport(set<string>);
+       
+       int driver(linePair*, string, string, string, set<string>&);
+       int createProcesses(string, string, string, set<string>&);
+       
+       #ifdef USE_MPI
+       int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
+       #endif
+
+       bool abort;
+       string fastafile, namefile, groupfile, alignreport, outputDir;
+       int startPos, endPos, maxAmbig, maxHomoP, minLength, maxLength, processors, criteria;
+       vector<string> outputNames;
+       vector<string> optimize;
+       map<string, vector<string> > outputTypes;
+       
+       int getSummary(vector<unsigned long int>&);
+       int createProcessesCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string);
+       int driverCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, linePair*);       
 };
 
 #endif