-#ifndef FILTERSEQSCOMMAND_H
-#define FILTERSEQSCOMMAND_H
-
-/*
- * filterseqscommand.h
- * Mothur
- *
- * Created by Thomas Ryabin on 5/4/09.
- * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
- *
- */
-
-#include "command.hpp"
-#include "globaldata.hpp"
-#include "sequence.hpp"
-
-class FilterSeqsCommand : public Command {
-
-public:
- FilterSeqsCommand(string);
- ~FilterSeqsCommand() {};
- int execute();
- void help();
-
-private:
- void doHard();
- void doTrump(Sequence);
- void doVertical();
- void doSoft();
- void getFreqs(Sequence);
- string vertical, filter, fastafile, hard;
- int alignmentLength;
-
- char trump;
- bool abort;
- float soft;
- int numSeqs;
- OptionParser* parser;
- map<string, string> parameters;
- map<string, string>::iterator it;
-
- GlobalData* globaldata;
- vector<int> a, t, g, c, gap;
-
-};
-
-#endif
+#ifndef FILTERSEQSCOMMAND_H\r
+#define FILTERSEQSCOMMAND_H\r
+\r
+/*\r
+ * filterseqscommand.h\r
+ * Mothur\r
+ *\r
+ * Created by Thomas Ryabin on 5/4/09.\r
+ * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.\r
+ *\r
+ */\r
+\r
+#include "command.hpp"\r
+#include "filters.h"\r
+\r
+class Sequence;\r
+class FilterSeqsCommand : public Command {\r
+\r
+public:\r
+ FilterSeqsCommand(string);\r
+ FilterSeqsCommand();\r
+ ~FilterSeqsCommand() {};\r
+ vector<string> getRequiredParameters();\r
+ vector<string> getValidParameters();\r
+ vector<string> getRequiredFiles();\r
+ map<string, vector<string> > getOutputFiles() { return outputTypes; }\r
+ int execute(); \r
+ void help();\r
+ \r
+private:\r
+ struct linePair {\r
+ unsigned long int start;\r
+ unsigned long int end;\r
+ linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}\r
+ };\r
+\r
+ vector<linePair*> lines;\r
+ vector<int> processIDS;\r
+\r
+ string vertical, filter, fasta, hard, outputDir, filterFileName;\r
+ vector<string> fastafileNames; \r
+ int alignmentLength, processors;\r
+ vector<int> bufferSizes;\r
+ vector<string> outputNames;\r
+ map<string, vector<string> > outputTypes;\r
+\r
+ char trump;\r
+ bool abort;\r
+ float soft;\r
+ int numSeqs;\r
+ \r
+ string createFilter();\r
+ int filterSequences();\r
+ int createProcessesCreateFilter(Filters&, string);\r
+ int createProcessesRunFilter(string, string);\r
+ int driverRunFilter(string, string, string, linePair*);\r
+ int driverCreateFilter(Filters& F, string filename, linePair* line);\r
+ #ifdef USE_MPI\r
+ int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<unsigned long int>&);\r
+ int MPICreateFilter(int, int, Filters&, MPI_File&, vector<unsigned long int>&); \r
+ #endif\r
+ \r
+};\r
+\r
+#endif\r