|
vg
tools for working with variation graphs
|
#include <snarl_graph.hpp>
Public Member Functions | |
| SnarlGraph (const HandleGraph *backing_graph, SnarlManager &snarl_manager, vector< const Snarl * > snarls) | |
| pair< bool, handle_t > | node_to_snarl (handle_t handle) const |
| tuple< bool, handle_t, edge_t > | edge_to_snarl_edge (edge_t edge) const |
| void | embed_snarl (Visit &visit) |
| void | embed_snarls (SnarlTraversal &traversal) |
| void | embed_ref_path_snarls (SnarlTraversal &traversal) |
| bool | has_node (nid_t node_id) const |
| handle_t | get_handle (const nid_t &node_id, bool is_reverse=false) const |
| nid_t | get_id (const handle_t &handle) const |
| bool | get_is_reverse (const handle_t &handle) const |
| handle_t | flip (const handle_t &handle) const |
| size_t | get_length (const handle_t &handle) const |
| std::string | get_sequence (const handle_t &handle) const |
| size_t | get_node_count () const |
| nid_t | min_node_id () const |
| nid_t | max_node_id () const |
Protected Member Functions | |
| bool | for_each_handle_impl (const std::function< bool(const handle_t &)> &iteratee, bool parallel=false) const |
| bool | follow_edges_impl (const handle_t &handle, bool go_left, const std::function< bool(const handle_t &)> &iteratee) const |
Protected Attributes | |
| const HandleGraph * | backing_graph |
| the backing graph | |
| SnarlManager & | snarl_manager |
| the snarl manager | |
| unordered_map< handle_t, pair< handle_t, bool > > | snarls |
| the snarls (indexed both ways). flag is true for original orientation | |
Simplification of a NetGraph that ignores chains. It is designed only for traversal finding. Todo: generalize NestedFlowCaller to the point where we can remove this and use NetGraph instead
| vg::SnarlGraph::SnarlGraph | ( | const HandleGraph * | backing_graph, |
| SnarlManager & | snarl_manager, | ||
| vector< const Snarl * > | snarls ) |
| void vg::SnarlGraph::embed_ref_path_snarls | ( | SnarlTraversal & | traversal | ) |
| void vg::SnarlGraph::embed_snarl | ( | Visit & | visit | ) |
| void vg::SnarlGraph::embed_snarls | ( | SnarlTraversal & | traversal | ) |
|
protected |
this is the only function that's changed to do anything different from the backing graph: it is changed to "pass through" snarls by pretending there are edges from into snarl starts out of ends and vice versa.
|
protected |
| bool vg::SnarlGraph::get_is_reverse | ( | const handle_t & | handle | ) | const |
| size_t vg::SnarlGraph::get_length | ( | const handle_t & | handle | ) | const |
| size_t vg::SnarlGraph::get_node_count | ( | ) | const |
| std::string vg::SnarlGraph::get_sequence | ( | const handle_t & | handle | ) | const |
| bool vg::SnarlGraph::has_node | ( | nid_t | node_id | ) | const |
| nid_t vg::SnarlGraph::max_node_id | ( | ) | const |
| nid_t vg::SnarlGraph::min_node_id | ( | ) | const |
|
protected |
the backing graph
|
protected |
the snarl manager
the snarls (indexed both ways). flag is true for original orientation
1.17.0