]> git.donarmstrong.com Git - mothur.git/blob - trimoligos.h
added oligos class. added check orient parameter to trim.flows, sffinfo, fastq.info...
[mothur.git] / trimoligos.h
1 #ifndef TRIMOLIGOS_H
2 #define TRIMOLIGOS_H
3
4 /*
5  *  trimoligos.h
6  *  Mothur
7  *
8  *  Created by westcott on 9/1/11.
9  *  Copyright 2011 Schloss Lab. All rights reserved.
10  *
11  */
12
13 #include "mothur.h"
14 #include "mothurout.h"
15 #include "sequence.hpp"
16 #include "qualityscores.h"
17
18
19 class TrimOligos {
20         
21         public:
22         TrimOligos(int,int, map<string, int>, map<string, int>, vector<string>); //pdiffs, bdiffs, primers, barcodes, revPrimers
23         TrimOligos(int,int, int, int, map<string, int>, map<string, int>, vector<string>, vector<string>, vector<string>); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes, revPrimers, linker, spacer
24         TrimOligos(int,int, int, int, map<int, oligosPair>, map<int, oligosPair>); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes
25                 ~TrimOligos();
26         
27                 int stripBarcode(Sequence&, int&);      
28                 int stripBarcode(Sequence&, QualityScores&, int&);
29         int stripBarcode(Sequence&, Sequence&, QualityScores&, QualityScores&, int&);
30         int stripBarcode(Sequence&, Sequence&, int&);
31         
32                 int stripForward(Sequence&, int&);
33                 int stripForward(Sequence&, QualityScores&, int&, bool);
34         int stripForward(Sequence&, Sequence&, QualityScores&, QualityScores&, int&);
35         int stripForward(Sequence&, Sequence&, int&);
36         
37                 bool stripReverse(Sequence&);
38                 bool stripReverse(Sequence&, QualityScores&);
39     
40         bool stripLinker(Sequence&);
41         bool stripLinker(Sequence&, QualityScores&);
42     
43         bool stripSpacer(Sequence&);
44         bool stripSpacer(Sequence&, QualityScores&);
45     
46         //seq, primerStart, primerEnd
47         bool findForward(Sequence&, int&, int&);
48         bool findReverse(Sequence&, int&, int&);
49     
50         string reverseOligo(string);
51         
52         private:
53                 int pdiffs, bdiffs, ldiffs, sdiffs;
54         bool paired;
55         
56                 map<string, int> barcodes;
57                 map<string, int> primers;
58                 vector<string> revPrimer;
59         vector<string> linker;
60         vector<string> spacer;
61         map<string, vector<int> > ifbarcodes;
62         map<string, vector<int> > ifprimers;
63         map<string, vector<int> > irbarcodes;
64         map<string, vector<int> > irprimers;
65         map<int, oligosPair> ipbarcodes;
66         map<int, oligosPair> ipprimers;
67     
68         int maxFBarcodeLength, maxRBarcodeLength, maxFPrimerLength, maxRPrimerLength, maxLinkerLength, maxSpacerLength;
69         
70                 MothurOut* m;
71         
72                 bool compareDNASeq(string, string);                             
73                 int countDiffs(string, string);
74         
75         int stripPairedBarcode(Sequence& seq, QualityScores& qual, int& group);
76         int stripPairedPrimers(Sequence& seq, QualityScores& qual, int& group, bool);
77         int stripPairedBarcode(Sequence& seq,  int& group);
78         int stripPairedPrimers(Sequence& seq,  int& group);
79
80 };
81
82 #endif
83