]> git.donarmstrong.com Git - mothur.git/blobdiff - filterseqscommand.h
added MPI code, broke up chimera.seqs into 5 separated commands, added parse.sff...
[mothur.git] / filterseqscommand.h
index 17f1b3387ee1279a3b44e6ef3d34b732fc88834d..3c46036468401352987fb9d6cb61b48447613dab 100644 (file)
  */
 
 #include "command.hpp"
-#include "globaldata.hpp"
-#include "sequence.hpp"
+#include "filters.h"
+#include "mpi.h"
 
+class Sequence;
 class FilterSeqsCommand : public Command {
 
 public:
-       FilterSeqsCommand();
+       FilterSeqsCommand(string);
        ~FilterSeqsCommand() {};
        int execute();  
+       void help();
        
 private:
-       void doHard();
-       void doTrump(Sequence);
-       void doVertical();
-       void doSoft();
-       void getFreqs(Sequence);
-       string filter;  
-       int alignmentLength;
+       struct linePair {
+               int start;
+               int num;
+               linePair(long int i, long int j) : start(i), num(j) {}
+       };
+       vector<linePair*> lines;
+       vector<int> processIDS;
+
+       string vertical, filter, fasta, hard, outputDir, filterFileName;
+       vector<string> fastafileNames;  
+       int alignmentLength, processors;
+       vector<int> bufferSizes;
+       vector<string> outputNames;
 
        char trump;
-       bool vertical;
+       bool abort;
        float soft;
        int numSeqs;
        
-       GlobalData* globaldata; 
-       vector<int> a, t, g, c, gap;
-
+       string createFilter();
+       int filterSequences();
+       int createProcessesCreateFilter(Filters&, string);
+       int createProcessesRunFilter(string, string);
+       int driverRunFilter(string, string, string, linePair*);
+       int driverCreateFilter(Filters& F, string filename, linePair* line);
+       #ifdef USE_MPI
+       int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<long>&);
+       int MPICreateFilter(int, int, Filters&, MPI_File&, vector<long>&);      
+       #endif
+       int setLines(string);
+       
+       
 };
 
 #endif