static void readPairs(It& it, const It& last, vector<SAMRecord>& out) { assert(out.empty()); for (; it != last; ++it) { if (it->isUnmapped() || it->isMateUnmapped() || !it->isPaired() || it->rname == it->mrnm || it->mapq < opt::minMapQ) continue; if (!out.empty() && out.back().rname != it->rname) break; out.push_back(*it); SAMRecord& sam = out.back(); // Clear unused fields. sam.qname.clear(); #if SAM_SEQ_QUAL sam.seq.clear(); sam.qual.clear(); #endif } // Check that the input is sorted. if (it != last && !out.empty() && get(g_contigNames, it->rname) < get(g_contigNames, out.front().rname)) { cerr << "error: input must be sorted: saw `" << out.front().rname << "' before `" << it->rname << "'\n"; exit(EXIT_FAILURE); } }