X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=trimseqscommand.h;h=ba4e61411b8498820139e8ae2b1ed71cb37b0432;hb=e0ce7cbc93d7d2fbb753ca694182db092a0ea0e7;hp=9ba64c4b62b7c7e87f213472b730a91bd0b37305;hpb=d205e70ae86dbee2efc2df02f2717975854de6ba;p=mothur.git diff --git a/trimseqscommand.h b/trimseqscommand.h index 9ba64c4..ba4e614 100644 --- a/trimseqscommand.h +++ b/trimseqscommand.h @@ -63,6 +63,7 @@ private: vector revPrimer, outputNames; set filesToRemove; map barcodes; + map rbarcodes; vector groupVector; map primers; vector linker; @@ -101,6 +102,7 @@ struct trimData { double qRollAverage, qThreshold, qWindowAverage, qAverage; vector revPrimer; map barcodes; + map rbarcodes; map primers; vector linker; vector spacer; @@ -112,7 +114,7 @@ struct trimData { trimData(){} trimData(string fn, string qn, string nf, string tn, string sn, string tqn, string sqn, string tnn, string snn, string gn, vector > ffn, vector > qfn, vector > nfn, unsigned long long lstart, unsigned long long lend, unsigned long long qstart, unsigned long long qend, MothurOut* mout, - int pd, int bd, int ld, int sd, int td, map pri, map bar, vector revP, vector li, vector spa, + int pd, int bd, int ld, int sd, int td, map pri, map bar, map rbar, vector revP, vector li, vector spa, vector priNameVector, vector barNameVector, bool cGroup, bool aFiles, bool keepF, int keepfi, int removeL, int WindowStep, int WindowSize, int WindowAverage, bool trim, double Threshold, double Average, double RollAverage, int minL, int maxA, int maxH, int maxL, bool fli, map nm) { @@ -141,6 +143,7 @@ struct trimData { sdiffs = sd; tdiffs = td; barcodes = bar; + rbarcodes = rbar; primers = pri; numFPrimers = primers.size(); revPrimer = revP; numRPrimers = revPrimer.size(); linker = li; numLinkers = linker.size(); @@ -237,7 +240,7 @@ static DWORD WINAPI MyTrimThreadFunction(LPVOID lpParam){ } - TrimOligos trimOligos(pDataArray->pdiffs, pDataArray->bdiffs, pDataArray->ldiffs, pDataArray->sdiffs, pDataArray->primers, pDataArray->barcodes, pDataArray->revPrimer, pDataArray->linker, pDataArray->spacer); + TrimOligos trimOligos(pDataArray->pdiffs, pDataArray->bdiffs, pDataArray->ldiffs, pDataArray->sdiffs, pDataArray->primers, pDataArray->barcodes, pDataArray->rbarcodes, pDataArray->revPrimer, pDataArray->linker, pDataArray->spacer); pDataArray->count = pDataArray->lineEnd; for(int i = 0; i < pDataArray->lineEnd; i++){ //end is the number of sequences to process @@ -277,7 +280,13 @@ static DWORD WINAPI MyTrimThreadFunction(LPVOID lpParam){ if(success > pDataArray->bdiffs) { trashCode += 'b'; } else{ currentSeqsDiffs += success; } } - + + if(pDataArray->rbarcodes.size() != 0){ + success = trimOligos.stripRBarcode(currSeq, currQual, barcodeIndex); + if(success > pDataArray->bdiffs) { trashCode += 'b'; } + else{ currentSeqsDiffs += success; } + } + if(pDataArray->numSpacers != 0){ success = trimOligos.stripSpacer(currSeq, currQual); if(success > pDataArray->sdiffs) { trashCode += 's'; }