@@ -599,6 +599,7 @@ def record_bad_contig(contig: Contig, lst: List[Contig]):
599
599
reduced_children_graph = reduced_closure (children_graph )
600
600
transitive_parent_graph = transitive_closure (parent_graph )
601
601
transitive_children_graph = transitive_closure (children_graph )
602
+ eqv_parent_graph = reflexive_closure (symmetric_closure (transitive_parent_graph ))
602
603
sorted_roots = list (sorted (parent_name for
603
604
parent_name in contig_map
604
605
if parent_name not in parent_graph ))
@@ -655,7 +656,7 @@ def set_query_position(contig: Contig):
655
656
# Closing `temporary'
656
657
for contig in contig_map :
657
658
if contig in temporary :
658
- for clone in eqv_morphism_graph .get (contig , []):
659
+ for clone in eqv_morphism_graph .get (contig , [contig ]):
659
660
temporary .add (clone )
660
661
661
662
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):
691
692
elif contig in bad_contigs :
692
693
final_parts [contig ] = True
693
694
694
- # for join in last_join_points + sorted_sinks:
695
695
for join in last_join_points + sorted_sinks :
696
696
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 ):
698
698
parents = [join ]
699
699
700
700
for contig in parents :
701
701
for contig in reduced_morphism_graph .get (contig , [contig ]):
702
+ if contig in bad_contigs :
703
+ continue
704
+
702
705
if any (contig in transitive_parent_graph .get (bad , []) for bad in bad_contigs ):
703
706
continue
704
707
705
708
if any (eqv in temporary for eqv in eqv_morphism_graph .get (contig , [contig ])):
706
709
continue
707
710
708
- transitive_parent = transitive_parent_graph .get (contig , [])
711
+ transitive_parent = eqv_parent_graph .get (contig , [contig ])
709
712
if any (parent in transitive_parent for parent in final_parts ):
710
713
continue
711
714
0 commit comments