X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=trimseqscommand.h;h=20b11a85ac05e57b453906475d73ab4fd2ecb2e0;hb=8bc3e5b38c2317a1715f53be22fa96455868c281;hp=9b02be9ef5ec0f5a50d0563ab87a7f7d053bdadc;hpb=315e38cf393c82be238da5b32574f225a020d25c;p=mothur.git diff --git a/trimseqscommand.h b/trimseqscommand.h index 9b02be9..20b11a8 100644 --- a/trimseqscommand.h +++ b/trimseqscommand.h @@ -13,34 +13,61 @@ #include "mothur.h" #include "command.hpp" #include "sequence.hpp" +#include "qualityscores.h" class TrimSeqsCommand : public Command { public: TrimSeqsCommand(string); + TrimSeqsCommand(); ~TrimSeqsCommand(); + vector getRequiredParameters(); + vector getValidParameters(); + vector getRequiredFiles(); + map > getOutputFiles() { return outputTypes; } int execute(); void help(); private: - void getOligos(vector&); - bool stripQualThreshold(Sequence&, ifstream&); - bool cullQualAverage(Sequence&, ifstream&); - bool stripBarcode(Sequence&, int&); - bool stripForward(Sequence&); - bool stripReverse(Sequence&); + + struct linePair { + unsigned long int start; + unsigned long int end; + linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {} + }; + + void getOligos(vector&, vector&); + int stripBarcode(Sequence&, QualityScores&, int&); + int stripForward(Sequence&, QualityScores&, int&); + bool stripReverse(Sequence&, QualityScores&); bool cullLength(Sequence&); bool cullHomoP(Sequence&); bool cullAmbigs(Sequence&); bool compareDNASeq(string, string); + int countDiffs(string, string); + map > outputTypes; bool abort; string fastaFile, oligoFile, qFileName, outputDir; bool flip, allFiles, qtrim; - int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage; - vector forPrimer, revPrimer; + int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, processors, tdiffs, bdiffs, pdiffs, comboStarts; + int qWindowSize, qWindowStep; + double qRollAverage, qThreshold, qWindowAverage, qAverage; + vector revPrimer, outputNames; + set filesToRemove; map barcodes; vector groupVector; + map primers; + map combos; + + vector processIDS; //processid + vector lines; + vector qLines; + + int driverCreateTrim(string, string, string, string, string, string, string, vector, vector, linePair*, linePair*); + int createProcessesCreateTrim(string, string, string, string, string, string, string, vector, vector); + int setLines(string, string, vector&, vector&); + }; #endif