]> git.donarmstrong.com Git - mothur.git/blob - trimseqscommand.h
11778fb9583f5af72b7def6c5ce421d59802dde5
[mothur.git] / trimseqscommand.h
1 #ifndef TRIMSEQSCOMMAND_H
2 #define TRIMSEQSCOMMAND_H
3
4 /*
5  *  trimseqscommand.h
6  *  Mothur
7  *
8  *  Created by Pat Schloss on 6/6/09.
9  *  Copyright 2009 Patrick D. Schloss. All rights reserved.
10  *
11  */
12
13 #include "mothur.h"
14 #include "command.hpp"
15 #include "sequence.hpp"
16
17 class TrimSeqsCommand : public Command {
18 public:
19         TrimSeqsCommand(string);
20         ~TrimSeqsCommand();
21         int execute();
22         void help();
23         
24 private:
25
26         struct linePair {
27                 int start;
28                 int num;
29                 linePair(long int i, int j) : start(i), num(j) {}
30         };
31
32         void getOligos(vector<string>&);
33         bool stripQualThreshold(Sequence&, ifstream&);
34         bool cullQualAverage(Sequence&, ifstream&);
35         bool stripBarcode(Sequence&, int&);
36         bool stripForward(Sequence&);
37         bool stripReverse(Sequence&);
38         bool cullLength(Sequence&);
39         bool cullHomoP(Sequence&);
40         bool cullAmbigs(Sequence&);
41         bool compareDNASeq(string, string);
42
43         bool abort;
44         string fastaFile, oligoFile, qFileName, outputDir;
45         
46         bool flip, allFiles, qtrim;
47         int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage, processors;
48         vector<string> forPrimer, revPrimer, outputNames;
49         map<string, int> barcodes;
50         vector<string> groupVector;
51         
52         vector<int> processIDS;   //processid
53         vector<linePair*> lines;
54         vector<linePair*> qLines;
55         
56         int driverCreateTrim(string, string, string, string, string, vector<string>, linePair*, linePair*);     
57         int createProcessesCreateTrim(string, string, string, string, string, vector<string>);
58         int setLines(string, vector<linePair*>&);
59         
60 };
61
62 #endif