X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_mate.c;h=61f808a26402e9bd1d332f40074b4b3ca1f89dd3;hb=1443ba19e5d810a30b7918f6213e3badc39597f0;hp=bb5360521adaa1cc8b785b3d7d0f1bbd58bae8fd;hpb=635998cfe030da5f3dbec42a6daa3ca82fa5c871;p=samtools.git diff --git a/bam_mate.c b/bam_mate.c index bb53605..61f808a 100644 --- a/bam_mate.c +++ b/bam_mate.c @@ -29,9 +29,9 @@ void bam_mating_core(bamFile in, bamFile out) pre5 = (pre->core.flag&BAM_FREVERSE)? bam_calend(&pre->core, bam1_cigar(pre)) : pre->core.pos; cur->core.isize = pre5 - cur5; pre->core.isize = cur5 - pre5; } else cur->core.isize = pre->core.isize = 0; - if (pre->core.flag&BAM_FREVERSE) cur->core.flag |= BAM_FREVERSE; + if (pre->core.flag&BAM_FREVERSE) cur->core.flag |= BAM_FMREVERSE; else cur->core.flag &= ~BAM_FMREVERSE; - if (cur->core.flag&BAM_FREVERSE) pre->core.flag |= BAM_FREVERSE; + if (cur->core.flag&BAM_FREVERSE) pre->core.flag |= BAM_FMREVERSE; else pre->core.flag &= ~BAM_FMREVERSE; if (cur->core.flag & BAM_FUNMAP) { pre->core.flag |= BAM_FMUNMAP; pre->core.flag &= ~BAM_FPROPER_PAIR; } if (pre->core.flag & BAM_FUNMAP) { cur->core.flag |= BAM_FMUNMAP; cur->core.flag &= ~BAM_FPROPER_PAIR; } @@ -40,8 +40,10 @@ void bam_mating_core(bamFile in, bamFile out) has_prev = 0; } else { // unpaired or singleton pre->core.mtid = -1; pre->core.mpos = -1; pre->core.isize = 0; - pre->core.flag |= BAM_FMUNMAP; - pre->core.flag &= ~BAM_FMREVERSE & ~BAM_FPROPER_PAIR; + if (pre->core.flag & BAM_FPAIRED) { + pre->core.flag |= BAM_FMUNMAP; + pre->core.flag &= ~BAM_FMREVERSE & ~BAM_FPROPER_PAIR; + } bam_write1(out, pre); } } else has_prev = 1;