]> git.donarmstrong.com Git - samtools.git/commitdiff
Check reference length in BAM header against embedded reference in 'samtools depad'
authorpeterjc <p.j.a.cock@googlemail.com>
Mon, 26 Mar 2012 14:57:46 +0000 (15:57 +0100)
committerpeterjc <p.j.a.cock@googlemail.com>
Mon, 26 Mar 2012 14:57:46 +0000 (15:57 +0100)
padding.c

index f839c3bc57d37fc153880fb12a17230dcdb8b0f1..cf8ebfdce26b93bfefc2c794a49908c2fc61d48c 100644 (file)
--- a/padding.c
+++ b/padding.c
@@ -76,6 +76,10 @@ int bam_pad2unpad(bamFile in, bamFile out)
                        */
                        r_tid = b->core.tid;
                        unpad_seq(b, &r);
+                       if (h->target_len[r_tid] != r.l) {
+                               fprintf(stderr, "[depad] ERROR: (Padded) length of %s is %i in BAM header, but %i in embedded reference\n", bam1_qname(b), h->target_len[r_tid], r.l);
+                               return -1;
+                       }
                        write_cigar(cigar2, n2, m2, bam_cigar_gen(b->core.l_qseq, BAM_CMATCH));
                        replace_cigar(b, n2, cigar2);
                        posmap = realloc(posmap, r.m * sizeof(int));