]> git.donarmstrong.com Git - samtools.git/blobdiff - bam_rmdup.c
A bug fix, "samtools view" is now working again.
[samtools.git] / bam_rmdup.c
index 321938f3215506dbf54ebc76666c40165d2024a6..5da946011f10ec72758c18cc10af75180a7d8f4e 100644 (file)
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
-#include <assert.h>
 #include <zlib.h>
 #include "bam.h"
 
@@ -76,6 +75,11 @@ void bam_rmdup_core(bamFile in, bamFile out)
                                        fprintf(stderr, "[bam_rmdup_core] %llu unmatched pairs\n", (long long)kh_size(del_set));
                                        clear_del_set(del_set);
                                }
+                               if ((int)c->tid == -1) { // append unmapped reads
+                                       bam_write1(out, b);
+                                       while (bam_read1(in, b) >= 0) bam_write1(out, b);
+                                       break;
+                               }
                                last_tid = c->tid;
                                fprintf(stderr, "[bam_rmdup_core] processing reference %s...\n", header->target_name[c->tid]);
                        }
@@ -124,7 +128,8 @@ int bam_rmdup(int argc, char *argv[])
 {
        bamFile in, out;
        if (argc < 3) {
-               fprintf(stderr, "Usage: samtools rmdup <input.srt.bam> <output.bam>\n");
+               fprintf(stderr, "Usage: samtools rmdup <input.srt.bam> <output.bam>\n\n");
+               fprintf(stderr, "Note: Picard is recommended for this task.\n");
                return 1;
        }
        in = (strcmp(argv[1], "-") == 0)? bam_dopen(fileno(stdin), "r") : bam_open(argv[1], "r");