From 459ce04c8463331ae89ab3780fb02193a4289458 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Fri, 2 Jul 2021 11:45:21 -0400 Subject: [PATCH] r1069: fixed a regression in comparison to v2.18 for PE short reads. An interesting omission. Resolves #776 --- lchain.c | 5 +++-- main.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lchain.c b/lchain.c index ac60ddb..220e3e9 100644 --- a/lchain.c +++ b/lchain.c @@ -114,8 +114,9 @@ static inline int32_t comput_sc(const mm128_t *ai, const mm128_t *aj, int32_t ma float lin_pen, log_pen; lin_pen = chn_pen_gap * (float)dd + chn_pen_skip * (float)dg; log_pen = dd >= 1? mg_log2(dd + 1) : 0.0f; // mg_log2() only works for dd>=2 - if (is_cdna) { - if (dr > dq) sc -= (int)(lin_pen < log_pen? lin_pen : log_pen); // deletion or jump between paired ends + if (is_cdna || sidi != sidj) { + if (sidi != sidj && dr == 0) ++sc; // possibly due to overlapping paired ends; give a minor bonus + else if (dr > dq || sidi != sidj) sc -= (int)(lin_pen < log_pen? lin_pen : log_pen); // deletion or jump between paired ends else sc -= (int)(lin_pen + .5f * log_pen); } else sc -= (int)(lin_pen + .5f * log_pen); } diff --git a/main.c b/main.c index 233d7dd..7973aa0 100644 --- a/main.c +++ b/main.c @@ -7,7 +7,7 @@ #include "mmpriv.h" #include "ketopt.h" -#define MM_VERSION "2.20-r1068-dirty" +#define MM_VERSION "2.20-r1069-dirty" #ifdef __linux__ #include