]> git.donarmstrong.com Git - mothur.git/blobdiff - trimseqscommand.h
added pipeline commands which involved change to command factory and command class...
[mothur.git] / trimseqscommand.h
index 9b02be9ef5ec0f5a50d0563ab87a7f7d053bdadc..20b11a85ac05e57b453906475d73ab4fd2ecb2e0 100644 (file)
 #include "mothur.h"
 #include "command.hpp"
 #include "sequence.hpp"
+#include "qualityscores.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:
-       void getOligos(vector<ofstream*>&);
-       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<string>&, vector<string>&);
+       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<string, vector<string> > outputTypes;
 
        bool abort;
        string fastaFile, oligoFile, qFileName, outputDir;
        
        bool flip, allFiles, qtrim;
-       int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage;
-       vector<string> forPrimer, revPrimer;
+       int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, processors, tdiffs, bdiffs, pdiffs, comboStarts;
+       int qWindowSize, qWindowStep;
+       double qRollAverage, qThreshold, qWindowAverage, qAverage;
+       vector<string> revPrimer, outputNames;
+       set<string> filesToRemove;
        map<string, int> barcodes;
        vector<string> groupVector;
+       map<string, int> primers;
+       map<string, int> combos;
+       
+       vector<int> processIDS;   //processid
+       vector<linePair*> lines;
+       vector<linePair*> qLines;
+       
+       int driverCreateTrim(string, string, string, string, string, string, string, vector<string>, vector<string>, linePair*, linePair*);     
+       int createProcessesCreateTrim(string, string, string, string, string, string, string, vector<string>, vector<string>);
+       int setLines(string, string, vector<unsigned long int>&, vector<unsigned long int>&);
+       
 };
 
 #endif