X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=trimoligos.h;h=a86eb9ae1c815a8c71c4331934f88bf6b83f773f;hp=a32b3d8e4f2d388b15b3aa68ed66fa61f33c1681;hb=1a20e24ee786195ab0e1cccd4f5aede7a88f3f4e;hpb=e0ce7cbc93d7d2fbb753ca694182db092a0ea0e7 diff --git a/trimoligos.h b/trimoligos.h index a32b3d8..a86eb9a 100644 --- a/trimoligos.h +++ b/trimoligos.h @@ -15,23 +15,32 @@ #include "sequence.hpp" #include "qualityscores.h" +struct oligosPair { + string forward; + string reverse; + + oligosPair() { forward = ""; reverse = ""; } + oligosPair(string f, string r) : forward(f), reverse(r) {} + ~oligosPair() {} +}; class TrimOligos { public: TrimOligos(int,int, map, map, vector); //pdiffs, bdiffs, primers, barcodes, revPrimers - TrimOligos(int,int, int, int, map, map, map, vector, vector, vector); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes, rbarcodes, revPrimers, linker, spacer - TrimOligos(int,int, int, int, map, map, vector, vector, vector); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes, rbarcodes, revPrimers, linker, spacer + TrimOligos(int,int, int, int, map, map, vector, vector, vector); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes, revPrimers, linker, spacer + TrimOligos(int,int, int, int, map, map); //pdiffs, bdiffs, ldiffs, sdiffs, primers, barcodes ~TrimOligos(); int stripBarcode(Sequence&, int&); int stripBarcode(Sequence&, QualityScores&, int&); - - int stripRBarcode(Sequence&, int&); - int stripRBarcode(Sequence&, QualityScores&, int&); - + int stripBarcode(Sequence&, Sequence&, QualityScores&, QualityScores&, int&); + int stripBarcode(Sequence&, Sequence&, int&); + int stripForward(Sequence&, int&); int stripForward(Sequence&, QualityScores&, int&, bool); + int stripForward(Sequence&, Sequence&, QualityScores&, QualityScores&, int&); + int stripForward(Sequence&, Sequence&, int&); bool stripReverse(Sequence&); bool stripReverse(Sequence&, QualityScores&); @@ -41,22 +50,38 @@ class TrimOligos { bool stripSpacer(Sequence&); bool stripSpacer(Sequence&, QualityScores&); - + + //seq, primerStart, primerEnd + bool findForward(Sequence&, int&, int&); + bool findReverse(Sequence&, int&, int&); + + string reverseOligo(string); private: int pdiffs, bdiffs, ldiffs, sdiffs; + bool paired; map barcodes; - map rbarcodes; map primers; vector revPrimer; vector linker; vector spacer; + map > ifbarcodes; + map > ifprimers; + map > irbarcodes; + map > irprimers; + map ipbarcodes; + map ipprimers; + + int maxFBarcodeLength, maxRBarcodeLength, maxFPrimerLength, maxRPrimerLength, maxLinkerLength, maxSpacerLength; MothurOut* m; bool compareDNASeq(string, string); - int countDiffs(string, string); + int countDiffs(string, string); + + int stripPairedBarcode(Sequence& seq, QualityScores& qual, int& group); + int stripPairedPrimers(Sequence& seq, QualityScores& qual, int& group, bool); }; #endif