X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=qualityscores.cpp;h=3a1687bf9e174d77ddded9eaf331d6f1a78da734;hp=0408b83ebaf0d79f31e5290278fa29e567c1cb87;hb=cf9987b67aa49777a4c91c2d21f96e58bf17aa82;hpb=d39f94cf9bceeae887b211eec862da5c9c77e10d diff --git a/qualityscores.cpp b/qualityscores.cpp index 0408b83..3a1687b 100644 --- a/qualityscores.cpp +++ b/qualityscores.cpp @@ -44,7 +44,7 @@ QualityScores::QualityScores(ifstream& qFile){ while(qFile.peek() != '>' && qFile.peek() != EOF){ if (m->control_pressed) { break; } string temp = m->getline(qFile); m->gobble(qFile); - if (m->debug) { m->mothurOut("[DEBUG]: scores = '" + temp + "'\n."); } + //if (m->debug) { m->mothurOut("[DEBUG]: scores = '" + temp + "'\n."); } qScoreString += ' ' + temp; } //cout << "done reading " << endl; @@ -55,7 +55,7 @@ QualityScores::QualityScores(ifstream& qFile){ string temp; qScoreStringStream >> temp; m->gobble(qScoreStringStream); - if (m->debug) { m->mothurOut("[DEBUG]: score " + toString(qScores.size()) + " = '" + temp + "'\n."); } + //if (m->debug) { m->mothurOut("[DEBUG]: score " + toString(qScores.size()) + " = '" + temp + "'\n."); } //check temp to make sure its a number if (!m->isContainingOnlyDigits(temp)) { m->mothurOut("[ERROR]: In sequence " + seqName + "'s quality scores, expected a number and got " + temp + ", setting score to 0."); m->mothurOutEndLine(); temp = "0"; } @@ -130,7 +130,7 @@ string QualityScores::getName(){ void QualityScores::printQScores(ofstream& qFile){ try { - double aveQScore = calculateAverage(); + double aveQScore = calculateAverage(false); qFile << '>' << seqName << '\t' << aveQScore << endl; @@ -200,7 +200,7 @@ bool QualityScores::stripQualThreshold(Sequence& sequence, double qThreshold){ if(seqName != sequence.getName()){ m->mothurOut("sequence name mismatch btwn fasta: " + sequence.getName() + " and qual file: " + seqName); - m->mothurOutEndLine(); + m->mothurOutEndLine(); m->control_pressed = true; } int end; @@ -228,7 +228,7 @@ bool QualityScores::stripQualThreshold(Sequence& sequence, double qThreshold){ /**************************************************************************************************/ -bool QualityScores::stripQualRollingAverage(Sequence& sequence, double qThreshold){ +bool QualityScores::stripQualRollingAverage(Sequence& sequence, double qThreshold, bool logTransform){ try { string rawSequence = sequence.getUnaligned(); int seqLength = sequence.getNumBases(); @@ -240,12 +240,22 @@ bool QualityScores::stripQualRollingAverage(Sequence& sequence, double qThreshol int end = -1; double rollingSum = 0.0000; + double value = 0.0; for(int i=0;imothurOutEndLine(); } - double aveQScore = calculateAverage(); + double aveQScore = calculateAverage(logTransform); if(aveQScore >= qAverage) { success = 1; } else { success = 0; }