]> git.donarmstrong.com Git - mothur.git/blobdiff - trimseqscommand.h
more changes to error.seqs command and quality scores classses
[mothur.git] / trimseqscommand.h
index 93e8c776918ec9fa2d6f661d7c178380a4f47d66..21a5d41e759c761a3302340319c857544ffc313e 100644 (file)
 #include "command.hpp"
 #include "sequence.hpp"
 #include "qualityscores.h"
+#include "groupmap.h"
 
 class TrimSeqsCommand : public Command {
 public:
        TrimSeqsCommand(string);
+       TrimSeqsCommand();
        ~TrimSeqsCommand();
+       vector<string> getRequiredParameters();
+       vector<string> getValidParameters();
+       vector<string> getRequiredFiles();
+       map<string, vector<string> > getOutputFiles() { return outputTypes; }
        int execute();
        void help();
        
 private:
-
+       
+       GroupMap* groupMap;
+       
        struct linePair {
                unsigned long int start;
                unsigned long int end;
@@ -34,18 +42,22 @@ private:
        int stripBarcode(Sequence&, QualityScores&, int&);
        int stripForward(Sequence&, QualityScores&, int&);
        bool stripReverse(Sequence&, QualityScores&);
+       bool keepFirstTrim(Sequence&, QualityScores&);
+       bool removeLastTrim(Sequence&, QualityScores&);
+
        bool cullLength(Sequence&);
        bool cullHomoP(Sequence&);
        bool cullAmbigs(Sequence&);
        bool compareDNASeq(string, string);
        int countDiffs(string, string);
+       map<string, vector<string> > outputTypes;
 
        bool abort;
-       string fastaFile, oligoFile, qFileName, outputDir;
+       string fastaFile, oligoFile, qFileName, groupfile, outputDir;
        
        bool flip, allFiles, qtrim;
        int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, processors, tdiffs, bdiffs, pdiffs, comboStarts;
-       int qWindowSize, qWindowStep;
+       int qWindowSize, qWindowStep, keepFirst, removeLast;
        double qRollAverage, qThreshold, qWindowAverage, qAverage;
        vector<string> revPrimer, outputNames;
        set<string> filesToRemove;
@@ -53,6 +65,7 @@ private:
        vector<string> groupVector;
        map<string, int> primers;
        map<string, int> combos;
+       map<string, int> groupToIndex;
        
        vector<int> processIDS;   //processid
        vector<linePair*> lines;