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;
|
||||
if (is_rev) { // flip to the reverse strand
|
||||
int64_t tmp = far_beg;
|
||||
far_beg = (bns->l_pac<<1) - 1 - far_end;
|
||||
far_end = (bns->l_pac<<1) - 1 - tmp;
|
||||
far_beg = (bns->l_pac<<1) - far_end;
|
||||
far_end = (bns->l_pac<<1) - tmp;
|
||||
}
|
||||
*beg = *beg > far_beg? *beg : far_beg;
|
||||
*end = *end < far_end? *end : far_end;
|
||||
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
|
||||
return seq;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue