INNER CODE UNIT · C
win_step
lh3/seqtk · seqtk.c:597
win_step = win_size / n_start;
buf = calloc(win_size, 1);
while ((l = kseq_read(seq)) >= 0) {
int64_t x, i, y, z, next = 0;
cnt[0] = cnt[1] = cnt[2] = 0;
for (i = 0; i <= l; ++i) {
if ((i >= win_size && i % win_step == 0) || i == l) {
if (i == l && l >= win_size) {
for (y = l - win_size; y < next; ++y) --cnt[(int)buf[y % win_size]];
}
if (cnt[1] + cnt[2] > 0)
printf("%s\t%ld\t%ld\t%.2lf\t%ld\t%ld\n", seq->name.s, next, i,
(double)cnt[2] / (cnt[1] + cnt[2]) * win_size, cnt[1] + cnt[2], cnt[2]);
next = i;
}
if (i < l) {
y = i % win_size;
c = seq->seq.s[i];