From 5ca8f6282a5369950903d09029d73d43ee2ac959 Mon Sep 17 00:00:00 2001 From: 1dayac Date: Sun, 3 Sep 2023 21:50:08 +0300 Subject: [PATCH] Here --- .../src/projects/spades/molecule_extraction_stage.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/assembler/src/projects/spades/molecule_extraction_stage.cpp b/assembler/src/projects/spades/molecule_extraction_stage.cpp index 938f18fd85..5b7351b7df 100644 --- a/assembler/src/projects/spades/molecule_extraction_stage.cpp +++ b/assembler/src/projects/spades/molecule_extraction_stage.cpp @@ -31,6 +31,7 @@ namespace debruijn_graph { std::set used_edges_; PathStorage temp_set_; std::vector getForwardIntersect(EdgeId e, const std::unordered_set &edge_set) const { + DEBUG("Here"); auto edges = gp_.g.IncidentEdges(gp_.g.EdgeEnd(e)); std::vector filtered; for (auto temp_e : edges) { @@ -42,6 +43,7 @@ namespace debruijn_graph { } std::vector getReverseIntersect(EdgeId e, const std::unordered_set &edge_set) const { + DEBUG("Here"); auto edges = gp_.g.IncidentEdges(gp_.g.EdgeStart(e)); std::vector filtered; for (auto temp_e : edges) { @@ -92,6 +94,7 @@ namespace debruijn_graph { void extendBackward(const std::unordered_set &edge_set, std::deque &linear_path, EdgeId e) { + DEBUG("Here"); auto extensions = getReverseIntersect(e, edge_set); for (auto prev_edge : extensions) { linear_path.push_front(prev_edge); @@ -104,6 +107,7 @@ namespace debruijn_graph { void extendForward(const GraphComponent &comp, std::deque &linear_path, std::set &used_edges) { + DEBUG("Here"); EdgeId e = linear_path.back(); if (comp.VertexInDegree(gp_.g.EdgeEnd(e)) != 1 || comp.VertexOutDegree(gp_.g.EdgeEnd(e)) != 1 ) { @@ -292,6 +296,8 @@ namespace debruijn_graph { edge_set = initial_component.edges(); for (auto e : edge_set) { if (!used_edges_.count(e)) { + DEBUG("Here"); + std::deque linear_path; linear_path.push_back(e); used_edges_.insert(e); @@ -299,7 +305,10 @@ namespace debruijn_graph { extendForward(edge_set, linear_path, e); extendBackward(edge_set, linear_path, e); auto component = GraphComponent::FromEdges(gp_.g, linear_path, true); + DEBUG("Here"); component.ClipTips(); + DEBUG("Here"); + if (IsSimplePath(component)) { DEBUG("Component is a simple path"); std::vector path; @@ -316,6 +325,7 @@ namespace debruijn_graph { } } } + DEBUG("Here"); used_edges_.clear(); return temp_set_; }