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; }