INNER CODE UNIT · C
nt_aa
lh3/miniprot · align.c:127
uint8_t nt_aa = nt[i] > 3 || nt[i+1] > 3 || nt[i+2] > 3? aa_ambi : ns_tab_codon[codon];
e->n_stop += (nt_aa == aa_stop);
}
e->dp_max -= opt->go + opt->ge * len;
nl += len3, e->blen += len3;
} else if (op == NS_CIGAR_F) {
e->dp_max -= opt->fs;
nl += len, e->blen += len, e->n_fs++;
} else if (op == NS_CIGAR_G) {
e->dp_max -= opt->fs;
nl += len, ++al, e->blen += 3, e->n_fs++;
} else if (op == NS_CIGAR_N || op == NS_CIGAR_U || op == NS_CIGAR_V) { // intron
if (op == NS_CIGAR_U || op == NS_CIGAR_V) { // phase-1 or phase-2 intron
uint8_t n1, n2, n3, codon, nt_aa, aa_aa;
int32_t s;
if (op == NS_CIGAR_U) n1 = nt[nl], n2 = nt[nl + len - 2], n3 = nt[nl + len - 1];
else n1 = nt[nl], n2 = nt[nl + 1], n3 = nt[nl + len - 1];
codon = n1<<4 | n2<<2 | n3;