]> git.donarmstrong.com Git - samtools.git/commitdiff
Cope with leading CIGAR H (or H and S) in 'samtools depad'
authorpeterjc <p.j.a.cock@googlemail.com>
Mon, 26 Mar 2012 14:28:49 +0000 (15:28 +0100)
committerpeterjc <p.j.a.cock@googlemail.com>
Mon, 26 Mar 2012 14:28:49 +0000 (15:28 +0100)
padding.c

index a3008fc54a531093200dd1b61960bf040a48cee8..43ff56e5bb33ef24e27a1016319e8105887b0a2a 100644 (file)
--- a/padding.c
+++ b/padding.c
@@ -94,6 +94,10 @@ int bam_pad2unpad(bamFile in, bamFile out)
                        }
                        unpad_seq(b, &q);
                        if (bam_cigar_op(cigar[0]) == BAM_CSOFT_CLIP) write_cigar(cigar2, n2, m2, cigar[0]);
+                       if (bam_cigar_op(cigar[0]) == BAM_CHARD_CLIP) {
+                               write_cigar(cigar2, n2, m2, cigar[0]);
+                               if (bam_cigar_op(cigar[1]) == BAM_CSOFT_CLIP) write_cigar(cigar2, n2, m2, cigar[1]);
+                       }
                        /* Include any pads if starts with an insert */
                        for (k = 0; k+1 < b->core.pos && !r.s[b->core.pos - k - 1]; ++k);
                        if (k) write_cigar(cigar2, n2, m2, bam_cigar_gen(k, BAM_CPAD));