INNER CODE UNIT · C
k
lh3/seqtk · seqtk.c:476
khint_t k = kh_get(reg, h, seq->name.s);
if (k != kh_end(h)) p = &kh_val(h, k);
} else {
p = &dummy;
dummy.a[1] = l;
}
for (k = 0; p && k < p->n; ++k) {
int64_t beg = p->a[k<<1], end = p->a[k<<1|1], cnt[11];
int la, lb, na, nb, nc;
if (beg > 0) la = seq->seq.s[beg-1], lb = seq_nt16_table[la];
else la = 'a', lb = -1;
na = seq->seq.s[beg]; nb = seq_nt16_table[na]; nc = bitcnt_table[nb];
memset(cnt, 0, 11 * sizeof(int64_t));
for (i = beg; i < end; ++i) {
int is_CpG = 0, a, b, c;
a = na; b = nb; c = nc;
na = seq->seq.s[i+1]; nb = seq_nt16_table[na]; nc = bitcnt_table[nb];
if (b == 2 || b == 10) { // C or Y