bub disable

This commit is contained in:
chhylp123
2021-04-17 04:23:32 -04:00
parent 4bc43cec92
commit 49ead1ef35
2 changed files with 17 additions and 19 deletions
+10 -14
View File
@@ -12282,7 +12282,7 @@ kvec_t_u32_warp* result, uint32_t e_flag, uint32_t ava_flag, kvec_t_u32_warp* re
void clean_bubble_chain_by_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub) void clean_bubble_chain_by_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub)
{ {
double index_time = yak_realtime(); // double index_time = yak_realtime();
ma_ug_t *bs_ug = bub->b_ug; ma_ug_t *bs_ug = bub->b_ug;
uint32_t v, u, i, m, max_i, nv, rv, n_vx, root, flag_pri = 1, flag_aux = 2, flag_ava = 4, occ; uint32_t v, u, i, m, max_i, nv, rv, n_vx, root, flag_pri = 1, flag_aux = 2, flag_ava = 4, occ;
double w, cutoff = 2; double w, cutoff = 2;
@@ -12476,12 +12476,12 @@ void clean_bubble_chain_by_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub)
free(vis); free(is_vis); free(is_used); free(dedup); free(b.b.a); free(e_w); free(e_occ); free(vis); free(is_vis); free(is_used); free(dedup); free(b.b.a); free(e_w); free(e_occ);
kv_destroy(stack.a); kv_destroy(result.a); kv_destroy(res_utg.a); kv_destroy(edges.a); kv_destroy(stack.a); kv_destroy(result.a); kv_destroy(res_utg.a); kv_destroy(edges.a);
ma_ug_destroy(back_bs_ug); ma_ug_destroy(back_bs_ug);
fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time); // fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time);
} }
void append_boundary_chain_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub) void append_boundary_chain_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub)
{ {
double index_time = yak_realtime(); // double index_time = yak_realtime();
ma_ug_t *bs_ug = bub->b_ug; ma_ug_t *bs_ug = bub->b_ug;
uint32_t v, u, i, k, beg_idx, m, nv, n_vx, flag_pri = 1, flag_aux = 2, flag_ava = 4; uint32_t v, u, i, k, beg_idx, m, nv, n_vx, flag_pri = 1, flag_aux = 2, flag_ava = 4;
uint32_t root, rId_0, ori_0, root_0, new_bub; uint32_t root, rId_0, ori_0, root_0, new_bub;
@@ -12591,7 +12591,7 @@ void append_boundary_chain_hic(ma_ug_t* ug, kv_u_trans_t *ta, bubble_type* bub)
free(vis); free(is_vis); free(is_used); free(dedup); free(b.b.a); free(vis); free(is_vis); free(is_used); free(dedup); free(b.b.a);
kv_destroy(stack.a); kv_destroy(result.a); kv_destroy(res_utg.a); kv_destroy(stack.a); kv_destroy(result.a); kv_destroy(res_utg.a);
kv_destroy(edges.a); kv_destroy(edges.a);
fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time); // fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time);
} }
double get_specific_hic_weight_by_chain(uint32_t uid, kv_u_trans_t *ta, uint8_t* vis, uint8_t flag) double get_specific_hic_weight_by_chain(uint32_t uid, kv_u_trans_t *ta, uint8_t* vis, uint8_t flag)
@@ -12697,7 +12697,7 @@ uint8_t* vis, uint32_t n_utg, uint32_t chain_id)
void reorder_bubbles(bubble_type* bub, kv_u_trans_t *ta, uint32_t n_utg) void reorder_bubbles(bubble_type* bub, kv_u_trans_t *ta, uint32_t n_utg)
{ {
double index_time = yak_realtime(); // double index_time = yak_realtime();
uint8_t* vis = NULL; MALLOC(vis, n_utg); uint8_t* vis = NULL; MALLOC(vis, n_utg);
bub_sort_vec w_stack; kv_init(w_stack); bub_sort_vec w_stack; kv_init(w_stack);
uint32_t i; uint32_t i;
@@ -12709,20 +12709,16 @@ void reorder_bubbles(bubble_type* bub, kv_u_trans_t *ta, uint32_t n_utg)
} }
free(vis); kv_destroy(w_stack); free(vis); kv_destroy(w_stack);
fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time); // fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time);
} }
void update_trans_g(ha_ug_index* idx, kv_u_trans_t *ta, bubble_type* bub) void update_trans_g(ha_ug_index* idx, kv_u_trans_t *ta, bubble_type* bub)
{ {
double index_time = yak_realtime(); // double index_time = yak_realtime();
update_bubble_chain(idx->ug, bub, 0, 1); update_bubble_chain(idx->ug, bub, 0, 1);
// print_debug_bubble_graph(bub, idx->ug, "bub-0");
resolve_bubble_chain_tangle(idx->ug, bub); resolve_bubble_chain_tangle(idx->ug, bub);
// print_debug_bubble_graph(bub, idx->ug, "bub-1");
clean_bubble_chain_by_hic(idx->ug, ta, bub); clean_bubble_chain_by_hic(idx->ug, ta, bub);
// print_debug_bubble_graph(bub, idx->ug, "bub-2"); // print_debug_bubble_graph(bub, idx->ug, "bub-2");
@@ -12730,7 +12726,7 @@ void update_trans_g(ha_ug_index* idx, kv_u_trans_t *ta, bubble_type* bub)
append_boundary_chain_hic(idx->ug, ta, bub); append_boundary_chain_hic(idx->ug, ta, bub);
reorder_bubbles(bub, ta, idx->ug->g->n_seq); reorder_bubbles(bub, ta, idx->ug->g->n_seq);
fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time); // fprintf(stderr, "[M::%s::%.3f]\n", __func__, yak_realtime()-index_time);
} }
uint32_t get_max_unitig(H_partition* h, G_partition* g_p, hc_links* link, bubble_type* bub) uint32_t get_max_unitig(H_partition* h, G_partition* g_p, hc_links* link, bubble_type* bub)
@@ -13931,11 +13927,11 @@ int hic_short_align(const enzyme *fn1, const enzyme *fn2, ha_ug_index* idx)
} }
renew_kv_u_trans(&k_trans, &link, &sl.hits, &(idx->t_ch->k_trans), idx, &bub, s->s, 0); renew_kv_u_trans(&k_trans, &link, &sl.hits, &(idx->t_ch->k_trans), idx, &bub, s->s, 0);
if(bub.round_id == 0) init_phase(idx, &k_trans, &bub, s); // if(bub.round_id == 0) init_phase(idx, &k_trans, &bub, s);
update_trans_g(idx, &k_trans, &bub); update_trans_g(idx, &k_trans, &bub);
/*******************************for debug************************************/ /*******************************for debug************************************/
mc_solve(NULL, NULL, &k_trans, idx->ug, idx->read_g, 0.8, R_INF.trio_flag, mc_solve(NULL, NULL, &k_trans, idx->ug, idx->read_g, 0.8, R_INF.trio_flag,
/**(bub.round_id == 0? 1 : 0)**/0, s->s, 0, /**&bub**/NULL); (bub.round_id == 0? 1 : 0), s->s, 0, /**&bub**/NULL);
/*******************************for debug************************************/ /*******************************for debug************************************/
label_unitigs_sm(s->s, idx->ug); label_unitigs_sm(s->s, idx->ug);
/** /**
+7 -5
View File
@@ -1187,13 +1187,13 @@ double mc_solve_bp_cc(mc_bp_t *bp)
void mc_reset_z_all(const mc_match_t *ma, mc_svaux_t *b) void mc_reset_z_all(const mc_match_t *ma, mc_svaux_t *b)
{ {
t_w_t z[2]; // t_w_t z[2];
uint32_t k; uint32_t k;
for (k = 0; k < ma->n_seq; ++k) for (k = 0; k < ma->n_seq; ++k)
{ {
uint32_t o = ma->idx.a[k] >> 32; uint32_t o = ma->idx.a[k] >> 32;
uint32_t j, n = (uint32_t)ma->idx.a[k]; uint32_t j, n = (uint32_t)ma->idx.a[k];
z[0] = b->z[k].z[0]; z[1] = b->z[k].z[1]; // z[0] = b->z[k].z[0]; z[1] = b->z[k].z[1];
b->z[k].z[0] = b->z[k].z[1] = 0; b->z[k].z[0] = b->z[k].z[1] = 0;
for (j = 0; j < n; ++j) { for (j = 0; j < n; ++j) {
const mc_edge_t *e = &ma->ma.a[o + j]; const mc_edge_t *e = &ma->ma.a[o + j];
@@ -1201,8 +1201,8 @@ void mc_reset_z_all(const mc_match_t *ma, mc_svaux_t *b)
if (b->s[t] > 0) b->z[k].z[0] += e->w; if (b->s[t] > 0) b->z[k].z[0] += e->w;
else if (b->s[t] < 0) b->z[k].z[1] += e->w; else if (b->s[t] < 0) b->z[k].z[1] += e->w;
} }
if(z[0] != b->z[k].z[0]) fprintf(stderr, "ERROR1-all\n"); // if(z[0] != b->z[k].z[0]) fprintf(stderr, "ERROR1-all\n");
if(z[1] != b->z[k].z[1]) fprintf(stderr, "ERROR2-all\n"); // if(z[1] != b->z[k].z[1]) fprintf(stderr, "ERROR2-all\n");
} }
} }
@@ -1227,8 +1227,10 @@ void mc_solve_bp(mc_bp_t *bp)
void print_sc(const mc_opt_t *opt, const mc_match_t *ma, mc_svaux_t *b, t_w_t sc_opt, uint32_t n_iter) void print_sc(const mc_opt_t *opt, const mc_match_t *ma, mc_svaux_t *b, t_w_t sc_opt, uint32_t n_iter)
{ {
t_w_t w = mc_score(ma, b);
if(w != sc_opt) fprintf(stderr, "ERROR\n");
fprintf(stderr, "# iter: %u, sc_opt: %f, sc-local: %f, sc-global: %f\n", fprintf(stderr, "# iter: %u, sc_opt: %f, sc-local: %f, sc-global: %f\n",
n_iter, sc_opt, mc_score(ma, b), mc_score_all(ma, b)); n_iter, sc_opt, w, mc_score_all(ma, b));
} }
uint32_t mc_solve_cc(const mc_opt_t *opt, const mc_g_t *mg, mc_svaux_t *b, uint32_t cc_off, uint32_t cc_size) uint32_t mc_solve_cc(const mc_opt_t *opt, const mc_g_t *mg, mc_svaux_t *b, uint32_t cc_off, uint32_t cc_size)