|
virtual | ~MutableHandleGraph ()=default |
|
virtual handle_t | create_handle (const std::string &sequence)=0 |
|
virtual handle_t | create_handle (const std::string &sequence, const nid_t &id)=0 |
|
virtual void | create_edge (const handle_t &left, const handle_t &right)=0 |
|
void | create_edge (const edge_t &edge) |
| Convenient wrapper for create_edge. More...
|
|
virtual handle_t | apply_orientation (const handle_t &handle)=0 |
|
virtual std::vector< handle_t > | divide_handle (const handle_t &handle, const std::vector< size_t > &offsets)=0 |
|
std::pair< handle_t, handle_t > | divide_handle (const handle_t &handle, size_t offset) |
| Specialization of divide_handle for a single division point. More...
|
|
virtual void | optimize (bool allow_id_reassignment=true)=0 |
|
virtual void | apply_ordering (const std::vector< handle_t > &order, bool compact_ids=false)=0 |
|
virtual void | set_id_increment (const nid_t &min_id)=0 |
|
virtual void | increment_node_ids (nid_t increment) |
|
virtual void | reassign_node_ids (const std::function< nid_t(const nid_t &)> &get_new_id)=0 |
|
Public Member Functions inherited from handlegraph::HandleGraph |
virtual | ~HandleGraph ()=default |
|
virtual bool | has_node (nid_t node_id) const =0 |
| 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 =0 |
| 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 =0 |
| Get the ID from a handle. More...
|
|
virtual bool | get_is_reverse (const handle_t &handle) const =0 |
| Get the orientation of a handle. More...
|
|
virtual handle_t | flip (const handle_t &handle) const =0 |
| Invert the orientation of a handle (potentially without getting its ID) More...
|
|
virtual size_t | get_length (const handle_t &handle) const =0 |
| Get the length of a node. More...
|
|
virtual std::string | get_sequence (const handle_t &handle) const =0 |
|
virtual size_t | get_node_count () const =0 |
| Return the number of nodes in the graph. More...
|
|
virtual nid_t | min_node_id () const =0 |
|
virtual nid_t | max_node_id () const =0 |
|
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 |
|
This is the interface for a handle graph that supports addition of new graph material.
virtual void handlegraph::MutableHandleGraph::reassign_node_ids |
( |
const std::function< nid_t(const nid_t &)> & |
get_new_id | ) |
|
|
pure virtual |
Renumber all node IDs using the given function, which, given an old ID, returns the new ID. Modifies the graph in place. Invalidates all outstanding handles. If the graph supports paths, they also must be updated. The mapping function may return 0. In this case, the input ID will remain unchanged. The mapping function should not return any ID for which it would return 0.
Implemented in bdsg::PackedGraph, bdsg::HashGraph, vg::VG, and bdsg::ODGI.