INNER CODE UNIT · C
qr
lh3/bedtk · bedtk.c:278
qr = read_bed3b(o.ind + 1 < argc? argv[o.ind + 1] : 0, 0, fn_order);
assert(qr);
if (!cr_is_sorted(qr)) cr_sort(qr);
cr_merge_pre_index(qr);
for (i = 0; i < qr->n_r; ++i) {
cr_intv_t *q = &qr->r[i];
int32_t st1 = (int32_t)q->x, en1 = q->y, cov_st = 0, cov_en = 0;
int64_t j;
char *ctg = qr->ctg[q->x>>32].name;
n_b = cr_overlap(cr, ctg, st1, en1, &b, &m_b);
for (j = 0; j < n_b; ++j) {
cr_intv_t *r = &cr->r[b[j]];
int32_t st0 = cr_st(r), en0 = cr_en(r);
if (st0 < st1) st0 = st1;
if (en0 > en1) en0 = en1;
if (st0 > cov_en) {
if (cov_en > cov_st) printf("%s\t%d\t%d\n", ctg, cov_st, cov_en);
cov_st = st0, cov_en = en0;