qFile >> seqName;
m->getline(qFile);
-
+ //cout << seqName << endl;
if (seqName == "") {
m->mothurOut("Error reading quality file, name blank at position, " + toString(qFile.tellg()));
m->mothurOutEndLine();
}
string qScoreString = m->getline(qFile);
+ //cout << qScoreString << endl;
while(qFile.peek() != '>' && qFile.peek() != EOF){
- qScoreString += ' ' + m->getline(qFile);
+ if (m->control_pressed) { break; }
+ string temp = m->getline(qFile);
+ //cout << temp << endl;
+ qScoreString += ' ' + temp;
}
-
+ //cout << "done reading " << endl;
istringstream qScoreStringStream(qScoreString);
int count = 0;
while(!qScoreStringStream.eof()){
if (m->control_pressed) { break; }
- qScoreStringStream >> score; m->gobble(qScoreStringStream);
-
+ string temp;
+ qScoreStringStream >> temp; m->gobble(qScoreStringStream);
+
+ //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"; }
+ convert(temp, score);
+
+ //cout << count << '\t' << score << endl;
qScores.push_back(score);
count++;
}
// qScores.pop_back();
seqLength = qScores.size();
- //cout << "seqlenght = " << seqLength << '\t' << count << endl;
+ //cout << "seqlength = " << seqLength << '\t' << count << endl;
}
catch(exception& e) {
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; }
}
}