INNER CODE UNIT · C
q
lh3/seqtk · seqtk.c:406
int q = seq->qual.s[i];
if (q < 36) q = 36;
if (q > 127) q = 127;
s += param - q_int2real[q];
if (s > max) max = s, beg = tmp, end = i + 1;
if (s < 0) s = 0, tmp = i + 1;
}
/* max never set; all low qual, just give first min_len bp */
if (max == 0.) beg = 0, end = min_len;
if (end - beg < min_len) { // window-based
int is, imax;
for (i = 0, is = 0; i < min_len; ++i)
is += seq->qual.s[i] - 33;
for (imax = is, beg = 0; i < seq->qual.l; ++i) {
is += (int)seq->qual.s[i] - seq->qual.s[i - min_len];
if (imax < is) imax = is, beg = i - min_len + 1;