]> git.donarmstrong.com Git - mothur.git/blobdiff - qualityscores.cpp
added oligos class. added check orient parameter to trim.flows, sffinfo, fastq.info...
[mothur.git] / qualityscores.cpp
index 3a1687bf9e174d77ddded9eaf331d6f1a78da734..916dab3a59743e4bcb860bd9891dcfbda74504b4 100644 (file)
@@ -23,7 +23,19 @@ QualityScores::QualityScores(){
                exit(1);
        }                                                       
 }
+/**************************************************************************************************/
 
+QualityScores::QualityScores(string n, vector<int> 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;    }