*/
#include "command.hpp"
-#include "mothur.h"
-#include "globaldata.hpp"
-#include "readfasta.h"
-#include "readnexus.h"
-#include "readclustal.h"
-#include "readseqsphylip.h"
-
-using namespace std;
+#include "filters.h"
+#include "mpi.h"
+class Sequence;
class FilterSeqsCommand : public Command {
public:
- FilterSeqsCommand() {};
+ FilterSeqsCommand(string);
~FilterSeqsCommand() {};
int execute();
+ void help();
private:
- void doTrump();
- void doSoft();
- void doFilter();
-
- GlobalData* globaldata;
- string filename, trump, filter;
+ struct linePair {
+ int start;
+ int numSeqs;
+ linePair(long int i, int j) : start(i), numSeqs(j) {}
+ };
+ vector<linePair*> lines;
+
+
+ string vertical, filter, fasta, hard, outputDir, filterFileName;
+ vector<string> fastafileNames;
+ int alignmentLength, processors;
+ vector<int> bufferSizes;
+
+ char trump;
+ bool abort;
+ float soft;
+ int numSeqs;
- ReadFasta* readFasta;
- ReadNexus* readNexus;
- ReadClustal* readClustal;
- ReadPhylip* readPhylip;
+ string createFilter();
+ int createProcessesCreateFilter(Filters&, string);
+ int driverCreateFilter(Filters&, string, linePair*);
+ int MPICreateFilter(Filters&, string);
+ int setLines(string);
+ int parseBuffer(string, vector<string>&);
- vector<bool> columnsToRemove;
- SequenceDB* db;
- double soft;
};
-#endif
\ No newline at end of file
+#endif