vg
tools for working with variation graphs
Classes | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
vg::SnarlSeedClusterer Class Reference

#include <seed_clusterer.hpp>

Classes

struct  NetgraphNode
 
struct  NodeClusters
 
struct  TreeState
 

Public Member Functions

 SnarlSeedClusterer (MinimumDistanceIndex &dist_index)
 
vector< vector< size_t > > cluster_seeds (const vector< pos_t > &seeds, int64_t read_distance_limit) const
 Given a vector of seeds (pos_t) and a distance limit,. More...
 
vector< vector< pair< vector< size_t >, size_t > > > cluster_seeds (const vector< vector< pos_t >> &all_seeds, int64_t read_distance_limit, int64_t fragment_distance_limit=0) const
 The same thing, but for paired end reads. More...
 

Private Types

enum  ChildNodeType { CHAIN, SNARL, NODE }
 

Private Member Functions

tuple< vector< structures::UnionFind >, structures::UnionFind > cluster_seeds_internal (const vector< const vector< pos_t > * > &all_seeds, int64_t read_distance_limit, int64_t fragment_distance_limit=0) const
 
void get_nodes (TreeState &tree_state, vector< hash_map< size_t, vector< pair< NetgraphNode, NodeClusters >>>> &snarl_to_nodes_by_level) const
 
void cluster_snarl_level (TreeState &tree_state, size_t depth) const
 
void cluster_chain_level (TreeState &tree_state, size_t depth) const
 
NodeClusters cluster_one_node (TreeState &tree_state, id_t node_id, int64_t node_length) const
 
NodeClusters cluster_one_chain (TreeState &tree_state, size_t chain_index_i) const
 
NodeClusters cluster_one_snarl (TreeState &tree_state, size_t snarl_index_i) const
 

Static Private Member Functions

static string typeToString (ChildNodeType t)
 

Private Attributes

MinimumDistanceIndexdist_index
 

Member Enumeration Documentation

◆ ChildNodeType

Enumerator
CHAIN 
SNARL 
NODE 

Constructor & Destructor Documentation

◆ SnarlSeedClusterer()

vg::SnarlSeedClusterer::SnarlSeedClusterer ( MinimumDistanceIndex dist_index)

Member Function Documentation

◆ cluster_chain_level()

void vg::SnarlSeedClusterer::cluster_chain_level ( TreeState tree_state,
size_t  depth 
) const
private

◆ cluster_one_chain()

SnarlSeedClusterer::NodeClusters vg::SnarlSeedClusterer::cluster_one_chain ( TreeState tree_state,
size_t  chain_index_i 
) const
private

◆ cluster_one_node()

SnarlSeedClusterer::NodeClusters vg::SnarlSeedClusterer::cluster_one_node ( TreeState tree_state,
id_t  node_id,
int64_t  node_length 
) const
private

◆ cluster_one_snarl()

SnarlSeedClusterer::NodeClusters vg::SnarlSeedClusterer::cluster_one_snarl ( TreeState tree_state,
size_t  snarl_index_i 
) const
private

◆ cluster_seeds() [1/2]

vector< vector< size_t > > vg::SnarlSeedClusterer::cluster_seeds ( const vector< pos_t > &  seeds,
int64_t  read_distance_limit 
) const

Given a vector of seeds (pos_t) and a distance limit,.

◆ cluster_seeds() [2/2]

vector< vector< pair< vector< size_t >, size_t > > > vg::SnarlSeedClusterer::cluster_seeds ( const vector< vector< pos_t >> &  all_seeds,
int64_t  read_distance_limit,
int64_t  fragment_distance_limit = 0 
) const

The same thing, but for paired end reads.

◆ cluster_seeds_internal()

tuple< vector< structures::UnionFind >, structures::UnionFind > vg::SnarlSeedClusterer::cluster_seeds_internal ( const vector< const vector< pos_t > * > &  all_seeds,
int64_t  read_distance_limit,
int64_t  fragment_distance_limit = 0 
) const
private

◆ cluster_snarl_level()

void vg::SnarlSeedClusterer::cluster_snarl_level ( TreeState tree_state,
size_t  depth 
) const
private

◆ get_nodes()

void vg::SnarlSeedClusterer::get_nodes ( TreeState tree_state,
vector< hash_map< size_t, vector< pair< NetgraphNode, NodeClusters >>>> &  snarl_to_nodes_by_level 
) const
private

◆ typeToString()

static string vg::SnarlSeedClusterer::typeToString ( ChildNodeType  t)
inlinestaticprivate

Member Data Documentation

◆ dist_index

MinimumDistanceIndex& vg::SnarlSeedClusterer::dist_index
private

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