From f8941aebcb194dbe1ff32c161d3cd51d80805d5d Mon Sep 17 00:00:00 2001 From: Heng Li Date: Mon, 13 Jul 2009 09:12:57 +0000 Subject: [PATCH] * samtools-0.1.5-5 (r395) * added bam_pileup_file() and removed bam_lpileup_file() --- bam.h | 5 ++--- bam_lite.c | 16 ++++++++++++++++ bam_lpileup.c | 16 ---------------- bam_pileup.c | 16 ++++++++++++++++ bamtk.c | 2 +- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/bam.h b/bam.h index 124817e..64867f1 100644 --- a/bam.h +++ b/bam.h @@ -509,6 +509,8 @@ extern "C" { */ int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf); + int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data); + struct __bam_lplbuf_t; typedef struct __bam_lplbuf_t bam_lplbuf_t; @@ -523,9 +525,6 @@ extern "C" { /*! @abstract bam_plbuf_push() equivalent with level calculated. */ int bam_lplbuf_push(const bam1_t *b, bam_lplbuf_t *buf); - /*! @abstract bam_plbuf_file() equivalent with level calculated. */ - int bam_lpileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data); - struct __bam_index_t; typedef struct __bam_index_t bam_index_t; diff --git a/bam_lite.c b/bam_lite.c index 12c719c..93af6c4 100644 --- a/bam_lite.c +++ b/bam_lite.c @@ -552,6 +552,22 @@ int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf) return 0; } +int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data) +{ + bam_plbuf_t *buf; + int ret; + bam1_t *b; + b = bam_init1(); + buf = bam_plbuf_init(func, func_data); + bam_plbuf_set_mask(buf, mask); + while ((ret = bam_read1(fp, b)) >= 0) + bam_plbuf_push(b, buf); + bam_plbuf_push(0, buf); + bam_plbuf_destroy(buf); + bam_destroy1(b); + return 0; +} + /********************** *** from bam_aux.c *** **********************/ diff --git a/bam_lpileup.c b/bam_lpileup.c index 425290e..d4dd63b 100644 --- a/bam_lpileup.c +++ b/bam_lpileup.c @@ -196,19 +196,3 @@ int bam_lplbuf_push(const bam1_t *b, bam_lplbuf_t *tv) { return bam_plbuf_push(b, tv->plbuf); } - -int bam_lpileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data) -{ - bam_lplbuf_t *buf; - int ret; - bam1_t *b; - b = (bam1_t*)calloc(1, sizeof(bam1_t)); - buf = bam_lplbuf_init(func, func_data); - bam_plbuf_set_mask(buf->plbuf, mask); - while ((ret = bam_read1(fp, b)) >= 0) - bam_lplbuf_push(b, buf); - bam_lplbuf_push(0, buf); - bam_lplbuf_destroy(buf); - free(b->data); free(b); - return 0; -} diff --git a/bam_pileup.c b/bam_pileup.c index 3ffd528..d2d2aa6 100644 --- a/bam_pileup.c +++ b/bam_pileup.c @@ -212,3 +212,19 @@ int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf) } return 0; } + +int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data) +{ + bam_plbuf_t *buf; + int ret; + bam1_t *b; + b = bam_init1(); + buf = bam_plbuf_init(func, func_data); + bam_plbuf_set_mask(buf, mask); + while ((ret = bam_read1(fp, b)) >= 0) + bam_plbuf_push(b, buf); + bam_plbuf_push(0, buf); + bam_plbuf_destroy(buf); + bam_destroy1(b); + return 0; +} diff --git a/bamtk.c b/bamtk.c index 0846a70..e071d31 100644 --- a/bamtk.c +++ b/bamtk.c @@ -4,7 +4,7 @@ #include "bam.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.1.5-4 (r394)" +#define PACKAGE_VERSION "0.1.5-5 (r395)" #endif int bam_taf2baf(int argc, char *argv[]); -- 2.39.2