free(s);
}
-const char *bam_get_library(const bam_header_t *header, const bam1_t *b)
+const char *bam_get_library(bam_header_t *h, const bam1_t *b)
{
const uint8_t *rg;
+ if (h->dict == 0) h->dict = sam_header_parse2(h->text);
+ if (h->rg2lib) h->rg2lib = sam_header2tbl(h->dict, "RG", "ID", "LB");
rg = bam_aux_get(b, "RG");
- return (rg == 0)? 0 : sam_tbl_get(header->rg2lib, (const char*)(rg + 1));
+ return (rg == 0)? 0 : sam_tbl_get(h->rg2lib, (const char*)(rg + 1));
}
char *bam_format1_core(const bam_header_t *header, const bam1_t *b, int of);
- const char *bam_get_library(const bam_header_t *header, const bam1_t *b);
+ const char *bam_get_library(bam_header_t *header, const bam1_t *b);
/*! @typedef
@abstract Structure for one alignment covering the pileup position.
header->text[header->l_text] = 0;
}
-int sam_header_parse_rg(bam_header_t *h)
-{
- if (h->dict == 0) h->dict = sam_header_parse2(h->text);
- if (h->rg2lib) h->rg2lib = sam_header2tbl(h->dict, "RG", "ID", "LB");
- return sam_tbl_size(h->rg2lib);
-}
-
int sam_header_parse(bam_header_t *h)
{
char **tmp;
fprintf(stderr, "[samopen] no @SQ lines in the header.\n");
} else fprintf(stderr, "[samopen] SAM header is present: %d sequences.\n", fp->header->n_targets);
}
- sam_header_parse_rg(fp->header);
} else if (mode[0] == 'w') { // write
fp->header = bam_header_dup((const bam_header_t*)aux);
if (mode[1] == 'b') { // binary