|
vg
tools for working with variation graphs
|
#include <subgraph_overlay.hpp>
Public Member Functions | |
| PathSubgraphOverlay (const PathHandleGraph *backing, const unordered_set< nid_t > *node_subset) | |
| virtual | ~PathSubgraphOverlay () |
| virtual size_t | get_path_count () const |
| Returns the number of paths stored in the graph. More... | |
| virtual bool | has_path (const std::string &path_name) const |
| Determine if a path name exists and is legal to get a path handle for. More... | |
| virtual path_handle_t | get_path_handle (const std::string &path_name) const |
| virtual std::string | get_path_name (const path_handle_t &path_handle) const |
| Look up the name of a path from a handle to it. More... | |
| virtual bool | get_is_circular (const path_handle_t &path_handle) const |
| Look up whether a path is circular. More... | |
| virtual size_t | get_step_count (const path_handle_t &path_handle) const |
| Returns the number of node steps in the path. More... | |
| virtual handle_t | get_handle_of_step (const step_handle_t &step_handle) const |
| Get a node handle (node ID and orientation) from a handle to an step on a path. More... | |
| virtual path_handle_t | get_path_handle_of_step (const step_handle_t &step_handle) const |
| Returns a handle to the path that an step is on. More... | |
| virtual step_handle_t | path_begin (const path_handle_t &path_handle) const |
| virtual step_handle_t | path_end (const path_handle_t &path_handle) const |
| virtual step_handle_t | path_back (const path_handle_t &path_handle) const |
| virtual step_handle_t | path_front_end (const path_handle_t &path_handle) const |
| virtual bool | has_next_step (const step_handle_t &step_handle) const |
| Returns true if the step is not the last step in a non-circular path. More... | |
| virtual bool | has_previous_step (const step_handle_t &step_handle) const |
| Returns true if the step is not the first step in a non-circular path. More... | |
| virtual step_handle_t | get_next_step (const step_handle_t &step_handle) const |
| virtual step_handle_t | get_previous_step (const step_handle_t &step_handle) const |
Public Member Functions inherited from vg::SubgraphOverlay | |
| SubgraphOverlay (const HandleGraph *backing, const unordered_set< nid_t > *node_subset) | |
| virtual | ~SubgraphOverlay () |
| virtual bool | has_node (nid_t node_id) const |
| Method to check if a node exists by ID. More... | |
| virtual handle_t | get_handle (const nid_t &node_id, bool is_reverse=false) const |
| Look up the handle for the node with the given ID in the given orientation. More... | |
| virtual nid_t | get_id (const handle_t &handle) const |
| Get the ID from a handle. More... | |
| virtual bool | get_is_reverse (const handle_t &handle) const |
| Get the orientation of a handle. More... | |
| virtual handle_t | flip (const handle_t &handle) const |
| Invert the orientation of a handle (potentially without getting its ID) More... | |
| virtual size_t | get_length (const handle_t &handle) const |
| Get the length of a node. More... | |
| virtual std::string | get_sequence (const handle_t &handle) const |
| virtual size_t | get_node_count () const |
| Return the number of nodes in the graph. More... | |
| virtual nid_t | min_node_id () const |
| virtual nid_t | max_node_id () const |
Public Member Functions inherited from handlegraph::HandleGraph | |
| virtual | ~HandleGraph ()=default |
| template<typename Iteratee > | |
| bool | follow_edges (const handle_t &handle, bool go_left, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_handle (const Iteratee &iteratee, bool parallel=false) const |
| virtual size_t | get_degree (const handle_t &handle, bool go_left) const |
| virtual bool | has_edge (const handle_t &left, const handle_t &right) const |
| bool | has_edge (const edge_t &edge) const |
| Convenient wrapper of has_edge for edge_t argument. More... | |
| virtual size_t | get_edge_count () const |
| virtual size_t | get_total_length () const |
| virtual char | get_base (const handle_t &handle, size_t index) const |
| virtual std::string | get_subsequence (const handle_t &handle, size_t index, size_t size) const |
| handle_t | forward (const handle_t &handle) const |
| Get the locally forward version of a handle. More... | |
| edge_t | edge_handle (const handle_t &left, const handle_t &right) const |
| handle_t | traverse_edge_handle (const edge_t &edge, const handle_t &left) const |
| template<typename Iteratee > | |
| bool | for_each_edge (const Iteratee &iteratee, bool parallel=false) const |
Public Member Functions inherited from handlegraph::PathHandleGraph | |
| virtual | ~PathHandleGraph ()=default |
| virtual size_t | get_step_count (const handle_t &handle) const |
| Returns the number of node steps on a handle. More... | |
| template<typename Iteratee > | |
| bool | for_each_path_handle (const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_step_on_handle (const handle_t &handle, const Iteratee &iteratee) const |
| virtual std::vector< step_handle_t > | steps_of_handle (const handle_t &handle, bool match_orientation=false) const |
| virtual bool | is_empty (const path_handle_t &path_handle) const |
| Returns true if the given path is empty, and false otherwise. More... | |
| PathForEachSocket | scan_path (const path_handle_t &path) const |
| template<typename Iteratee > | |
| bool | for_each_step_in_path (const path_handle_t &path, const Iteratee &iteratee) const |
Public Member Functions inherited from handlegraph::PathMetadata | |
| virtual | ~PathMetadata ()=default |
| virtual PathSense | get_sense (const path_handle_t &handle) const |
| What is the given path meant to be representing? More... | |
| virtual std::string | get_sample_name (const path_handle_t &handle) const |
| virtual std::string | get_locus_name (const path_handle_t &handle) const |
| virtual size_t | get_haplotype (const path_handle_t &handle) const |
| virtual size_t | get_phase_block (const path_handle_t &handle) const |
| virtual subrange_t | get_subrange (const path_handle_t &handle) const |
| template<typename Iteratee > | |
| bool | for_each_path_of_sense (const PathSense &sense, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_path_of_sense (const std::unordered_set< PathSense > &senses, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_path_of_sample (const std::string &sample, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_path_of_sample (const std::unordered_set< std::string > &samples, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_path_matching (const std::unordered_set< PathSense > *senses, const std::unordered_set< std::string > *samples, const std::unordered_set< std::string > *loci, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_path_matching (const std::unordered_set< PathSense > &senses, const std::unordered_set< std::string > &samples, const std::unordered_set< std::string > &loci, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_step_of_sense (const handle_t &visited, const PathSense &sense, const Iteratee &iteratee) const |
| template<typename Iteratee > | |
| bool | for_each_step_of_sense (const handle_t &visited, const std::unordered_set< PathSense > &senses, const Iteratee &iteratee) const |
Protected Member Functions | |
| virtual bool | for_each_path_handle_impl (const std::function< bool(const path_handle_t &)> &iteratee) const |
| virtual bool | for_each_step_on_handle_impl (const handle_t &handle, const std::function< bool(const step_handle_t &)> &iteratee) const |
Protected Member Functions inherited from vg::SubgraphOverlay | |
| virtual bool | follow_edges_impl (const handle_t &handle, bool go_left, const std::function< bool(const handle_t &)> &iteratee) const |
| virtual bool | for_each_handle_impl (const std::function< bool(const handle_t &)> &iteratee, bool parallel=false) const |
Protected Member Functions inherited from handlegraph::PathMetadata | |
| virtual bool | for_each_path_matching_impl (const std::unordered_set< PathSense > *senses, const std::unordered_set< std::string > *samples, const std::unordered_set< std::string > *loci, const std::function< bool(const path_handle_t &)> &iteratee) const |
| virtual bool | for_each_step_of_sense_impl (const handle_t &visited, const PathSense &sense, const std::function< bool(const step_handle_t &)> &iteratee) const |
| virtual bool | for_each_step_of_sense_impl (const handle_t &visited, const std::unordered_set< PathSense > &senses, const std::function< bool(const step_handle_t &)> &iteratee) const |
Protected Attributes | |
| const PathHandleGraph * | backing_path_graph |
| the backing path graph, just to not have to bother with dynamic cast More... | |
| unordered_set< path_handle_t > | path_subset |
| the subset of paths from the backing graph that are entirely contained within our subgraph More... | |
Protected Attributes inherited from vg::SubgraphOverlay | |
| const HandleGraph * | backing_graph |
| the backing graph More... | |
| const unordered_set< nid_t > * | node_subset |
| nid_t | min_node = 0 |
| keep min_node_id() and max_node_id() constant More... | |
| nid_t | max_node = 0 |
Additional Inherited Members | |
Static Public Member Functions inherited from handlegraph::PathMetadata | |
| static PathSense | parse_sense (const std::string &path_name) |
| static std::string | parse_sample_name (const std::string &path_name) |
| static std::string | parse_locus_name (const std::string &path_name) |
| static size_t | parse_haplotype (const std::string &path_name) |
| static size_t | parse_phase_block (const std::string &path_name) |
| static subrange_t | parse_subrange (const std::string &path_name) |
| static void | parse_path_name (const std::string &path_name, PathSense &sense, std::string &sample, std::string &locus, size_t &haplotype, size_t &phase_block, subrange_t &subrange) |
| Decompose a formatted path name into metadata. More... | |
| static std::string | create_path_name (const PathSense &sense, const std::string &sample, const std::string &locus, const size_t &haplotype, const size_t &phase_block, const subrange_t &subrange) |
Static Public Attributes inherited from handlegraph::PathMetadata | |
| static const std::string | NO_SAMPLE_NAME = "" |
| static const std::string | NO_LOCUS_NAME = "" |
| static const size_t | NO_HAPLOTYPE = std::numeric_limits<size_t>::max() |
| static const size_t | NO_PHASE_BLOCK = std::numeric_limits<size_t>::max() |
| static const subrange_t | NO_SUBRANGE {PathMetadata::NO_END_POSITION, PathMetadata::NO_END_POSITION} |
| static const offset_t | NO_END_POSITION = std::numeric_limits<offset_t>::max() |
Present a PathHandleGraph that is a backing HandleGraph but restricted to a subset of nodes.
Warning: we don't yet have a subgraph interface. So we only consider paths from the backing graph that are fully contained in the subgraph.
| vg::PathSubgraphOverlay::PathSubgraphOverlay | ( | const PathHandleGraph * | backing, |
| const unordered_set< nid_t > * | node_subset | ||
| ) |
Make a new PathSubgraphOverlay. The backing graph must not be modified while the overlay exists.
|
virtual |
|
protectedvirtual |
Execute a function on each path in the graph. If it returns false, stop iteration. Returns true if we finished and false if we stopped early.
Implements handlegraph::PathHandleGraph.
|
protectedvirtual |
Execute a function on each step of a handle in any path. If it returns false, stop iteration. Returns true if we finished and false if we stopped early.
Implements handlegraph::PathHandleGraph.
|
virtual |
Get a node handle (node ID and orientation) from a handle to an step on a path.
Implements handlegraph::PathHandleGraph.
|
virtual |
Look up whether a path is circular.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns a handle to the next step on the path. If the given step is the final step of a non-circular path, this method has undefined behavior. In a circular path, the "last" step will loop around to the "first" step.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns the number of paths stored in the graph.
Implements handlegraph::PathHandleGraph.
|
virtual |
Look up the path handle for the given path name. The path with that name must exist.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns a handle to the path that an step is on.
Implements handlegraph::PathHandleGraph.
|
virtual |
Look up the name of a path from a handle to it.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns a handle to the previous step on the path. If the given step is the first step of a non-circular path, this method has undefined behavior. In a circular path, it will loop around from the "first" step (i.e. the one returned by path_begin) to the "last" step.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns the number of node steps in the path.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns true if the step is not the last step in a non-circular path.
Implements handlegraph::PathHandleGraph.
|
virtual |
Determine if a path name exists and is legal to get a path handle for.
Implements handlegraph::PathHandleGraph.
|
virtual |
Returns true if the step is not the first step in a non-circular path.
Implements handlegraph::PathHandleGraph.
|
virtual |
Get a handle to the last step, which will be an arbitrary step in a circular path that we consider "last" based on our construction of the path. If the path is empty then the implementation must return the same value as path_front_end().
Implements handlegraph::PathHandleGraph.
|
virtual |
Get a handle to the first step, which will be an arbitrary step in a circular path that we consider "first" based on our construction of the path. If the path is empty, then the implementation must return the same value as path_end().
Implements handlegraph::PathHandleGraph.
|
virtual |
Get a handle to a fictitious position past the end of a path. This position is returned by get_next_step for the final step in a path in a non-circular path. Note: get_next_step will NEVER return this value for a circular path.
Implements handlegraph::PathHandleGraph.
|
virtual |
Get a handle to a fictitious position before the beginning of a path. This position is return by get_previous_step for the first step in a path in a non-circular path. Note: get_previous_step will NEVER return this value for a circular path.
Implements handlegraph::PathHandleGraph.
|
protected |
the backing path graph, just to not have to bother with dynamic cast
|
protected |
the subset of paths from the backing graph that are entirely contained within our subgraph
1.9.1