Skip to content

Commit 8e904ca

Browse files
committed
Contig stitcher: improve visualizer finals calculation
* fix type error * improve parent-child check
1 parent 77d7d7c commit 8e904ca

File tree

3 files changed

+142
-79
lines changed

3 files changed

+142
-79
lines changed

micall/core/plot_contigs.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,7 @@ def record_bad_contig(contig: Contig, lst: List[Contig]):
599599
reduced_children_graph = reduced_closure(children_graph)
600600
transitive_parent_graph = transitive_closure(parent_graph)
601601
transitive_children_graph = transitive_closure(children_graph)
602+
eqv_parent_graph = reflexive_closure(symmetric_closure(transitive_parent_graph))
602603
sorted_roots = list(sorted(parent_name for
603604
parent_name in contig_map
604605
if parent_name not in parent_graph))
@@ -655,7 +656,7 @@ def set_query_position(contig: Contig):
655656
# Closing `temporary'
656657
for contig in contig_map:
657658
if contig in temporary:
658-
for clone in eqv_morphism_graph.get(contig, []):
659+
for clone in eqv_morphism_graph.get(contig, [contig]):
659660
temporary.add(clone)
660661

661662
def copy_takes_one_side(edge_table, overlap_xtake_map, overlap_xparent_map):
@@ -691,21 +692,23 @@ def copy_takes_one_side(edge_table, overlap_xtake_map, overlap_xparent_map):
691692
elif contig in bad_contigs:
692693
final_parts[contig] = True
693694

694-
# for join in last_join_points + sorted_sinks:
695695
for join in last_join_points + sorted_sinks:
696696
parents = parent_graph.get(join, [join])
697-
if not any(isinstance(parent, AlignedContig) for parent in parents):
697+
if not any(isinstance(contig_map[parent], AlignedContig) for parent in parents):
698698
parents = [join]
699699

700700
for contig in parents:
701701
for contig in reduced_morphism_graph.get(contig, [contig]):
702+
if contig in bad_contigs:
703+
continue
704+
702705
if any(contig in transitive_parent_graph.get(bad, []) for bad in bad_contigs):
703706
continue
704707

705708
if any(eqv in temporary for eqv in eqv_morphism_graph.get(contig, [contig])):
706709
continue
707710

708-
transitive_parent = transitive_parent_graph.get(contig, [])
711+
transitive_parent = eqv_parent_graph.get(contig, [contig])
709712
if any(parent in transitive_parent for parent in final_parts):
710713
continue
711714

micall/tests/data/stitcher_plots/test_correct_processing_complex_logs.svg

+106-66
Loading

micall/tests/data/stitcher_plots/test_partial_align_consensus_multiple_sequences.svg

+29-9
Loading

0 commit comments

Comments
 (0)