INNER CODE UNIT · C
n1
lh3/miniprot · align.c:143
else n1 = nt[nl], n2 = nt[nl + 1], n3 = nt[nl + len - 1];
codon = n1<<4 | n2<<2 | n3;
nt_aa = n1 > 3 || n2 > 3 || n3 > 3? ns_tab_aa20['X'] : ns_tab_codon[codon];
aa_aa = ns_tab_aa20[(uint8_t)aa[al]];
s = opt->mat[nt_aa * opt->asize + aa_aa];
//printf("%c:%c, score=%d\n", ns_tab_aa_i2c[nt_aa], ns_tab_aa_i2c[aa_aa], s);
e->n_stop += (nt_aa == aa_stop);
e->n_iden += (nt_aa == aa_aa);
e->n_plus += (s > 0);
e->dp_max += s;
e->blen += 3;
}
// calculate r->feat
f = &r->feat[ft++];
f->type = MP_FEAT_CDS;
f->vs = vs0, f->qs = qs0, f->qe = r->qs + al, f->n_fs = n_fs0, f->n_stop = n_stop0, f->phase = phase0;
f->blen = e->blen - blen0, f->n_iden = e->n_iden - n_iden0, f->n_fs = e->n_fs - n_fs0, f->n_stop = e->n_stop - n_stop0, f->score = e->dp_max - score0;
if (ft > 1) f->acceptor[0] = acceptor0[0], f->acceptor[1] = acceptor0[1];