From 38fc5c88223cd700e8b5fb3370baa2709acff88c Mon Sep 17 00:00:00 2001 From: Heng Li Date: Fri, 22 Feb 2013 12:54:42 -0500 Subject: [PATCH] reduce mapQ when a read is moved --- bwamem_pair.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bwamem_pair.c b/bwamem_pair.c index 4c0b908..f5ab495 100644 --- a/bwamem_pair.c +++ b/bwamem_pair.c @@ -268,9 +268,10 @@ int mem_sam_pe(const mem_opt_t *opt, const bntseq_t *bns, const uint8_t *pac, co q_se[1] = q_se[1] > q_pe? q_se[1] : q_pe; extra_flag |= 2; } else { - if (o > a[0].a[0].score + a[1].a[0].score - opt->pen_unpaired) { // then move the pair - int tmp[2]; - q_pe = q_pe > 7? q_pe - 7 : 0; + int un = a[0].a[0].score + a[1].a[0].score - opt->pen_unpaired; + if (o > un) { // then move the pair + int tmp[2], q_un = (o - un) * 6; + q_pe = q_pe < q_un? q_pe : q_un; tmp[0] = q_se[0]; tmp[1] = q_se[1]; q_se[0] = z[0] == 0? q_se[0] : tmp[1] < q_pe? tmp[1] : q_pe; q_se[1] = z[1] == 0? q_se[1] : tmp[0] < q_pe? tmp[0] : q_pe;