X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=trimseqscommand.h;h=137cb735719fba42f0d103af842de80c9930cc3e;hb=2bb9267aa4b4ecdf8488b06605cc9f3f36fa4332;hp=11778fb9583f5af72b7def6c5ce421d59802dde5;hpb=c9c6df74a855bc1fcecb93cf56eb09d0907e7cf2;p=mothur.git diff --git a/trimseqscommand.h b/trimseqscommand.h index 11778fb..137cb73 100644 --- a/trimseqscommand.h +++ b/trimseqscommand.h @@ -13,50 +13,68 @@ #include "mothur.h" #include "command.hpp" #include "sequence.hpp" +#include "qualityscores.h" +#include "groupmap.h" class TrimSeqsCommand : public Command { public: TrimSeqsCommand(string); - ~TrimSeqsCommand(); - int execute(); - void help(); + TrimSeqsCommand(); + ~TrimSeqsCommand(){} -private: + vector setParameters(); + string getCommandName() { return "trim.seqs"; } + string getCommandCategory() { return "Sequence Processing"; } + string getHelpString(); + string getCitation() { return "http://www.mothur.org/wiki/Trim.seqs"; } + string getDescription() { return "provides the preprocessing features needed to screen and sort pyrosequences"; } + int execute(); + void help() { m->mothurOut(getHelpString()); } + +private: + + GroupMap* groupMap; + struct linePair { - int start; - int num; - linePair(long int i, int j) : start(i), num(j) {} + unsigned long long start; + unsigned long long end; + linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {} }; - - void getOligos(vector&); - bool stripQualThreshold(Sequence&, ifstream&); - bool cullQualAverage(Sequence&, ifstream&); - bool stripBarcode(Sequence&, int&); - bool stripForward(Sequence&); - bool stripReverse(Sequence&); + + bool getOligos(vector >&, vector >&, vector >&); + bool keepFirstTrim(Sequence&, QualityScores&); + bool removeLastTrim(Sequence&, QualityScores&); bool cullLength(Sequence&); bool cullHomoP(Sequence&); bool cullAmbigs(Sequence&); - bool compareDNASeq(string, string); - bool abort; - string fastaFile, oligoFile, qFileName, outputDir; + bool abort, createGroup; + string fastaFile, oligoFile, qFileName, groupfile, nameFile, outputDir; bool flip, allFiles, qtrim; - int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage, processors; - vector forPrimer, revPrimer, outputNames; + int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, processors, tdiffs, bdiffs, pdiffs, comboStarts; + int qWindowSize, qWindowStep, keepFirst, removeLast; + double qRollAverage, qThreshold, qWindowAverage, qAverage; + vector revPrimer, outputNames; + set filesToRemove; map barcodes; vector groupVector; - + map primers; + map combos; + map groupToIndex; + vector primerNameVector; //needed here? + vector barcodeNameVector; //needed here? + map groupCounts; + map nameMap; + vector processIDS; //processid vector lines; vector qLines; - int driverCreateTrim(string, string, string, string, string, vector, linePair*, linePair*); - int createProcessesCreateTrim(string, string, string, string, string, vector); - int setLines(string, vector&); - + int driverCreateTrim(string, string, string, string, string, string, string, string, string, vector >, vector >, vector >, linePair*, linePair*); + int createProcessesCreateTrim(string, string, string, string, string, string, string, string, string, vector >, vector >, vector >); + int setLines(string, string, vector&, vector&); }; #endif