X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=filterseqscommand.h;h=3bf36c040231c5f801281f9d553c60bed01101c8;hb=8dd3c225255d7084e3aff8740aa4f1f1cabb367a;hp=1d2526fdca83114dcca76217917324d134bcc391;hpb=aba5f8811829037b0a3004ef33f0ad4ed5e5fcf8;p=mothur.git diff --git a/filterseqscommand.h b/filterseqscommand.h index 1d2526f..3bf36c0 100644 --- a/filterseqscommand.h +++ b/filterseqscommand.h @@ -1,59 +1,68 @@ -#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" -#include "mpi.h" - -class Sequence; -class FilterSeqsCommand : public Command { - -public: - FilterSeqsCommand(string); - ~FilterSeqsCommand() {}; - int execute(); - void help(); - -private: - struct linePair { - int start; - int num; - linePair(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 driverCreateFilter(Filters&, string, linePair*); - int driverRunFilter(string, string, string, linePair*); - int driverMPIRun(istringstream&, MPI_File&); - int MPICreateFilter(Filters&, string); - int setLines(string); - int parseBuffer(string, vector&); - -}; - -#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(); + ~FilterSeqsCommand() {}; + + vector setParameters(); + string getCommandName() { return "filter.seqs"; } + string getCommandCategory() { return "Sequence Processing"; } + string getHelpString(); + string getCitation() { return "http://www.mothur.org/wiki/Filter.seqs"; } + string getDescription() { return "removes columns from alignments based on a criteria defined by the user"; } + + int execute(); + void help() { m->mothurOut(getHelpString()); } + +private: + struct linePair { + unsigned long long start; + unsigned long long end; + linePair(unsigned long long i, unsigned long long j) : start(i), end(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 + +}; + +#endif