r1069: fixed a regression in comparison to v2.18
for PE short reads. An interesting omission. Resolves #776
This commit is contained in:
parent
e6cce019e4
commit
459ce04c84
5
lchain.c
5
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;
|
float lin_pen, log_pen;
|
||||||
lin_pen = chn_pen_gap * (float)dd + chn_pen_skip * (float)dg;
|
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
|
log_pen = dd >= 1? mg_log2(dd + 1) : 0.0f; // mg_log2() only works for dd>=2
|
||||||
if (is_cdna) {
|
if (is_cdna || sidi != sidj) {
|
||||||
if (dr > dq) sc -= (int)(lin_pen < log_pen? lin_pen : log_pen); // deletion or jump between paired ends
|
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);
|
||||||
} else sc -= (int)(lin_pen + .5f * log_pen);
|
} else sc -= (int)(lin_pen + .5f * log_pen);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue