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  Cluster
 Cluster information used in Giraffe. More...
 
struct  NetgraphNode
 
struct  NodeClusters
 
struct  Seed
 Seed information used in Giraffe. More...
 
struct  TreeState
 

Public Member Functions

 SnarlSeedClusterer (MinimumDistanceIndex &dist_index)
 
vector< Clustercluster_seeds (const vector< Seed > &seeds, int64_t read_distance_limit) const
 Given a vector of seeds and a distance limit,. More...
 
vector< vector< Cluster > > cluster_seeds (const vector< vector< Seed >> &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< Seed > * > &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_snarl (TreeState &tree_state, size_t snarl_index_i) const
 
NodeClusters cluster_one_chain (TreeState &tree_state, size_t chain_i, size_t depth) const
 
void cluster_only_top_level_chain_seeds (TreeState &tree_state, vector< pair< size_t, size_t >> &seed_clusters) const
 
hash_set< pair< size_t, size_t > > cluster_simple_snarl (TreeState &tree_state, vector< tuple< id_t, bool, int64_t, int64_t, int64_t >> nodes, int64_t loop_left, int64_t loop_right, int64_t snarl_length) 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_i,
size_t  depth 
) 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_only_top_level_chain_seeds()

void vg::SnarlSeedClusterer::cluster_only_top_level_chain_seeds ( TreeState tree_state,
vector< pair< size_t, size_t >> &  seed_clusters 
) const
private

◆ cluster_seeds() [1/2]

vector< SnarlSeedClusterer::Cluster > vg::SnarlSeedClusterer::cluster_seeds ( const vector< Seed > &  seeds,
int64_t  read_distance_limit 
) const

Given a vector of seeds and a distance limit,.

◆ cluster_seeds() [2/2]

vector< vector< SnarlSeedClusterer::Cluster > > vg::SnarlSeedClusterer::cluster_seeds ( const vector< vector< Seed >> &  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< Seed > * > &  all_seeds,
int64_t  read_distance_limit,
int64_t  fragment_distance_limit = 0 
) const
private

◆ cluster_simple_snarl()

hash_set< pair< size_t, size_t > > vg::SnarlSeedClusterer::cluster_simple_snarl ( TreeState tree_state,
vector< tuple< id_t, bool, int64_t, int64_t, int64_t >>  nodes,
int64_t  loop_left,
int64_t  loop_right,
int64_t  snarl_length 
) 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: