INNER CODE UNIT · C
vs1
lh3/miniprot · align.c:281
int64_t vs1 = vs0 + (r->a[i0]>>32) + 1;
int32_t as1 = ((int32_t)r->a[i0]<<1>>1) + 1;
int32_t nt_len, aa_len;
ns_opt_t ns_opt = ns_opt0;
ns_rst_t rst;
ns_opt.flag |= NS_F_EXT_LEFT;
ns_rst_init(&rst);
ns_global_gs16b(km, (const char*)nt, vs1 - as, aa, as1, &ns_opt, ss, &rst);
nt_len = rst.nt_len, aa_len = rst.aa_len;
if (rst.aa_len != as1 && rst.nt_len < opt->max_ext && opt->io > opt->io_end) { // special casing 5'-end exon
int64_t as_alt = vs1 - as > opt->max_ext? vs1 - opt->max_ext : as;
ns_opt.io = opt->io_end;
ns_global_gs16b(km, (const char*)&nt[as_alt - as], vs1 - as_alt, aa, as1, &ns_opt, ss? &ss[as_alt - as] : 0, &rst);
if (rst.aa_len == as1)
nt_len = rst.nt_len, aa_len = rst.aa_len;
}
r->vs = vs1 - nt_len;
r->qs = as1 - aa_len;