From: Heng Li Date: Tue, 5 May 2009 21:31:41 +0000 (+0000) Subject: * samtools-0.1.3-16 (r267) X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=964138e0a5d0948536b714f77d6188d4adc1c9b8;p=samtools.git * samtools-0.1.3-16 (r267) * in sam_view.c, changed g_flag_on based on the suggestion by Angie Hinrichs --- diff --git a/bamtk.c b/bamtk.c index 31ef17c..3a89dfb 100644 --- a/bamtk.c +++ b/bamtk.c @@ -3,7 +3,7 @@ #include "bam.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.1.3-15 (r266)" +#define PACKAGE_VERSION "0.1.3-16 (r267)" #endif int bam_taf2baf(int argc, char *argv[]); diff --git a/sam_view.c b/sam_view.c index f070b32..5bd679c 100644 --- a/sam_view.c +++ b/sam_view.c @@ -6,13 +6,13 @@ static int g_min_mapQ = 0, g_flag_on = 0, g_flag_off = 0; +#define __g_skip_aln(b) (((b)->core.qual < g_min_mapQ) || ((b->core.flag & g_flag_on) != g_flag_on) \ + || (b->core.flag & g_flag_off)) + // callback function for bam_fetch() static int view_func(const bam1_t *b, void *data) { - if (b->core.qual < g_min_mapQ) return 0; - if (g_flag_on && (b->core.flag & g_flag_on) == 0) return 0; - if (b->core.flag & g_flag_off) return 0; - samwrite((samfile_t*)data, b); + if (!__g_skip_aln(b)) samwrite((samfile_t*)data, b); return 0; } @@ -60,7 +60,8 @@ int main_samview(int argc, char *argv[]) bam1_t *b = bam_init1(); int r; while ((r = samread(in, b)) >= 0) // read one alignment from `in' - samwrite(out, b); // write the alignment to `out' + if (!__g_skip_aln(b)) + samwrite(out, b); // write the alignment to `out' if (r < -1) fprintf(stderr, "[main_samview] truncated file.\n"); bam_destroy1(b); } else { // retrieve alignments in specified regions