INNER CODE UNIT · C
vs0
lh3/miniprot · align.c:104
vs0 = r->vs, qs0 = r->qs;
acceptor0[0] = acceptor0[1] = 0;
for (k = 0, ft = 0; k < e->n_cigar; ++k) {
int32_t op = e->cigar[k]&0xf, len = e->cigar[k]>>4, len3 = len * 3;
if (op == NS_CIGAR_M) {
for (i = nl, j = al, l = 0; l < len; ++l, ++j, i += 3) {
uint8_t nt_aa, aa_aa, codon = nt[i]<<4 | nt[i+1]<<2 | nt[i+2];
int32_t s;
nt_aa = nt[i] > 3 || nt[i+1] > 3 || nt[i+2] > 3? aa_ambi : ns_tab_codon[codon];
aa_aa = ns_tab_aa20[(uint8_t)aa[j]];
s = opt->mat[nt_aa * opt->asize + aa_aa];
e->n_stop += (nt_aa == aa_stop);
e->n_iden += (nt_aa == aa_aa);
e->n_plus += (s > 0);
e->dp_max += s;
}
nl += len3, al += len, e->blen += len3;
} else if (op == NS_CIGAR_I) {