packages feed

HsHTSLib-1.9.2: cbits/hs_htslib.c

#include "htslib/sam.h"

BGZF* get_bgzf(htsFile *h) { return h->fp.bgzf; }

char* get_header_text(bam_hdr_t *hdr) {
    return hdr->text;
}

uint32_t get_header_size(bam_hdr_t *hdr) {
    return hdr->l_text;
}

char* bam_chr(bam_hdr_t *h, int32_t i) {
    return h->target_name[i];
}

int bam_is_rev_(bam1_t *b) {
    return (b->core.flag&BAM_FREVERSE) != 0;
}

void bam_get_seq_(bam1_t *b, char *res, uint32_t l) {
    int32_t i;
    uint8_t *s = bam_get_seq(b);
    for (i = 0; i < l; ++i)
        res[i] = "=ACMGRSVTWYHKDBN"[bam_seqi(s, i)];
}

int bam_get_qual_(bam1_t *b, char *res, uint32_t l) {
    int32_t i;
    uint8_t *s = bam_get_qual(b);
    if (s[0] == 0xff) return 1;
    for (i = 0; i < l; ++i) { res[i] = s[i]; }
    return 0;
}

void bam_get_cigar_(bam1_t *b, int *num, char *str, uint32_t l) {
    uint16_t i;
    uint32_t *cigar = bam_get_cigar(b);
    for (i = 0; i < l; ++i) {
        num[i] = bam_cigar_oplen(cigar[i]);
        str[i] = bam_cigar_opchr(cigar[i]);
    }
}

uint8_t* bam_get_aux_(bam1_t *b) { return bam_get_aux(b); }

int bam_get_l_aux_(bam1_t *b) { return bam_get_l_aux(b); }

void bam_mark_dup(bam1_t *b) { b->core.flag |= BAM_FDUP; }