From 49108994778128aba137042003d92e13b7a59961 Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Mon, 12 Oct 2026 14:23:06 +0200 Subject: [PATCH 1/7] Change tutorial to use a bidirected graph instead of a directed graph --- bdsg/docs/img/exampleGraph.png | Bin 30106 -> 58513 bytes bdsg/docs/img/exampleGraph.svg | 566 +++++++++++++++++++++++++++++ bdsg/docs/img/exampleGraphPath.png | Bin 30352 -> 60445 bytes bdsg/docs/rst/tutorial.rst | 72 ++-- 4 files changed, 606 insertions(+), 32 deletions(-) mode change 100755 => 100644 bdsg/docs/img/exampleGraph.png create mode 100644 bdsg/docs/img/exampleGraph.svg mode change 100755 => 100644 bdsg/docs/img/exampleGraphPath.png diff --git a/bdsg/docs/img/exampleGraph.png b/bdsg/docs/img/exampleGraph.png old mode 100755 new mode 100644 index 77e937e7cf83aaab2580c9de61ab28bce4376ae9..c30bd6ad312faf8e0b165937842905d6130a6fd8 GIT binary patch literal 58513 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 ZvM1fq-sH(~2>PjBQjk@F7fPE1{2vgAaXtV5 diff --git a/bdsg/docs/img/exampleGraph.svg b/bdsg/docs/img/exampleGraph.svg new file mode 100644 index 00000000..9ab41f81 --- /dev/null +++ b/bdsg/docs/img/exampleGraph.svg @@ -0,0 +1,566 @@ + + + + + + + + + + + + + CGA + + + + + + TTGG + + + + + + CCGT + + + + + + C + + + + + + GT + + + + + + GATAA + + + + + + CGG + + + + + + ACA + + + + + + GCCG + + + + + + + ATATAAC + + + + + + + + + + + + + + n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10 + + + + diff --git a/bdsg/docs/img/exampleGraphPath.png b/bdsg/docs/img/exampleGraphPath.png old mode 100755 new mode 100644 index 00490248022660e625bd5f174ab4a8df327fa539..93fe67fa9a005087256f085131a2b76a9094091c GIT binary patch literal 60445 zcmY(q1z3~s7dJjaLIk86bd+?5QYzg7BGM(JJ4Tm5i!_r`L6DFdQX>Wk2#l7JjZzv$ zNsf3QzW(0#fBkn|L)hH2`?=3KpYu7NbMCk&dg|minQwwXAaYF&6+;l{#s~<6M@d2i zyz+Q!B@p*XNq z>EoD#m1hQl?tnB^9z6}r-NHa~X%8=Y_of_o?%_w%;>pF@-7t7kLrC{XP^^cZgyE$ytmXc5b-$ zB{4!`{uH~~XbV{dehD4KQ2l?8lx8qFTV(A2duZ4f5jOw7zhX5=xJOh~{@>$qx{MzP z{J+QGYnVI57NHx7AgH(rm-;42OGU*{Oc%@#yr0S;;fj|?9E>;Igli&aO^wxnJ3tDf zCWGA0ULo`a{p7)MC^u0rg=+QAGM5FW1#xJB@jg;Tg-a;uAp@|wzWE8{$n>TMITNrJ zQGBO@-hcuEtqhi5M5rtOaw89=55d(Uc1${NtEzC3Ph4+73ZxfhhUf007O~v8y+_!0aBnvPX@7%4 zUqxjpd*;o`8t~RPq?lH|_Jf+R;uW>iEG)YeT--*MQPHdkBpVkD1zT(W}^4NoxMZYfI{;!pOzonl(y!sERz8r9GqouRQ8Cq<##Q zFAe8#m|3Mq&f9r<-r!;23k6oyjSAWyLJRu3BYTLpx@Ez1vfW)leaB|bl z=?6z=JkYD^%M@)ID7fRx?r>xPRQ z<6a?P8{CGdDvS6shC<^D5)BbPK!i9(j|nn>T0~VDOm6KaZ9qR)`u!e#Tl!nB9^|j80@AdhDpjAX_Jwh89jUQp|phWJ#tuv{G9&isI80=;8c%KynEzriKtgh!X z$3sogn@SVBqRx}~3HtfGf&AFR9==~&c&sEvWl?h!(^S*)?Yk-}MbH1Y`8J_~rtAeSlXUO$xX%h5VinRCFe7NFsH3;Nt;lGrPP(}3CYd2q!5gv z_h(q%4ITU=qGz||x9fR3bU)lhVhCwsFIlr85CSqD^-9u3g*gY@Cv5LaZ{RlFWZLZ4k#E6730~+|;9) z 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 literal 30352 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 Date: Mon, 12 Oct 2026 14:28:30 +0200 Subject: [PATCH 2/7] Fix hyperlinks maybe --- bdsg/docs/rst/tutorial.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bdsg/docs/rst/tutorial.rst b/bdsg/docs/rst/tutorial.rst index a1ff6f7a..1354f53b 100644 --- a/bdsg/docs/rst/tutorial.rst +++ b/bdsg/docs/rst/tutorial.rst @@ -11,12 +11,11 @@ Tutorial ************* Preliminaries ************* -See the [vg wiki](https://github.com/vgteam/vg/wiki#understanding-our-data-formats) for an explanation of our variation graph data model. +See the `vg wiki `_ for an explanation of our variation graph data model. Graph Objects ============= - -`libbdsg` implements the [*handlegraph*](https://github.com/vgteam/libhandlegraph) interface in which all objects in the graph are accessed using [*handles*](https://github.com/vgteam/libbdsg/blob/master/bdsg/docs/handlegraph.md). +`libbdsg` implements the `*handlegraph* `_ interface in which all objects in the graph are accessed using `*handles* . *Edges* and *nodes* are accessed through an implementation of the :class:`bdsg.handlegraph.HandleGraph` interface. Individual nodes in the graph are pointed at by :class:`bdsg.handlegraph.handle_t` objects. Paths exist in graphs that implement the :class:`bdsg.handlegraph.PathHandleGraph`. Paths are accessed through :class:`bdsg.handlegraph.path_handle_t`, which is a series of :class:`bdsg.handlegraph.step_handle_t` linked together. Each :class:`bdsg.handlegraph.step_handle_t` points to the node in that step, and also contains directional information regarding the nodes preceeding and following it. From 7c0293e1ebeab45c29a557afa160bd7403bc0725 Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Mon, 12 Oct 2026 16:38:22 +0200 Subject: [PATCH 3/7] Add section on PositionOverlay --- bdsg/docs/rst/tutorial.rst | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/bdsg/docs/rst/tutorial.rst b/bdsg/docs/rst/tutorial.rst index 1354f53b..ea0b0ba9 100644 --- a/bdsg/docs/rst/tutorial.rst +++ b/bdsg/docs/rst/tutorial.rst @@ -15,7 +15,7 @@ See the `vg wiki `_ interface in which all objects in the graph are accessed using `*handles* . +`libbdsg` implements the `handlegraph `_ interface in which all objects in the graph are accessed using `handles `_. *Edges* and *nodes* are accessed through an implementation of the :class:`bdsg.handlegraph.HandleGraph` interface. Individual nodes in the graph are pointed at by :class:`bdsg.handlegraph.handle_t` objects. Paths exist in graphs that implement the :class:`bdsg.handlegraph.PathHandleGraph`. Paths are accessed through :class:`bdsg.handlegraph.path_handle_t`, which is a series of :class:`bdsg.handlegraph.step_handle_t` linked together. Each :class:`bdsg.handlegraph.step_handle_t` points to the node in that step, and also contains directional information regarding the nodes preceeding and following it. @@ -155,6 +155,40 @@ Which will output the following: ACA ATATAAC +******************** +Using Graph Overlays +******************** + +The libhandlegraph library defines generic graph interfaces that describe different functionalities of a graph. +Overlays are wrappers on top of a graph that add these functionalities. +For example, the :class:`PathPositionHandleGraph` defines an interface for accessing the sequence positions along paths in a graph. +The :class:`PositionOverlay` and :class:`ReferencePathOverlay` are two different implementations of overlays that can be applied to a graph to add this functionality. +In C++, :class:`OverlayHelpers` are used to add specific combinations of overlays to graphs. + +PositionOverlay +=============== + +A :class:`PositionOverlay` adds the :class:`PathPositionHandleGraph` functionality to a graph, allowing it to find the sequence positions along paths. +For example, using the same example graph as above, say we want to find the offset along the path of node `n5`. +We do this by creating a `PositionOverlay`, then getting a `step_handle_t` that points to the node `n5` on the path `path`. +The `PositionOverlay` can be queried using :func:`get_position_of_step` to find the position of the given step. + +.. testcode:: + + # Get the overlay + position_graph = bdsg.bdsg.PositionOverlay(gr) + + # Get the step_handle_t to node n5 on path. Since there is only one path in the graph there will only be one step + n5_steps = [] + gr.for_each_step_on_handle(nodes[5], lambda y : n5_steps.append(y) or True) + + # Get the path offset of the step + print(position_graph.get_position_of_step(n5_steps[0])) + +.. testoutput:: + + 11 + ************************* Saving and Loading Graphs ************************* From 1e6ea3865cfdb57275712dc151e9b4f1a50a702c Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Mon, 12 Oct 2026 17:42:31 +0200 Subject: [PATCH 4/7] Add distance index example --- bdsg/docs/assets/simple_nested_chain.dist | Bin 0 -> 1024 bytes bdsg/docs/assets/simple_nested_chain.hg | Bin 0 -> 904 bytes bdsg/docs/assets/simple_nested_chain.png | Bin 0 -> 74100 bytes bdsg/docs/assets/simple_nested_chain.svg | 729 ++++++++++++++++++++++ bdsg/docs/rst/tutorial.rst | 108 +++- 5 files changed, 828 insertions(+), 9 deletions(-) create mode 100644 bdsg/docs/assets/simple_nested_chain.dist create mode 100644 bdsg/docs/assets/simple_nested_chain.hg create mode 100644 bdsg/docs/assets/simple_nested_chain.png create mode 100644 bdsg/docs/assets/simple_nested_chain.svg diff --git a/bdsg/docs/assets/simple_nested_chain.dist b/bdsg/docs/assets/simple_nested_chain.dist new file mode 100644 index 0000000000000000000000000000000000000000..4336a427aff6e9dbc57223787c78d3ee0335a071 GIT binary patch literal 1024 zcmeH@F;2rk5JkW3kN~1^L4hJD=u%L)K}v-zPLK}DbVSsYk#LcM4vt{oBsA0FgyZh(=`7=8Y-TLF(<2jQ@isvz(@-eMl`YsBly)fRl$-T=z?bqWnj|RC$ zQY+PtSJInP*V3W1D71ySF}5N>yc)ASGH_>SHCDsp(SY7Fd7m@04oN&0QZw!QxGHihM-|d8PyYHbCr!=#^wf7!61d1adm27FgP)0@IX_8=ySz&nFYW)=@VWa zp~G(=YXO^lkZt?DnTS#_P5F{G1)yHBHy`J~B*QqT#&|NEwg0p{59@75wq6YRW{W`~ s-RFS;$AE+h<2>2aFm+~)*PPs4 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 Ca8i^2 literal 0 HcmV?d00001 diff --git a/bdsg/docs/assets/simple_nested_chain.svg b/bdsg/docs/assets/simple_nested_chain.svg new file mode 100644 index 00000000..d0fbb0d2 --- /dev/null +++ b/bdsg/docs/assets/simple_nested_chain.svg @@ -0,0 +1,729 @@ + + + + + + + + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + C + + + + + + + + + + + + n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10 + + + + + + Chain 1-10 + + + Snarl 1-4 + + + + Snarl 4-8 + + + + + Chain 5-7 + + + Snarl 5-7 + + + + Snarl 8-10 + + + + + + + + + diff --git a/bdsg/docs/rst/tutorial.rst b/bdsg/docs/rst/tutorial.rst index ea0b0ba9..42a2a93b 100644 --- a/bdsg/docs/rst/tutorial.rst +++ b/bdsg/docs/rst/tutorial.rst @@ -161,22 +161,23 @@ Using Graph Overlays The libhandlegraph library defines generic graph interfaces that describe different functionalities of a graph. Overlays are wrappers on top of a graph that add these functionalities. -For example, the :class:`PathPositionHandleGraph` defines an interface for accessing the sequence positions along paths in a graph. -The :class:`PositionOverlay` and :class:`ReferencePathOverlay` are two different implementations of overlays that can be applied to a graph to add this functionality. -In C++, :class:`OverlayHelpers` are used to add specific combinations of overlays to graphs. +For example, the :class:`bdsg.handlegraph.PathPositionHandleGraph` defines an interface for accessing the sequence positions along paths in a graph. +The :class:`bdsg.bdsg.PositionOverlay` and :class:`bdsg.bdsg.ReferencePathOverlay` are two different implementations of overlays that can be applied to a graph to add this functionality. +In C++, :class:`bdsg.bdsg.OverlayHelpers` are used to add specific combinations of overlays to graphs. -PositionOverlay -=============== +bdsg.bdsg.PositionOverlay +========================= -A :class:`PositionOverlay` adds the :class:`PathPositionHandleGraph` functionality to a graph, allowing it to find the sequence positions along paths. +A :class:`bdsg.bdsg.PositionOverlay` adds the :class:`bdsg.handlegraph.PathPositionHandleGraph` functionality to a graph, allowing it to find the sequence positions along paths. For example, using the same example graph as above, say we want to find the offset along the path of node `n5`. -We do this by creating a `PositionOverlay`, then getting a `step_handle_t` that points to the node `n5` on the path `path`. -The `PositionOverlay` can be queried using :func:`get_position_of_step` to find the position of the given step. +We do this by creating a `bdsg.bdsg.PositionOverlay`, then getting a `bdsg.handlegraph.step_handle_t` that points to the node `n5` on the path `path`. +The `bdsg.bdsg.PositionOverlay` can be queried using :func:`bdsg.handlegraph.get_position_of_step` to find the position of the given step. .. testcode:: + from bdsg.bdsg import PositionOverlay # Get the overlay - position_graph = bdsg.bdsg.PositionOverlay(gr) + position_graph = PositionOverlay(gr) # Get the step_handle_t to node n5 on path. Since there is only one path in the graph there will only be one step n5_steps = [] @@ -189,6 +190,95 @@ The `PositionOverlay` can be queried using :func:`get_position_of_step` to find 11 +************************** +Using a SnarlDistanceIndex +************************** + +A :class:`bdsg.bdsg.SnarlDistanceIndex` implements the :class:`bdsg.handlegraph.SnarlDecomposition` interface and additionally adds minimum distance finding functionality. +It can be used to explore the snarl decomposition of a graph. +Similar to a :class:`bdsg.handlegraph.handle_t` used to point to a node in a graph, a :class:`bdsg.handlegraph.net_handle_t` is used to point to a node in the snarl tree, which represents a snarl, chain, or node in the graph. +The snarl decomposition is described in more detail in the `vg wiki `_. + +libbdsg does not support building a distance index, it must be build using the `vg toolkit `_. + +.. code-block:: bash + + vg index -j example_graph.dist example_graph.hg + + + +Traversing the Distance Index +============================= +We will use the following graph and corresponding distance index for this example. + +.. image:: /assests/simple_nested_chain.png + +Start by loading the distance index. +.. testcode:: + from bdsg.bdsg import SnarlDistanceIndex + + distance_index = SnarlDistanceIndex() + distance_index.deserialize("/assets/simple_nested_chain.dist") + + graph = bdsg.bdsg.HashGraph() + graph.deserialize("/assets/simple_nested_chain.hg") + +Starting from a node in the graph, its ancestors in the snarl decomposition can be found using :func:`bdsg.handlegraph.SnarlDecomposition.get_parent`. +Lets look for the ancestors of node `n6` in the snarl decomposition. + +.. testcode:: + + net = distance_index.get_node_net_handle(6) + while not distance_index.is_root(net): + print(distance_index.net_handle_as_string(net)) + net = distance_index.get_parent(net) + +In the snarl decomposition, a node is always the child of a chain, which may contain only that node. +Node `n6` therefore has a parent that is a chain containing only node `n6`. + +.. testoutput:: + node 6fd + node 6fd pretending to be a chain in a simple snarl + simple snarl 5fd->7fdtraversing start->end + chain 5fd->7fdtraversing start->end + snarl 4fd->8fdtraversing start->end + chain 1fd->10fdtraversing start->end + +Now lets go in the other direction, finding the descendants of a net, starting from the root. + +.. testcode:: + root = distance_index.get_root() + + children = [] + def get_and_print_child(net): + nonlocal children + print(distance_index.net_handle_as_string(net)) + children.append(net) + return True + distance_index.for_each_child(root, get_and_print_child) + + chain = children[0] + distance_index.for_each_child(chain, get_and_print_child) + +The root contains only one child, the top-level chain. +The top-level chain contains node 1, snarl 1-4, node 4, etc. + +.. testoutput:: + chain 1fd->10fdtraversing start->end + True + node 1fd + simple snarl 1fd->4fdtraversing start->end + node 4fd + snarl 4fd->8fdtraversing start->end + node 8fd + simple snarl 8fd->10fdtraversing start->end + node 10fd + True + + + + + ************************* Saving and Loading Graphs ************************* From b5f08ed5638194bac8a59449f8919e21153f45b5 Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Tue, 13 Oct 2026 10:45:42 +0200 Subject: [PATCH 5/7] Add more distance index tutorial --- bdsg/docs/rst/tutorial.rst | 146 +++++++++++++++++++++++++++++++++---- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/bdsg/docs/rst/tutorial.rst b/bdsg/docs/rst/tutorial.rst index 42a2a93b..88aeca37 100644 --- a/bdsg/docs/rst/tutorial.rst +++ b/bdsg/docs/rst/tutorial.rst @@ -16,9 +16,11 @@ See the `vg wiki `_ interface in which all objects in the graph are accessed using `handles `_. -*Edges* and *nodes* are accessed through an implementation of the :class:`bdsg.handlegraph.HandleGraph` interface. Individual nodes in the graph are pointed at by :class:`bdsg.handlegraph.handle_t` objects. +The most basic graphs implement the :class:`bdsg.handlegraph.HandleGraph` interface, which defines a graph containing nodes and edges. +Individual nodes in the graph are pointed at by :class:`bdsg.handlegraph.handle_t` objects. +Graph implementations can include additional `handlegraph` interfaces to add additional graph features and functionality. -Paths exist in graphs that implement the :class:`bdsg.handlegraph.PathHandleGraph`. Paths are accessed through :class:`bdsg.handlegraph.path_handle_t`, which is a series of :class:`bdsg.handlegraph.step_handle_t` linked together. Each :class:`bdsg.handlegraph.step_handle_t` points to the node in that step, and also contains directional information regarding the nodes preceeding and following it. +Paths exist in graphs that implement the :class:`bdsg.handlegraph.PathHandleGraph`. Paths are accessed through :class:`bdsg.handlegraph.path_handle_t`, which is a series of :class:`bdsg.handlegraph.step_handle_t` linked together. Each :class:`bdsg.handlegraph.step_handle_t` points to the node traversal along a path, and also contains directional information regarding the nodes preceding and following it. Handles are pointers to specific pieces of the graph, and it is not possible to operate on them directly, aside from comparing whether the objects are equal. To get information regarding the object that each handle is pointing to, it is necessary to use the corresponding `get` accessor method on the graph that issued the handle. @@ -47,7 +49,7 @@ First, we must create the graph, then make each node and keep track of their han for s in seq: n.append(gr.create_handle(s)) -Now we link together these nodes using their handles. Note that each of these handles is directional, and we create each edge from the first handle to the second. In order to create both of the edges between `n7` and `n9` we use ``create_edge`` twice, once going from `n7` to `n9`, and once going from `n9` to `n7`. +Now we link together these nodes using their handles. Note that each of these handles is directional, and we create each edge from the first handle traversing the node in the forward direction to the second handle, also traversed in the forward direction. In order to create both of the edges between `n7` and `n9` we use ``create_edge`` twice, once going from `n7` to `n9`, and once going from `n9` to `n7`. Since the handles are all traversing nodes in the forward orientation by default, this creates the edge from the right side of `n7` to the left side of `n9`, then from the right side of `n9` to the left side of `n7`. .. testcode:: @@ -82,7 +84,7 @@ If we wanted to traverse these edges, we could do it using the iterator method : next_node = next_node_list(n[1])[0] print(f'n2: {gr.get_sequence(next_node)}') next_node = next_node_list(next_node)[0] - print(f'n2: {gr.get_sequence(next_node)}') + print(f'n3: {gr.get_sequence(next_node)}') Which will output the following: @@ -90,12 +92,12 @@ Which will output the following: n1: CGA n2: TTGG - nk: CCGT + n3: CCGT Creating a Path =============== -Generating a linear sequence from this graph could be done in infinitely many ways, due to the internal loop between `n7`, and `n9`. If we wanted to define a single consensus sequence, we would do this by defining a path. +Generating a linear sequence from this graph could be done in infinitely many ways, due to the internal loop between `n7`, and `n9`. If we wanted to define a single sequence, for example to represent a reference haplotype in the graph, we would do this by defining a path. .. image:: /img/exampleGraphPath.png @@ -160,7 +162,7 @@ Using Graph Overlays ******************** The libhandlegraph library defines generic graph interfaces that describe different functionalities of a graph. -Overlays are wrappers on top of a graph that add these functionalities. +Some of these functionalities are part of the `libbdsg` graph implementations while others must be added on top of an existing graph using an *overlay*. For example, the :class:`bdsg.handlegraph.PathPositionHandleGraph` defines an interface for accessing the sequence positions along paths in a graph. The :class:`bdsg.bdsg.PositionOverlay` and :class:`bdsg.bdsg.ReferencePathOverlay` are two different implementations of overlays that can be applied to a graph to add this functionality. In C++, :class:`bdsg.bdsg.OverlayHelpers` are used to add specific combinations of overlays to graphs. @@ -169,8 +171,24 @@ bdsg.bdsg.PositionOverlay ========================= A :class:`bdsg.bdsg.PositionOverlay` adds the :class:`bdsg.handlegraph.PathPositionHandleGraph` functionality to a graph, allowing it to find the sequence positions along paths. -For example, using the same example graph as above, say we want to find the offset along the path of node `n5`. -We do this by creating a `bdsg.bdsg.PositionOverlay`, then getting a `bdsg.handlegraph.step_handle_t` that points to the node `n5` on the path `path`. +For example, using the same example graph as above, say we want to find the offsets along all paths that traverse node `n6`. +First, we'll add a second path to make this more interesting. + +.. testcode:: + + path = gr.create_path_handle("path1") + gr.append_step(path, n[1]) + gr.append_step(path, n[2]) + gr.append_step(path, n[3]) + gr.append_step(path, n[4]) + gr.append_step(path, n[6]) + gr.append_step(path, n[7]) + gr.append_step(path, n[9]) + gr.append_step(path, n[7]) + gr.append_step(path, n[9]) + gr.append_step(path, n[10]) + +We do this by creating a `bdsg.bdsg.PositionOverlay`, then getting a `bdsg.handlegraph.step_handle_t` that points to the node `n7` on the path `path`. The `bdsg.bdsg.PositionOverlay` can be queried using :func:`bdsg.handlegraph.get_position_of_step` to find the position of the given step. .. testcode:: @@ -179,16 +197,19 @@ The `bdsg.bdsg.PositionOverlay` can be queried using :func:`bdsg.handlegraph.get # Get the overlay position_graph = PositionOverlay(gr) - # Get the step_handle_t to node n5 on path. Since there is only one path in the graph there will only be one step - n5_steps = [] - gr.for_each_step_on_handle(nodes[5], lambda y : n5_steps.append(y) or True) + # Helper function that prints the path name and offset along the path of a step + def print_step(step) : + print(gr.get_path_name(gr.get_path_handle_of_step(step)), position_graph.get_position_of_step(step)) + return True + + # Run print_step() for each step on node n7 + gr.for_each_step_on_handle(nodes[7], print_step) - # Get the path offset of the step - print(position_graph.get_position_of_step(n5_steps[0])) .. testoutput:: - 11 + 17 + 21 ************************** Using a SnarlDistanceIndex @@ -276,7 +297,102 @@ The top-level chain contains node 1, snarl 1-4, node 4, etc. True +Now lets traverse the snarl tree horizontally to get the siblings of a `net_handle_t`. +This is done using :func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges`. +Starting from a node or snarl in a chain, we can use this function to walk through the chain in either direction. + +Be careful of which direction you are traversing in. +A `net_handle_t` encodes an orientation. +For a node, the orientation is relative to the orientation of the node. That is, a forward or left-to-right `net_handle_t` represents a left-to-right traversal of the node. +For a chain, the orientation is arbitrary- either of the boundary nodes could be considered the start or end node. +For a snarl, the orientation is relative to that of the parent chain. The start node of a snarl is the node that occurs first in a start-to-end traversal of the parent chain. + + +Starting from a `net_handle_t` to a chain, we can get the start or end node with :func:`bdsg.handlegraph.SnarlDecomposition.get_bound`. +`get_bound` takes as input a boolean `get_end` which is `True` to get the end bound and `False` to get the start bound, and a boolean `face_in` which decides whether to orient the node into or out of the chain. +.. testcode:: + chain = distance_index.get_parent(distance_index.get_node_net_handle(1)) + chain_child = distance_index.get_bound(chain, False, True) + print(distance_index.net_handle_as_string(chain_child)) + +In this particular case, the start node of the chain happens to be node `n1`. +.. testoutput:: +node 1fd + +Now we can check the next node in the chain by walking along the chain from the node. +:func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges` checks all next steps from a given `net_handle_t` and runs a helper function on each adjacent `net_handle_t` that it finds. +When walking along a chain, there is only ever a maximum of one adjacent `net_handle_t`. + +.. testcode:: + next_children = [] + def get_and_print_child(net): + print(distance_index.net_handle_as_string(net)) + next_children.append(net) + return True + distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() + distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() + distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() + +.. testoutput:: + simple snarl 1fd->4fdtraversing start->end + True + node 4fd + True + snarl 4fd->8fdtraversing start->end + True + +The same functions can be used to traverse a snarl. +Since the bound of a snarl is technically a node side rather than a node, `get_bound` on a snarl returns a *sentinel* representing the bound of the snarl. +:func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges` now checks all next adjacent edges in the snarl's netgraph. +Thus starting from the start bound of snarl 4-8 (the right side of node `n4`), there are two adjacent edges leading to chain 5-8 and to the end bound, the left side of node `n8`. + +.. testcode:: + # chain_child is currently snarl 4-8 + snarl_bound = distance_index.get_bound(chain_child, False, True) + print(distance_index.net_handle_as_string(snarl_bound)) + + print("children of snarl:") + next_children.clear() + distance_index.follow_net_edges(snarl_bound, graph, False, get_and_print_child) + +.. testoutput:: + sentinel of snarl 4fd->8fdtraversing start->end + children of snarl: + sentinel of snarl 4fd->8fdtraversing end->end + chain 5fd->7fdtraversing start->end + True + +Note that the `follow_net_edges` follows in edges in the netgraph of the snarl, so it only returns siblings of the input `net_handle_t`. +Since the input was the bound of the snarl, only children of the snarl will be returned. +Thus we find the chain 5-7 rather than the node `n5`. +We can continue use `follow_net_edges` to find all edges in a netgraph. + +.. testcode:: + def print_snarl_edges(snarl): + def print_edge_to(n): + print("\t->"+distance_index.net_handle_as_string(n)) + return True + def print_outgoing_edges(n): + print(distance_index.net_handle_as_string(n)) + distance_index.follow_net_edges(n, graph, False, print_edge_to) + + print(distance_index.net_handle_as_string(distance_index.flip(n))) + distance_index.follow_net_edges(n, graph, True, print_edge_to) + return True + + distance_index.for_each_child(snarl, print_outgoing_edges) + print_snarl_edges(distance_index.get_parent(next_children[1])) + + +.. testoutput:: + chain 5fd->7fdtraversing start->end + ->sentinel of snarl 4fd->8fdtraversing end->end + chain 5fd->7fdtraversing end->start + ->sentinel of snarl 4fd->8fdtraversing start->start ************************* From e422121a888645e896ee80e0590ed55b3aae0b42 Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Tue, 13 Oct 2026 16:43:03 +0200 Subject: [PATCH 6/7] Update python bindings --- bdsg/cmake_bindings/bdsg/graph_proxy.cpp | 4 +-- bdsg/cmake_bindings/bdsg/graph_proxy_1.cpp | 4 +-- .../bdsg/internal/base_packed_graph.cpp | 4 +-- .../bdsg/internal/eades_algorithm.cpp | 2 +- .../cmake_bindings/bdsg/internal/hash_map.cpp | 7 ++++- .../bdsg/internal/is_single_stranded.cpp | 2 +- .../bdsg/internal/mapped_structs_1.cpp | 26 +++++++++---------- .../overlays/packed_path_position_overlay.cpp | 2 +- .../packed_reference_path_overlay.cpp | 2 +- .../bdsg/overlays/path_position_overlays.cpp | 2 +- .../bdsg/overlays/path_subgraph_overlay.cpp | 4 +-- .../bdsg/overlays/reference_path_overlay.cpp | 2 +- .../bdsg/overlays/strand_split_overlay.cpp | 2 +- .../bdsg/overlays/vectorizable_overlays.cpp | 2 +- bdsg/cmake_bindings/bdsg/packed_graph.cpp | 4 +-- .../bdsg/snarl_distance_index.cpp | 4 +-- .../handlegraph/expanding_overlay_graph.cpp | 2 +- .../handlegraph/handle_graph.cpp | 2 +- .../handlegraph/mutable_path_metadata.cpp | 2 +- .../mutable_path_mutable_handle_graph.cpp | 4 +-- .../handlegraph/path_handle_graph.cpp | 2 +- .../handlegraph/path_metadata.cpp | 2 +- .../path_position_handle_graph.cpp | 2 +- .../handlegraph/trivially_serializable.cpp | 4 +-- .../std/bdsg/internal/binder_hook_bind.cpp | 1 + 25 files changed, 49 insertions(+), 45 deletions(-) diff --git a/bdsg/cmake_bindings/bdsg/graph_proxy.cpp b/bdsg/cmake_bindings/bdsg/graph_proxy.cpp index 8dbdc45b..51b58d61 100644 --- a/bdsg/cmake_bindings/bdsg/graph_proxy.cpp +++ b/bdsg/cmake_bindings/bdsg/graph_proxy.cpp @@ -1,4 +1,3 @@ -#include <__ostream/basic_ostream.h> #include #include #include @@ -10,11 +9,12 @@ #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/graph_proxy_1.cpp b/bdsg/cmake_bindings/bdsg/graph_proxy_1.cpp index c6d35542..5ec8be43 100644 --- a/bdsg/cmake_bindings/bdsg/graph_proxy_1.cpp +++ b/bdsg/cmake_bindings/bdsg/graph_proxy_1.cpp @@ -1,4 +1,3 @@ -#include <__ostream/basic_ostream.h> #include #include #include @@ -10,11 +9,12 @@ #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/internal/base_packed_graph.cpp b/bdsg/cmake_bindings/bdsg/internal/base_packed_graph.cpp index 9b05b171..6a4dddde 100644 --- a/bdsg/cmake_bindings/bdsg/internal/base_packed_graph.cpp +++ b/bdsg/cmake_bindings/bdsg/internal/base_packed_graph.cpp @@ -1,15 +1,15 @@ -#include <__ostream/basic_ostream.h> #include #include #include #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/internal/eades_algorithm.cpp b/bdsg/cmake_bindings/bdsg/internal/eades_algorithm.cpp index 17eb73e5..59105e96 100644 --- a/bdsg/cmake_bindings/bdsg/internal/eades_algorithm.cpp +++ b/bdsg/cmake_bindings/bdsg/internal/eades_algorithm.cpp @@ -2,9 +2,9 @@ #include #include #include +#include #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/internal/hash_map.cpp b/bdsg/cmake_bindings/bdsg/internal/hash_map.cpp index 28c647f9..5895a74d 100644 --- a/bdsg/cmake_bindings/bdsg/internal/hash_map.cpp +++ b/bdsg/cmake_bindings/bdsg/internal/hash_map.cpp @@ -13,11 +13,11 @@ #include #include #include +#include #include #include // __str__ #include #include -#include #include #include @@ -1041,6 +1041,11 @@ void bind_bdsg_internal_hash_map(std::function< pybind11::module &(std::string c cl.def( pybind11::init( [](){ return new bdsg::wang_hash(); } ) ); cl.def("__call__", (unsigned long (bdsg::wang_hash::*)(const long long &) const) &bdsg::wang_hash::operator(), "C++: bdsg::wang_hash::operator()(const long long &) const --> unsigned long", pybind11::arg("x")); } + { // bdsg::wang_hash file:bdsg/internal/hash_map.hpp line:120 + pybind11::class_, std::shared_ptr>> cl(M("bdsg"), "wang_hash_long_void_t", ""); + cl.def( pybind11::init( [](){ return new bdsg::wang_hash(); } ) ); + cl.def("__call__", (unsigned long (bdsg::wang_hash::*)(const long &) const) &bdsg::wang_hash::operator(), "C++: bdsg::wang_hash::operator()(const long &) const --> unsigned long", pybind11::arg("x")); + } { // bdsg::wang_hash file:bdsg/internal/hash_map.hpp line:120 pybind11::class_, std::shared_ptr>> cl(M("bdsg"), "wang_hash_char_void_t", ""); cl.def( pybind11::init( [](){ return new bdsg::wang_hash(); } ) ); diff --git a/bdsg/cmake_bindings/bdsg/internal/is_single_stranded.cpp b/bdsg/cmake_bindings/bdsg/internal/is_single_stranded.cpp index 13c66a63..80f4ec6d 100644 --- a/bdsg/cmake_bindings/bdsg/internal/is_single_stranded.cpp +++ b/bdsg/cmake_bindings/bdsg/internal/is_single_stranded.cpp @@ -2,9 +2,9 @@ #include #include #include +#include #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/internal/mapped_structs_1.cpp b/bdsg/cmake_bindings/bdsg/internal/mapped_structs_1.cpp index 0dfe15a0..0d53dc05 100644 --- a/bdsg/cmake_bindings/bdsg/internal/mapped_structs_1.cpp +++ b/bdsg/cmake_bindings/bdsg/internal/mapped_structs_1.cpp @@ -1,8 +1,8 @@ -#include <__ostream/basic_ostream.h> #include #include #include #include +#include #include // __str__ #include #include @@ -50,18 +50,18 @@ void bind_bdsg_internal_mapped_structs_1(std::function< pybind11::module &(std:: pybind11::class_, std::shared_ptr>> cl(M("bdsg"), "IntVectorFor_bdsg_CompatBackend_t", ""); cl.def( pybind11::init( [](){ return new bdsg::IntVectorFor(); } ) ); } - { // bdsg::PackedDeque file:bdsg/internal/packed_structs.hpp line:404 + { // bdsg::PackedDeque file:bdsg/internal/packed_structs.hpp line:410 pybind11::class_, std::shared_ptr>> cl(M("bdsg"), "PackedDeque_bdsg_STLBackend_t", ""); cl.def( pybind11::init( [](){ return new bdsg::PackedDeque(); } ) ); cl.def( pybind11::init( [](bdsg::PackedDeque const &o){ return new bdsg::PackedDeque(o); } ) ); cl.def("assign", (class bdsg::PackedDeque<> & (bdsg::PackedDeque::*)(const class bdsg::PackedDeque<> &)) &bdsg::PackedDeque<>::operator=, "C++: bdsg::PackedDeque<>::operator=(const class bdsg::PackedDeque<> &) --> class bdsg::PackedDeque<> &", pybind11::return_value_policy::automatic, pybind11::arg("other")); - cl.def("set", (void (bdsg::PackedDeque::*)(const unsigned long &, const unsigned long long &)) &bdsg::PackedDeque<>::set, "C++: bdsg::PackedDeque<>::set(const unsigned long &, const unsigned long long &) --> void", pybind11::arg("i"), pybind11::arg("value")); - cl.def("get", (unsigned long long (bdsg::PackedDeque::*)(const unsigned long &) const) &bdsg::PackedDeque<>::get, "C++: bdsg::PackedDeque<>::get(const unsigned long &) const --> unsigned long long", pybind11::arg("i")); - cl.def("__getitem__", (unsigned long long (bdsg::PackedDeque::*)(unsigned long) const) &bdsg::PackedDeque<>::operator[], "C++: bdsg::PackedDeque<>::operator[](unsigned long) const --> unsigned long long", pybind11::arg("i")); - cl.def("push_front", (void (bdsg::PackedDeque::*)(const unsigned long long &)) &bdsg::PackedDeque<>::push_front, "C++: bdsg::PackedDeque<>::push_front(const unsigned long long &) --> void", pybind11::arg("value")); - cl.def("append_front", (void (bdsg::PackedDeque::*)(const unsigned long long &)) &bdsg::PackedDeque<>::append_front, "C++: bdsg::PackedDeque<>::append_front(const unsigned long long &) --> void", pybind11::arg("value")); - cl.def("push_back", (void (bdsg::PackedDeque::*)(const unsigned long long &)) &bdsg::PackedDeque<>::push_back, "C++: bdsg::PackedDeque<>::push_back(const unsigned long long &) --> void", pybind11::arg("value")); - cl.def("append_back", (void (bdsg::PackedDeque::*)(const unsigned long long &)) &bdsg::PackedDeque<>::append_back, "C++: bdsg::PackedDeque<>::append_back(const unsigned long long &) --> void", pybind11::arg("value")); + cl.def("set", (void (bdsg::PackedDeque::*)(const unsigned long &, const unsigned long &)) &bdsg::PackedDeque<>::set, "C++: bdsg::PackedDeque<>::set(const unsigned long &, const unsigned long &) --> void", pybind11::arg("i"), pybind11::arg("value")); + cl.def("get", (unsigned long (bdsg::PackedDeque::*)(const unsigned long &) const) &bdsg::PackedDeque<>::get, "C++: bdsg::PackedDeque<>::get(const unsigned long &) const --> unsigned long", pybind11::arg("i")); + cl.def("__getitem__", (unsigned long (bdsg::PackedDeque::*)(unsigned long) const) &bdsg::PackedDeque<>::operator[], "C++: bdsg::PackedDeque<>::operator[](unsigned long) const --> unsigned long", pybind11::arg("i")); + cl.def("push_front", (void (bdsg::PackedDeque::*)(const unsigned long &)) &bdsg::PackedDeque<>::push_front, "C++: bdsg::PackedDeque<>::push_front(const unsigned long &) --> void", pybind11::arg("value")); + cl.def("append_front", (void (bdsg::PackedDeque::*)(const unsigned long &)) &bdsg::PackedDeque<>::append_front, "C++: bdsg::PackedDeque<>::append_front(const unsigned long &) --> void", pybind11::arg("value")); + cl.def("push_back", (void (bdsg::PackedDeque::*)(const unsigned long &)) &bdsg::PackedDeque<>::push_back, "C++: bdsg::PackedDeque<>::push_back(const unsigned long &) --> void", pybind11::arg("value")); + cl.def("append_back", (void (bdsg::PackedDeque::*)(const unsigned long &)) &bdsg::PackedDeque<>::append_back, "C++: bdsg::PackedDeque<>::append_back(const unsigned long &) --> void", pybind11::arg("value")); cl.def("pop_front", (void (bdsg::PackedDeque::*)()) &bdsg::PackedDeque<>::pop_front, "C++: bdsg::PackedDeque<>::pop_front() --> void"); cl.def("pop_back", (void (bdsg::PackedDeque::*)()) &bdsg::PackedDeque<>::pop_back, "C++: bdsg::PackedDeque<>::pop_back() --> void"); cl.def("reserve", (void (bdsg::PackedDeque::*)(const unsigned long &)) &bdsg::PackedDeque<>::reserve, "C++: bdsg::PackedDeque<>::reserve(const unsigned long &) --> void", pybind11::arg("future_size")); @@ -70,14 +70,14 @@ void bind_bdsg_internal_mapped_structs_1(std::function< pybind11::module &(std:: cl.def("clear", (void (bdsg::PackedDeque::*)()) &bdsg::PackedDeque<>::clear, "C++: bdsg::PackedDeque<>::clear() --> void"); cl.def("memory_usage", (unsigned long (bdsg::PackedDeque::*)() const) &bdsg::PackedDeque<>::memory_usage, "C++: bdsg::PackedDeque<>::memory_usage() const --> unsigned long"); } - { // bdsg::PackedSet file:bdsg/internal/packed_structs.hpp line:513 + { // bdsg::PackedSet file:bdsg/internal/packed_structs.hpp line:519 pybind11::class_, std::shared_ptr>> cl(M("bdsg"), "PackedSet_bdsg_STLBackend_t", ""); cl.def( pybind11::init( [](){ return new bdsg::PackedSet(); } ) ); cl.def( pybind11::init( [](bdsg::PackedSet const &o){ return new bdsg::PackedSet(o); } ) ); cl.def("assign", (class bdsg::PackedSet<> & (bdsg::PackedSet::*)(const class bdsg::PackedSet<> &)) &bdsg::PackedSet<>::operator=, "C++: bdsg::PackedSet<>::operator=(const class bdsg::PackedSet<> &) --> class bdsg::PackedSet<> &", pybind11::return_value_policy::automatic, pybind11::arg("other")); - cl.def("insert", (void (bdsg::PackedSet::*)(const unsigned long long &)) &bdsg::PackedSet<>::insert, "C++: bdsg::PackedSet<>::insert(const unsigned long long &) --> void", pybind11::arg("value")); - cl.def("find", (bool (bdsg::PackedSet::*)(const unsigned long long &) const) &bdsg::PackedSet<>::find, "C++: bdsg::PackedSet<>::find(const unsigned long long &) const --> bool", pybind11::arg("value")); - cl.def("remove", (void (bdsg::PackedSet::*)(const unsigned long long &)) &bdsg::PackedSet<>::remove, "C++: bdsg::PackedSet<>::remove(const unsigned long long &) --> void", pybind11::arg("value")); + cl.def("insert", (void (bdsg::PackedSet::*)(const unsigned long &)) &bdsg::PackedSet<>::insert, "C++: bdsg::PackedSet<>::insert(const unsigned long &) --> void", pybind11::arg("value")); + cl.def("find", (bool (bdsg::PackedSet::*)(const unsigned long &) const) &bdsg::PackedSet<>::find, "C++: bdsg::PackedSet<>::find(const unsigned long &) const --> bool", pybind11::arg("value")); + cl.def("remove", (void (bdsg::PackedSet::*)(const unsigned long &)) &bdsg::PackedSet<>::remove, "C++: bdsg::PackedSet<>::remove(const unsigned long &) --> void", pybind11::arg("value")); cl.def("size", (unsigned long (bdsg::PackedSet::*)() const) &bdsg::PackedSet<>::size, "C++: bdsg::PackedSet<>::size() const --> unsigned long"); cl.def("empty", (bool (bdsg::PackedSet::*)() const) &bdsg::PackedSet<>::empty, "C++: bdsg::PackedSet<>::empty() const --> bool"); cl.def("set_load_factors", (void (bdsg::PackedSet::*)(double, double)) &bdsg::PackedSet<>::set_load_factors, "C++: bdsg::PackedSet<>::set_load_factors(double, double) --> void", pybind11::arg("min_load_factor"), pybind11::arg("max_load_factor")); diff --git a/bdsg/cmake_bindings/bdsg/overlays/packed_path_position_overlay.cpp b/bdsg/cmake_bindings/bdsg/overlays/packed_path_position_overlay.cpp index edc24003..62c3df1e 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/packed_path_position_overlay.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/packed_path_position_overlay.cpp @@ -5,10 +5,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/packed_reference_path_overlay.cpp b/bdsg/cmake_bindings/bdsg/overlays/packed_reference_path_overlay.cpp index 67018282..a8354adf 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/packed_reference_path_overlay.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/packed_reference_path_overlay.cpp @@ -8,10 +8,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/path_position_overlays.cpp b/bdsg/cmake_bindings/bdsg/overlays/path_position_overlays.cpp index ae0f68a0..d5c5166b 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/path_position_overlays.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/path_position_overlays.cpp @@ -11,10 +11,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/path_subgraph_overlay.cpp b/bdsg/cmake_bindings/bdsg/overlays/path_subgraph_overlay.cpp index a233cadf..1a0108b9 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/path_subgraph_overlay.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/path_subgraph_overlay.cpp @@ -5,12 +5,10 @@ #include #include #include +#include #include #include // __str__ #include -#include -#include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/reference_path_overlay.cpp b/bdsg/cmake_bindings/bdsg/overlays/reference_path_overlay.cpp index eb7882e3..c0019f96 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/reference_path_overlay.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/reference_path_overlay.cpp @@ -6,10 +6,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/strand_split_overlay.cpp b/bdsg/cmake_bindings/bdsg/overlays/strand_split_overlay.cpp index 921c1a39..ab973652 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/strand_split_overlay.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/strand_split_overlay.cpp @@ -2,10 +2,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/overlays/vectorizable_overlays.cpp b/bdsg/cmake_bindings/bdsg/overlays/vectorizable_overlays.cpp index 7971419e..00ce99c0 100644 --- a/bdsg/cmake_bindings/bdsg/overlays/vectorizable_overlays.cpp +++ b/bdsg/cmake_bindings/bdsg/overlays/vectorizable_overlays.cpp @@ -5,10 +5,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/bdsg/packed_graph.cpp b/bdsg/cmake_bindings/bdsg/packed_graph.cpp index 94ec4ee8..5bc325a8 100644 --- a/bdsg/cmake_bindings/bdsg/packed_graph.cpp +++ b/bdsg/cmake_bindings/bdsg/packed_graph.cpp @@ -1,4 +1,3 @@ -#include <__ostream/basic_ostream.h> #include #include #include @@ -11,11 +10,12 @@ #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include #include diff --git a/bdsg/cmake_bindings/bdsg/snarl_distance_index.cpp b/bdsg/cmake_bindings/bdsg/snarl_distance_index.cpp index a606f738..e6569117 100644 --- a/bdsg/cmake_bindings/bdsg/snarl_distance_index.cpp +++ b/bdsg/cmake_bindings/bdsg/snarl_distance_index.cpp @@ -1,4 +1,3 @@ -#include <__ostream/basic_ostream.h> #include #include #include @@ -7,11 +6,12 @@ #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/expanding_overlay_graph.cpp b/bdsg/cmake_bindings/handlegraph/expanding_overlay_graph.cpp index 804cbdea..2c99fe48 100644 --- a/bdsg/cmake_bindings/handlegraph/expanding_overlay_graph.cpp +++ b/bdsg/cmake_bindings/handlegraph/expanding_overlay_graph.cpp @@ -2,10 +2,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/handle_graph.cpp b/bdsg/cmake_bindings/handlegraph/handle_graph.cpp index 4a500e79..b59b52b8 100644 --- a/bdsg/cmake_bindings/handlegraph/handle_graph.cpp +++ b/bdsg/cmake_bindings/handlegraph/handle_graph.cpp @@ -1,10 +1,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/mutable_path_metadata.cpp b/bdsg/cmake_bindings/handlegraph/mutable_path_metadata.cpp index 671eee18..a59d28c3 100644 --- a/bdsg/cmake_bindings/handlegraph/mutable_path_metadata.cpp +++ b/bdsg/cmake_bindings/handlegraph/mutable_path_metadata.cpp @@ -6,10 +6,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/mutable_path_mutable_handle_graph.cpp b/bdsg/cmake_bindings/handlegraph/mutable_path_mutable_handle_graph.cpp index 1485b7b8..432bd94a 100644 --- a/bdsg/cmake_bindings/handlegraph/mutable_path_mutable_handle_graph.cpp +++ b/bdsg/cmake_bindings/handlegraph/mutable_path_mutable_handle_graph.cpp @@ -1,4 +1,3 @@ -#include <__ostream/basic_ostream.h> #include #include #include @@ -14,11 +13,12 @@ #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/path_handle_graph.cpp b/bdsg/cmake_bindings/handlegraph/path_handle_graph.cpp index b65caf20..ac6541bc 100644 --- a/bdsg/cmake_bindings/handlegraph/path_handle_graph.cpp +++ b/bdsg/cmake_bindings/handlegraph/path_handle_graph.cpp @@ -3,10 +3,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/path_metadata.cpp b/bdsg/cmake_bindings/handlegraph/path_metadata.cpp index 39db277b..69d7c0c4 100644 --- a/bdsg/cmake_bindings/handlegraph/path_metadata.cpp +++ b/bdsg/cmake_bindings/handlegraph/path_metadata.cpp @@ -3,10 +3,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/path_position_handle_graph.cpp b/bdsg/cmake_bindings/handlegraph/path_position_handle_graph.cpp index 5d3a981a..02289a4a 100644 --- a/bdsg/cmake_bindings/handlegraph/path_position_handle_graph.cpp +++ b/bdsg/cmake_bindings/handlegraph/path_position_handle_graph.cpp @@ -4,10 +4,10 @@ #include #include #include +#include #include #include // __str__ #include -#include #include #include diff --git a/bdsg/cmake_bindings/handlegraph/trivially_serializable.cpp b/bdsg/cmake_bindings/handlegraph/trivially_serializable.cpp index d99cc6e8..32bc937c 100644 --- a/bdsg/cmake_bindings/handlegraph/trivially_serializable.cpp +++ b/bdsg/cmake_bindings/handlegraph/trivially_serializable.cpp @@ -1,13 +1,13 @@ -#include <__ostream/basic_ostream.h> #include #include #include #include +#include #include +#include #include // __str__ #include #include -#include #include #include diff --git a/bdsg/cmake_bindings/std/bdsg/internal/binder_hook_bind.cpp b/bdsg/cmake_bindings/std/bdsg/internal/binder_hook_bind.cpp index ea646472..1502dff2 100644 --- a/bdsg/cmake_bindings/std/bdsg/internal/binder_hook_bind.cpp +++ b/bdsg/cmake_bindings/std/bdsg/internal/binder_hook_bind.cpp @@ -1,4 +1,5 @@ #include +#include #include #include // __str__ #include From 6c151394e6ce988f30825229dd029ec5f6c05d4f Mon Sep 17 00:00:00 2001 From: Xian Hui Chang Date: Tue, 13 Oct 2026 17:39:45 +0200 Subject: [PATCH 7/7] Make tutorial compile --- bdsg/docs/img/simple_nested_chain.png | Bin 0 -> 74100 bytes bdsg/docs/rst/tutorial.rst | 220 ++++++++++++++------------ 2 files changed, 121 insertions(+), 99 deletions(-) create mode 100644 bdsg/docs/img/simple_nested_chain.png diff --git a/bdsg/docs/img/simple_nested_chain.png b/bdsg/docs/img/simple_nested_chain.png new file mode 100644 index 0000000000000000000000000000000000000000..54c9a26c36851c8be7ce195fbe5377dfb6fe6a57 GIT binary patch literal 74100 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 Ca8i^2 literal 0 HcmV?d00001 diff --git a/bdsg/docs/rst/tutorial.rst b/bdsg/docs/rst/tutorial.rst index 88aeca37..7b2238b3 100644 --- a/bdsg/docs/rst/tutorial.rst +++ b/bdsg/docs/rst/tutorial.rst @@ -211,14 +211,14 @@ The `bdsg.bdsg.PositionOverlay` can be queried using :func:`bdsg.handlegraph.get 17 21 -************************** -Using a SnarlDistanceIndex -************************** +************************************************************ +Using a SnarlDistanceIndex to Traverse a Snarl Decomposition +************************************************************ A :class:`bdsg.bdsg.SnarlDistanceIndex` implements the :class:`bdsg.handlegraph.SnarlDecomposition` interface and additionally adds minimum distance finding functionality. It can be used to explore the snarl decomposition of a graph. Similar to a :class:`bdsg.handlegraph.handle_t` used to point to a node in a graph, a :class:`bdsg.handlegraph.net_handle_t` is used to point to a node in the snarl tree, which represents a snarl, chain, or node in the graph. -The snarl decomposition is described in more detail in the `vg wiki `_. +The snarl decomposition is described in more detail in the `vg wiki snarls page `_. libbdsg does not support building a distance index, it must be build using the `vg toolkit `_. @@ -227,66 +227,74 @@ libbdsg does not support building a distance index, it must be build using the ` vg index -j example_graph.dist example_graph.hg - -Traversing the Distance Index -============================= We will use the following graph and corresponding distance index for this example. -.. image:: /assests/simple_nested_chain.png +.. image:: /img/simple_nested_chain.png Start by loading the distance index. + .. testcode:: - from bdsg.bdsg import SnarlDistanceIndex - distance_index = SnarlDistanceIndex() - distance_index.deserialize("/assets/simple_nested_chain.dist") + from bdsg.bdsg import SnarlDistanceIndex + from bdsg.bdsg import HashGraph + + distance_index = SnarlDistanceIndex() + distance_index.deserialize("/assets/simple_nested_chain.dist") + + graph = bdsg.bdsg.HashGraph() + graph.deserialize("/assets/simple_nested_chain.hg") + - graph = bdsg.bdsg.HashGraph() - graph.deserialize("/assets/simple_nested_chain.hg") + +Finding Ancestors in a Snarl Tree +================================= Starting from a node in the graph, its ancestors in the snarl decomposition can be found using :func:`bdsg.handlegraph.SnarlDecomposition.get_parent`. Lets look for the ancestors of node `n6` in the snarl decomposition. .. testcode:: - net = distance_index.get_node_net_handle(6) - while not distance_index.is_root(net): - print(distance_index.net_handle_as_string(net)) - net = distance_index.get_parent(net) + net = distance_index.get_node_net_handle(6) + while not distance_index.is_root(net): + print(distance_index.net_handle_as_string(net)) + net = distance_index.get_parent(net) + +.. testoutput:: + + node 6fd + node 6fd pretending to be a chain in a simple snarl + simple snarl 5fd->7fdtraversing start->end + chain 5fd->7fdtraversing start->end + snarl 4fd->8fdtraversing start->end + chain 1fd->10fdtraversing start->end In the snarl decomposition, a node is always the child of a chain, which may contain only that node. Node `n6` therefore has a parent that is a chain containing only node `n6`. -.. testoutput:: - node 6fd - node 6fd pretending to be a chain in a simple snarl - simple snarl 5fd->7fdtraversing start->end - chain 5fd->7fdtraversing start->end - snarl 4fd->8fdtraversing start->end - chain 1fd->10fdtraversing start->end + +Finding Descendants in a Snarl Tree +=================================== Now lets go in the other direction, finding the descendants of a net, starting from the root. .. testcode:: - root = distance_index.get_root() - - children = [] - def get_and_print_child(net): - nonlocal children - print(distance_index.net_handle_as_string(net)) - children.append(net) - return True - distance_index.for_each_child(root, get_and_print_child) - - chain = children[0] - distance_index.for_each_child(chain, get_and_print_child) -The root contains only one child, the top-level chain. -The top-level chain contains node 1, snarl 1-4, node 4, etc. + root = distance_index.get_root() + + children = [] + def get_and_print_child(net): + nonlocal children + print(distance_index.net_handle_as_string(net)) + children.append(net) + return True + success = distance_index.for_each_child(root, get_and_print_child) + + chain = children[0] + success = distance_index.for_each_child(chain, get_and_print_child) .. testoutput:: + chain 1fd->10fdtraversing start->end - True node 1fd simple snarl 1fd->4fdtraversing start->end node 4fd @@ -294,55 +302,66 @@ The top-level chain contains node 1, snarl 1-4, node 4, etc. node 8fd simple snarl 8fd->10fdtraversing start->end node 10fd - True + +The root contains only one child, the top-level chain. +The top-level chain contains node 1, snarl 1-4, node 4, etc. +This produces: + -Now lets traverse the snarl tree horizontally to get the siblings of a `net_handle_t`. +Finding Siblings in a Snarl Tree +================================ + +Now lets traverse the snarl tree horizontally to get the siblings of a :class:`bdsg.handlegraph.net_handle_t`. This is done using :func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges`. Starting from a node or snarl in a chain, we can use this function to walk through the chain in either direction. Be careful of which direction you are traversing in. -A `net_handle_t` encodes an orientation. -For a node, the orientation is relative to the orientation of the node. That is, a forward or left-to-right `net_handle_t` represents a left-to-right traversal of the node. +A :class:`bdsg.handlegraph.net_handle_t` encodes an orientation. +For a node, the orientation is relative to the orientation of the node. That is, a forward or left-to-right :class:`bdsg.handlegraph.net_handle_t` represents a left-to-right traversal of the node. For a chain, the orientation is arbitrary- either of the boundary nodes could be considered the start or end node. For a snarl, the orientation is relative to that of the parent chain. The start node of a snarl is the node that occurs first in a start-to-end traversal of the parent chain. -Starting from a `net_handle_t` to a chain, we can get the start or end node with :func:`bdsg.handlegraph.SnarlDecomposition.get_bound`. -`get_bound` takes as input a boolean `get_end` which is `True` to get the end bound and `False` to get the start bound, and a boolean `face_in` which decides whether to orient the node into or out of the chain. +Starting from a :class:`bdsg.handlegraph.net_handle_t` to a chain, we can get the start or end node with :func:`bdsg.handlegraph.SnarlDecomposition.get_bound`. +:func:`bdsg.handlegraph.SnarlDecomposition.get_bound` takes as input a boolean `get_end` which is `True` to get the end bound and `False` to get the start bound, and a boolean `face_in` which decides whether to orient the node into or out of the chain. + .. testcode:: - chain = distance_index.get_parent(distance_index.get_node_net_handle(1)) - chain_child = distance_index.get_bound(chain, False, True) - print(distance_index.net_handle_as_string(chain_child)) -In this particular case, the start node of the chain happens to be node `n1`. + chain = distance_index.get_parent(distance_index.get_node_net_handle(1)) + chain_child = distance_index.get_bound(chain, False, True) + print(distance_index.net_handle_as_string(chain_child)) + .. testoutput:: -node 1fd + + node 1fd + +In this particular case, the start node of the chain happens to be node `n1`. + Now we can check the next node in the chain by walking along the chain from the node. -:func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges` checks all next steps from a given `net_handle_t` and runs a helper function on each adjacent `net_handle_t` that it finds. -When walking along a chain, there is only ever a maximum of one adjacent `net_handle_t`. +:func:`bdsg.handlegraph.SnarlDecomposition.follow_net_edges` checks all next steps from a given :class:`bdsg.handlegraph.net_handle_t` and runs a helper function on each adjacent :class:`bdsg.handlegraph.net_handle_t` that it finds. +When walking along a chain, there is only ever a maximum of one adjacent :class:`bdsg.handlegraph.net_handle_t`. .. testcode:: - next_children = [] - def get_and_print_child(net): - print(distance_index.net_handle_as_string(net)) - next_children.append(net) - return True - distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) - chain_child = next_children.pop() - distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) - chain_child = next_children.pop() - distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) - chain_child = next_children.pop() + + next_children = [] + def get_and_print_child(net): + print(distance_index.net_handle_as_string(net)) + next_children.append(net) + return True + success = distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() + success = distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() + success = distance_index.follow_net_edges(chain_child, graph, False, get_and_print_child) + chain_child = next_children.pop() .. testoutput:: - simple snarl 1fd->4fdtraversing start->end - True - node 4fd - True - snarl 4fd->8fdtraversing start->end - True + + simple snarl 1fd->4fdtraversing start->end + node 4fd + snarl 4fd->8fdtraversing start->end The same functions can be used to traverse a snarl. Since the bound of a snarl is technically a node side rather than a node, `get_bound` on a snarl returns a *sentinel* representing the bound of the snarl. @@ -350,49 +369,52 @@ Since the bound of a snarl is technically a node side rather than a node, `get_b Thus starting from the start bound of snarl 4-8 (the right side of node `n4`), there are two adjacent edges leading to chain 5-8 and to the end bound, the left side of node `n8`. .. testcode:: - # chain_child is currently snarl 4-8 - snarl_bound = distance_index.get_bound(chain_child, False, True) - print(distance_index.net_handle_as_string(snarl_bound)) - print("children of snarl:") - next_children.clear() - distance_index.follow_net_edges(snarl_bound, graph, False, get_and_print_child) + # chain_child is currently snarl 4-8 + snarl_bound = distance_index.get_bound(chain_child, False, True) + print(distance_index.net_handle_as_string(snarl_bound)) + + print("children of snarl:") + next_children.clear() + success = distance_index.follow_net_edges(snarl_bound, graph, False, get_and_print_child) .. testoutput:: - sentinel of snarl 4fd->8fdtraversing start->end - children of snarl: - sentinel of snarl 4fd->8fdtraversing end->end - chain 5fd->7fdtraversing start->end - True -Note that the `follow_net_edges` follows in edges in the netgraph of the snarl, so it only returns siblings of the input `net_handle_t`. + sentinel of snarl 4fd->8fdtraversing start->end + children of snarl: + sentinel of snarl 4fd->8fdtraversing end->end + chain 5fd->7fdtraversing start->end + +Note that the `follow_net_edges` follows in edges in the netgraph of the snarl, so it only returns siblings of the input :class:`bdsg.handlegraph.net_handle_t`. Since the input was the bound of the snarl, only children of the snarl will be returned. Thus we find the chain 5-7 rather than the node `n5`. We can continue use `follow_net_edges` to find all edges in a netgraph. .. testcode:: - def print_snarl_edges(snarl): - def print_edge_to(n): - print("\t->"+distance_index.net_handle_as_string(n)) - return True - def print_outgoing_edges(n): - print(distance_index.net_handle_as_string(n)) - distance_index.follow_net_edges(n, graph, False, print_edge_to) - - print(distance_index.net_handle_as_string(distance_index.flip(n))) - distance_index.follow_net_edges(n, graph, True, print_edge_to) - return True - - distance_index.for_each_child(snarl, print_outgoing_edges) - print_snarl_edges(distance_index.get_parent(next_children[1])) + + def print_snarl_edges(snarl): + def print_edge_to(n): + print("\t->"+distance_index.net_handle_as_string(n)) + return True + def print_outgoing_edges(n): + print(distance_index.net_handle_as_string(n)) + distance_index.follow_net_edges(n, graph, False, print_edge_to) + + print(distance_index.net_handle_as_string(distance_index.flip(n))) + distance_index.follow_net_edges(n, graph, True, print_edge_to) + return True + + distance_index.for_each_child(snarl, print_outgoing_edges) + print_snarl_edges(distance_index.get_parent(next_children[1])) .. testoutput:: - chain 5fd->7fdtraversing start->end - ->sentinel of snarl 4fd->8fdtraversing end->end - chain 5fd->7fdtraversing end->start - ->sentinel of snarl 4fd->8fdtraversing start->start + + chain 5fd->7fdtraversing start->end + ->sentinel of snarl 4fd->8fdtraversing end->end + chain 5fd->7fdtraversing end->start + ->sentinel of snarl 4fd->8fdtraversing start->start *************************