if(seqLength < windowSize) { return 0; }
- while(start < seqLength){
+ while((start+windowSize) < seqLength){
double windowSum = 0.0000;
for(int i=start;i<end;i++){
windowSum += qScores[i];
}
double windowAverage = windowSum / (double)(end-start);
-
+
if(windowAverage < qThreshold){
end = end - stepSize;
break;
}
+
start += stepSize;
end = start + windowSize;
- if(end >= seqLength){ end = seqLength - 1; }
+
+ if(end >= seqLength){ end = seqLength; }
+
}
-
+
if(end == -1){ end = seqLength; }
//failed first window
if(errorSeq[i] == 'm') { qualErrorMap['m'][qScores[qIndex]] += weight; }
else if(errorSeq[i] == 's') { qualErrorMap['s'][qScores[qIndex]] += weight; }
else if(errorSeq[i] == 'i') { qualErrorMap['i'][qScores[qIndex]] += weight; }
- else if(errorSeq[i] == 'a') { qualErrorMap['a'][qScores[qIndex]] += weight; }
+ else if(errorSeq[i] == 'a') { qualErrorMap['a'][qScores[qIndex]] += weight; /*if(qScores[qIndex] != 0){ cout << qIndex << '\t'; }*/ }
else if(errorSeq[i] == 'd') { /* there are no qScores for deletions */ }
if(errorSeq[i] != 'd') { qIndex++; }
+
if(qIndex > stop){ break; }
}
}