INNER CODE UNIT · C
i
lh3/miniprot · align.c:218
int32_t i = j - as;
uint8_t codon = nt[i]<<4 | nt[i+1]<<2 | nt[i+2];
uint8_t aa = nt[i] > 3 || nt[i+1] > 3 || nt[i+2] > 3? ns_tab_aa20['X'] : ns_tab_codon[codon];
if (aa == 20) return j - r->ve;
}
return -1;
}
static int32_t mp_extra_start(const mp_reg1_t *r, const uint8_t *nt, int64_t as, int64_t ae)
{
int64_t j;
for (j = r->vs; j >= as && j + 2 < ae; j -= 3) {
int32_t i = j - as;
uint8_t codon = nt[i]<<4 | nt[i+1]<<2 | nt[i+2];
uint8_t aa = nt[i] > 3 || nt[i+1] > 3 || nt[i+2] > 3? ns_tab_aa20['X'] : ns_tab_codon[codon];
if (aa == 20) break;
if (aa == 12) return r->vs - j;
}