commit
a38b065642
8
bntseq.c
8
bntseq.c
|
|
@ -397,12 +397,16 @@ uint8_t *bns_fetch_seq(const bntseq_t *bns, const uint8_t *pac, int64_t *beg, in
|
||||||
far_end = far_beg + bns->anns[*rid].len;
|
far_end = far_beg + bns->anns[*rid].len;
|
||||||
if (is_rev) { // flip to the reverse strand
|
if (is_rev) { // flip to the reverse strand
|
||||||
int64_t tmp = far_beg;
|
int64_t tmp = far_beg;
|
||||||
far_beg = (bns->l_pac<<1) - 1 - far_end;
|
far_beg = (bns->l_pac<<1) - far_end;
|
||||||
far_end = (bns->l_pac<<1) - 1 - tmp;
|
far_end = (bns->l_pac<<1) - tmp;
|
||||||
}
|
}
|
||||||
*beg = *beg > far_beg? *beg : far_beg;
|
*beg = *beg > far_beg? *beg : far_beg;
|
||||||
*end = *end < far_end? *end : far_end;
|
*end = *end < far_end? *end : far_end;
|
||||||
seq = bns_get_seq(bns->l_pac, pac, *beg, *end, &len);
|
seq = bns_get_seq(bns->l_pac, pac, *beg, *end, &len);
|
||||||
|
if (seq == 0 || *end - *beg != len) {
|
||||||
|
fprintf(stderr, "[E::%s] begin=%ld, mid=%ld, end=%ld, len=%ld, seq=%p, rid=%d, far_beg=%ld, far_end=%ld\n",
|
||||||
|
__func__, (long)*beg, (long)mid, (long)*end, (long)len, seq, *rid, (long)far_beg, (long)far_end);
|
||||||
|
}
|
||||||
assert(seq && *end - *beg == len); // assertion failure should never happen
|
assert(seq && *end - *beg == len); // assertion failure should never happen
|
||||||
return seq;
|
return seq;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue