X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=qualityscores.cpp;h=916dab3a59743e4bcb860bd9891dcfbda74504b4;hp=3a1687bf9e174d77ddded9eaf331d6f1a78da734;hb=fefd5ee1517abd3bc38b469cb2dffc85a1571c7e;hpb=aca78ed4a47dff8672ea8fd93cef0dfbaf0f7495 diff --git a/qualityscores.cpp b/qualityscores.cpp index 3a1687b..916dab3 100644 --- a/qualityscores.cpp +++ b/qualityscores.cpp @@ -23,7 +23,19 @@ QualityScores::QualityScores(){ exit(1); } } +/**************************************************************************************************/ +QualityScores::QualityScores(string n, vector s){ + try { + m = MothurOut::getInstance(); + setName(n); + setScores(s); + } + catch(exception& e) { + m->errorOut(e, "QualityScores", "QualityScores"); + exit(1); + } +} /**************************************************************************************************/ QualityScores::QualityScores(ifstream& qFile){ @@ -344,10 +356,9 @@ double QualityScores::calculateAverage(bool logTransform){ if (logTransform) { aveQScore += pow(10.0, qScores[i]); } else { aveQScore += qScores[i]; } } - aveQScore /= (double) seqLength; - if (logTransform) { aveQScore = log10(aveQScore /(double) seqLength); } - else { aveQScore /= (double) seqLength; } + if (logTransform) { aveQScore = log10(aveQScore /(double) seqLength); } + else { aveQScore /= (double) seqLength; } return aveQScore; } @@ -366,6 +377,8 @@ bool QualityScores::cullQualAverage(Sequence& sequence, double qAverage, bool lo double aveQScore = calculateAverage(logTransform); + if (m->debug) { m->mothurOut("[DEBUG]: " + sequence.getName() + " average = " + toString(aveQScore) + "\n"); } + if(aveQScore >= qAverage) { success = 1; } else { success = 0; }