mirror of
https://github.com/chhylp123/hifiasm.git
synced 2026-10-10 01:30:56 +08:00
fix filter_short_ulalignments
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define HA_VERSION "0.19.5-r592"
|
#define HA_VERSION "0.19.5-r593"
|
||||||
|
|
||||||
#define VERBOSE 0
|
#define VERBOSE 0
|
||||||
|
|
||||||
|
|||||||
@@ -17891,11 +17891,12 @@ static void filter_short_ulalignments(void *data, long i, int tid) // callback f
|
|||||||
a = UL_INF.a[i].bb.a; a_n = UL_INF.a[i].bb.n;
|
a = UL_INF.a[i].bb.a; a_n = UL_INF.a[i].bb.n;
|
||||||
|
|
||||||
for (k = a_n - 1; k >= 0; k--) {
|
for (k = a_n - 1; k >= 0; k--) {
|
||||||
// if(i == 1126) {
|
|
||||||
// fprintf(stderr, "[M::%s::id->%ld::rlen->%u] (%ld) utg%.6dl, q::[%u, %u), t::[%u, %u), pidx::%u, aidx::%u, pdis::%u\n",
|
|
||||||
// __func__, i, UL_INF.a[i].rlen, k, (int32_t)a[k].hid+1, a[k].qs, a[k].qe, a[k].ts, a[k].te, a[k].pidx, a[k].aidx, a[k].pdis);
|
|
||||||
// }
|
|
||||||
p = &(a[k]);
|
p = &(a[k]);
|
||||||
|
// if(i == 338344) {
|
||||||
|
// fprintf(stderr, "+[M::%s::id->%ld::rlen->%u::glen->%u] (%ld) utg%.6dl, q::[%u, %u), t::[%u, %u), pidx::%u, aidx::%u, pdis::%u, a[k].base::%u, a[k].el::%u, a[k].pchain::%u\n",
|
||||||
|
// __func__, i, UL_INF.a[i].rlen, ug->u.a[p->hid].len, k, (int32_t)a[k].hid+1, a[k].qs, a[k].qe, a[k].ts, a[k].te, a[k].pidx, a[k].aidx, a[k].pdis,
|
||||||
|
// a[k].base, a[k].el, a[k].pchain);
|
||||||
|
// }
|
||||||
if(p->base || (!p->el) || (!p->pchain)) continue;
|
if(p->base || (!p->el) || (!p->pchain)) continue;
|
||||||
if(p->pidx == (uint32_t)-1) {
|
if(p->pidx == (uint32_t)-1) {
|
||||||
if(!ugl_cover_check(p->ts, p->te, &(ug->u.a[p->hid]))) {
|
if(!ugl_cover_check(p->ts, p->te, &(ug->u.a[p->hid]))) {
|
||||||
@@ -17928,9 +17929,32 @@ static void filter_short_ulalignments(void *data, long i, int tid) // callback f
|
|||||||
for (k = a_n - 1; k >= 0; k--) {
|
for (k = a_n - 1; k >= 0; k--) {
|
||||||
p = &(a[k]);
|
p = &(a[k]);
|
||||||
if(p->base || (!p->el) || (!p->pchain)) continue;
|
if(p->base || (!p->el) || (!p->pchain)) continue;
|
||||||
// if(i == 1126) {
|
if(p->pidx != (uint32_t)-1) {
|
||||||
// fprintf(stderr, "-[M::%s::id->%ld::rlen->%u] (%ld) utg%.6dl, q::[%u, %u), t::[%u, %u), pidx::%u, aidx::%u, pdis::%u\n",
|
if((a[p->pidx].aidx != ((uint32_t)k)) && (a[p->pidx].aidx == ((uint32_t)-1))) {
|
||||||
// __func__, i, UL_INF.a[i].rlen, k, (int32_t)a[k].hid+1, a[k].qs, a[k].qe, a[k].ts, a[k].te, a[k].pidx, a[k].aidx, a[k].pdis);
|
p->pidx = (uint32_t)-1;
|
||||||
|
} else {
|
||||||
|
assert(a[p->pidx].aidx == (uint32_t)k);
|
||||||
|
assert(a[p->pidx].pchain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(p->aidx != (uint32_t)-1) {
|
||||||
|
if((a[p->aidx].pidx != (uint32_t)k) && (a[p->aidx].pidx == ((uint32_t)-1))) {
|
||||||
|
p->aidx = (uint32_t)-1;
|
||||||
|
} else {
|
||||||
|
assert(a[p->aidx].pidx == (uint32_t)k);
|
||||||
|
assert(a[p->aidx].pchain);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (k = a_n - 1; k >= 0; k--) {
|
||||||
|
p = &(a[k]);
|
||||||
|
if(p->base || (!p->el) || (!p->pchain)) continue;
|
||||||
|
// if(i == 338344) {
|
||||||
|
// fprintf(stderr, "-[M::%s::id->%ld::rlen->%u::glen->%u] (%ld) utg%.6dl, q::[%u, %u), t::[%u, %u), pidx::%u, aidx::%u, pdis::%u, a[k].base::%u, a[k].el::%u, a[k].pchain::%u\n",
|
||||||
|
// __func__, i, UL_INF.a[i].rlen, ug->u.a[p->hid].len, k, (int32_t)a[k].hid+1, a[k].qs, a[k].qe, a[k].ts, a[k].te, a[k].pidx, a[k].aidx, a[k].pdis,
|
||||||
|
// a[k].base, a[k].el, a[k].pchain);
|
||||||
// }
|
// }
|
||||||
if(p->pidx != (uint32_t)-1) {
|
if(p->pidx != (uint32_t)-1) {
|
||||||
// if(!(a[p->pidx].aidx == (uint32_t)k)) {
|
// if(!(a[p->pidx].aidx == (uint32_t)k)) {
|
||||||
@@ -17941,6 +17965,10 @@ static void filter_short_ulalignments(void *data, long i, int tid) // callback f
|
|||||||
assert(a[p->pidx].pchain);
|
assert(a[p->pidx].pchain);
|
||||||
}
|
}
|
||||||
if(p->aidx != (uint32_t)-1) {
|
if(p->aidx != (uint32_t)-1) {
|
||||||
|
// if(a[p->aidx].pidx != (uint32_t)k) {
|
||||||
|
// fprintf(stderr, "[M::%s::id->%ld] name::%.*s, a_n::%ld, p->aidx::%u, p->pidx::%u, a[p->aidx].pidx::%u\n", __func__, i, (int32_t)UL_INF.nid.a[i].n, UL_INF.nid.a[i].a, a_n,
|
||||||
|
// p->aidx, p->pidx, a[p->aidx].pidx);
|
||||||
|
// }
|
||||||
assert(a[p->aidx].pidx == (uint32_t)k);
|
assert(a[p->aidx].pidx == (uint32_t)k);
|
||||||
assert(a[p->aidx].pchain);
|
assert(a[p->aidx].pchain);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user