]> git.donarmstrong.com Git - samtools.git/commitdiff
* samtools-0.1.3-16 (r267)
authorHeng Li <lh3@live.co.uk>
Tue, 5 May 2009 21:31:41 +0000 (21:31 +0000)
committerHeng Li <lh3@live.co.uk>
Tue, 5 May 2009 21:31:41 +0000 (21:31 +0000)
 * in sam_view.c, changed g_flag_on based on the suggestion by Angie Hinrichs

bamtk.c
sam_view.c

diff --git a/bamtk.c b/bamtk.c
index 31ef17ce48343d9275aadecaca5d5268d8195ea1..3a89dfbbe714ac3b986f5ffc5a39791febbc5265 100644 (file)
--- 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[]);
index f070b32a6f671c995be3733e6c9d0f1fbe166473..5bd679c5cc65eae574865dacb71082582e053d4c 100644 (file)
@@ -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