vg
tools for working with variation graphs
Loading...
Searching...
No Matches
vg::SnarlGraph Class Reference

#include <snarl_graph.hpp>

Inheritance diagram for vg::SnarlGraph:

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

Detailed Description

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

Constructor & Destructor Documentation

◆ SnarlGraph()

vg::SnarlGraph::SnarlGraph ( const HandleGraph * backing_graph,
SnarlManager & snarl_manager,
vector< const Snarl * > snarls )

Member Function Documentation

◆ edge_to_snarl_edge()

tuple< bool, handle_t, edge_t > vg::SnarlGraph::edge_to_snarl_edge ( edge_t edge) const

◆ embed_ref_path_snarls()

void vg::SnarlGraph::embed_ref_path_snarls ( SnarlTraversal & traversal)

◆ embed_snarl()

void vg::SnarlGraph::embed_snarl ( Visit & visit)

◆ embed_snarls()

void vg::SnarlGraph::embed_snarls ( SnarlTraversal & traversal)

◆ flip()

handle_t vg::SnarlGraph::flip ( const handle_t & handle) const

◆ follow_edges_impl()

bool vg::SnarlGraph::follow_edges_impl ( const handle_t & handle,
bool go_left,
const std::function< bool(const handle_t &)> & iteratee ) const
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.

◆ for_each_handle_impl()

bool vg::SnarlGraph::for_each_handle_impl ( const std::function< bool(const handle_t &)> & iteratee,
bool parallel = false ) const
protected

◆ get_handle()

handle_t vg::SnarlGraph::get_handle ( const nid_t & node_id,
bool is_reverse = false ) const

◆ get_id()

nid_t vg::SnarlGraph::get_id ( const handle_t & handle) const

◆ get_is_reverse()

bool vg::SnarlGraph::get_is_reverse ( const handle_t & handle) const

◆ get_length()

size_t vg::SnarlGraph::get_length ( const handle_t & handle) const

◆ get_node_count()

size_t vg::SnarlGraph::get_node_count ( ) const

◆ get_sequence()

std::string vg::SnarlGraph::get_sequence ( const handle_t & handle) const

◆ has_node()

bool vg::SnarlGraph::has_node ( nid_t node_id) const

◆ max_node_id()

nid_t vg::SnarlGraph::max_node_id ( ) const

◆ min_node_id()

nid_t vg::SnarlGraph::min_node_id ( ) const

◆ node_to_snarl()

pair< bool, handle_t > vg::SnarlGraph::node_to_snarl ( handle_t handle) const

Member Data Documentation

◆ backing_graph

const HandleGraph* vg::SnarlGraph::backing_graph
protected

the backing graph

◆ snarl_manager

SnarlManager& vg::SnarlGraph::snarl_manager
protected

the snarl manager

◆ snarls

unordered_map<handle_t, pair<handle_t, bool> > vg::SnarlGraph::snarls
protected

the snarls (indexed both ways). flag is true for original orientation


The documentation for this class was generated from the following files: