48 int init_line = line_count;
54 throw std::runtime_error(
"read name should start with '@' (starting line " + std::to_string(init_line + 1) +
")");
57 val = advance_and_check();
58 while (!std::isspace(val)) {
60 val = advance_and_check();
64 val = advance_and_check();
70 val = advance_and_check();
73 sequence.push_back(val);
75 val = advance_and_check();
80 val = advance_and_check();
82 val = advance_and_check();
90 size_t qual_length = 0, seq_length = sequence.size();
93 while (pb.advance()) {
97 }
else if (qual_length >= seq_length) {
103 if (qual_length != seq_length) {
104 throw std::runtime_error(
"non-equal lengths for quality and sequence strings (starting line " + std::to_string(init_line + 1) +
")");