X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=chimera.cpp;h=8851b755a09a0b030418e7881d09caedb4753584;hb=05a0195e07c42c996592ee1c8abb63adedb7f493;hp=8aaab4b12a4c5c261f8a7a4494ca7ef4f12ea923;hpb=f7fbd74ffedcf62217109c22e828453eaefa1458;p=mothur.git diff --git a/chimera.cpp b/chimera.cpp index 8aaab4b..8851b75 100644 --- a/chimera.cpp +++ b/chimera.cpp @@ -10,7 +10,7 @@ #include "chimera.h" //*************************************************************************************************************** -//this is a vertical filter +//this is a vertical soft filter void Chimera::createFilter(vector seqs) { try { @@ -41,13 +41,18 @@ void Chimera::createFilter(vector seqs) { } //zero out spot where all sequences have blanks + //zero out spot where all sequences have blanks + int numColRemoved = 0; for(int i = 0;i < seqs[0]->getAligned().length(); i++){ - if(gaps[i] == seqs.size()) { filterString[i] = '0'; } + if(gaps[i] == seqs.size()) { filterString[i] = '0'; numColRemoved++; } - else if (((a[i] < threshold) && (t[i] < threshold) && (g[i] < threshold) && (c[i] < threshold))) { filterString[i] = '0'; } + else if (((a[i] < threshold) && (t[i] < threshold) && (g[i] < threshold) && (c[i] < threshold))) { filterString[i] = '0'; numColRemoved++; } //cout << "a = " << a[i] << " t = " << t[i] << " g = " << g[i] << " c = " << c[i] << endl; } + //cout << "filter = " << filterString << endl; + + mothurOut("Filter removed " + toString(numColRemoved) + " columns."); mothurOutEndLine(); } catch(exception& e) { errorOut(e, "Chimera", "createFilter"); @@ -139,6 +144,10 @@ vector< vector > Chimera::readQuantiles() { openInputFile(quanfile, in); vector< vector > quan; + vector temp; temp.resize(6, 0); + + //to fill 0 + quan.push_back(temp); int num; float ten, twentyfive, fifty, seventyfive, ninetyfive, ninetynine; @@ -146,7 +155,7 @@ vector< vector > Chimera::readQuantiles() { in >> num >> ten >> twentyfive >> fifty >> seventyfive >> ninetyfive >> ninetynine; - vector temp; + temp.clear(); temp.push_back(ten); temp.push_back(twentyfive);