X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=filterseqscommand.h;h=e068405816e3d8c0bc1e21b2fb8316f779009526;hb=11c115c802602be50e106aae56969e15d2c49a62;hp=af4c03a950a0f42ad4fd9d7453ad698423381bd0;hpb=5b7ac70116137b52dd7884b76c5bca660a5fea38;p=mothur.git diff --git a/filterseqscommand.h b/filterseqscommand.h index af4c03a..e068405 100644 --- a/filterseqscommand.h +++ b/filterseqscommand.h @@ -1,47 +1,60 @@ -#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 "mothur.h" -#include "globaldata.hpp" -#include "readfasta.h" -#include "readnexus.h" -#include "readclustal.h" -#include "readseqsphylip.h" - -using namespace std; - -class FilterSeqsCommand : public Command { - -public: - FilterSeqsCommand(); - ~FilterSeqsCommand() {}; - int execute(); - -private: - void doTrump(); - void doSoft(); - void doHard(); - void doVertical(); - - int alignmentLength; - int numSeqs; - - GlobalData* globaldata; - ReadSeqs* readSeqs; - SequenceDB* db; - - string filter; - -}; - -#endif +#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 "filters.h" + +class Sequence; +class FilterSeqsCommand : public Command { + +public: + FilterSeqsCommand(string); + ~FilterSeqsCommand() {}; + int execute(); + void help(); + +private: + struct linePair { + unsigned long int start; + int num; + linePair(unsigned long int i, long int j) : start(i), num(j) {} + }; + vector lines; + vector processIDS; + + string vertical, filter, fasta, hard, outputDir, filterFileName; + vector fastafileNames; + int alignmentLength, processors; + vector bufferSizes; + vector outputNames; + + char trump; + bool abort; + float soft; + int numSeqs; + + 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&); + int MPICreateFilter(int, int, Filters&, MPI_File&, vector&); + #endif + int setLines(string); + + +}; + +#endif