X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam.c;h=ee7642b3434248c9b44ef918435f150f101cae00;hb=87d9ea7a580d0d1a58b8f0dca3ba3528ca118e46;hp=8b517565026f276d860f91634789ec8fa2f36195;hpb=d0e30eec1158752010659982342a611fc91ae8e3;p=samtools.git diff --git a/bam.c b/bam.c index 8b51756..ee7642b 100644 --- a/bam.c +++ b/bam.c @@ -292,9 +292,12 @@ void bam_view1(const bam_header_t *header, const bam1_t *b) free(s); } -const char *bam_get_library(const bam_header_t *header, const bam1_t *b) +// FIXME: we should also check the LB tag associated with each alignment +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 == 0) 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)); }