improvement to the python binding

This commit is contained in:
Heng Li
2017-09-16 11:14:01 -04:00
parent 7e34bea7ab
commit b22703a354
3 changed files with 92 additions and 68 deletions
+16 -17
View File
@@ -8,28 +8,27 @@ typedef struct {
const char *ctg;
int32_t ctg_start, ctg_end;
int32_t qry_start, qry_end;
int32_t blen, NM, ctg_len;
uint8_t mapq, is_primary;
int8_t strand, trans_strand;
int32_t n_cigar32;
uint8_t strand, mapq, is_primary;
uint32_t *cigar32;
} mm_hitpy_t;
static inline mm_hitpy_t *mm_reg2hitpy(const mm_idx_t *mi, int n_regs, mm_reg1_t *regs)
static inline void mm_reg2hitpy(const mm_idx_t *mi, mm_reg1_t *r, mm_hitpy_t *h)
{
mm_hitpy_t *h;
int i;
h = (mm_hitpy_t*)calloc(n_regs, sizeof(mm_hitpy_t));
for (i = 0; i < n_regs; ++i) {
mm_reg1_t *r = &regs[i];
h[i].ctg = mi->seq[r->rid].name;
h[i].ctg_start = r->rs, h[i].ctg_end = r->re;
h[i].qry_start = r->qs, h[i].qry_end = r->qe;
h[i].strand = r->rev;
h[i].mapq = r->mapq;
h[i].is_primary = (r->id == r->parent);
h[i].n_cigar32 = r->p->n_cigar;
h[i].cigar32 = r->p->cigar;
}
return h;
h->ctg = mi->seq[r->rid].name;
h->ctg_len = mi->seq[r->rid].len;
h->ctg_start = r->rs, h->ctg_end = r->re;
h->qry_start = r->qs, h->qry_end = r->qe;
h->strand = r->rev? -1 : 1;
h->mapq = r->mapq;
h->blen = r->p->blen;
h->NM = r->p->n_diff;
h->trans_strand = r->p->trans_strand == 1? 1 : r->p->trans_strand == 2? -1 : 0;
h->is_primary = (r->id == r->parent);
h->n_cigar32 = r->p->n_cigar;
h->cigar32 = r->p->cigar;
}
static inline void mm_free_reg1(mm_reg1_t *r)