#include <cluster.hpp>
|
| HitGraph (const vector< MaximalExactMatch > &mems, const Alignment &alignment, const GSSWAligner *aligner, size_t min_mem_length=1, bool track_components=false, const match_fanouts_t *fanouts=nullptr) |
| Initializes nodes in the hit graph, but does not add edges. More...
|
|
void | add_edge (size_t from, size_t to, int32_t weight, int64_t distance) |
| Add an edge. More...
|
|
vector< cluster_t > | clusters (const Alignment &alignment, const GSSWAligner *aligner, int32_t max_qual_score, int32_t log_likelihood_approx_factor, size_t min_median_mem_coverage_for_split, double suboptimal_edge_pruning_factor, double cluster_multiplicity_diff) |
| Returns the top scoring connected components. More...
|
|
◆ HitGraph()
Initializes nodes in the hit graph, but does not add edges.
◆ add_edge()
void vg::MEMClusterer::HitGraph::add_edge |
( |
size_t |
from, |
|
|
size_t |
to, |
|
|
int32_t |
weight, |
|
|
int64_t |
distance |
|
) |
| |
◆ clusters()
vector< MEMClusterer::cluster_t > vg::MEMClusterer::HitGraph::clusters |
( |
const Alignment & |
alignment, |
|
|
const GSSWAligner * |
aligner, |
|
|
int32_t |
max_qual_score, |
|
|
int32_t |
log_likelihood_approx_factor, |
|
|
size_t |
min_median_mem_coverage_for_split, |
|
|
double |
suboptimal_edge_pruning_factor, |
|
|
double |
cluster_multiplicity_diff |
|
) |
| |
Returns the top scoring connected components.
◆ component_topological_order()
void vg::MEMClusterer::HitGraph::component_topological_order |
( |
const vector< size_t > & |
component, |
|
|
vector< size_t > & |
order_out |
|
) |
| const |
|
private |
Computes the topological order of.
◆ connected_components()
void vg::MEMClusterer::HitGraph::connected_components |
( |
vector< vector< size_t >> & |
components_out | ) |
const |
|
private |
Identify weakly connected components in the graph.
◆ identify_sources_and_sinks()
void vg::MEMClusterer::HitGraph::identify_sources_and_sinks |
( |
vector< size_t > & |
sources_out, |
|
|
vector< size_t > & |
sinks_out |
|
) |
| const |
|
private |
Fills input vectors with indices of source and sink nodes.
◆ median_mem_coverage()
size_t vg::MEMClusterer::HitGraph::median_mem_coverage |
( |
const vector< size_t > & |
component, |
|
|
const Alignment & |
aln |
|
) |
| const |
|
private |
Returns the median coverage of bases in the reads by bases in the cluster, attempts to remove apparent redundant sub-MEMs
◆ perform_dp()
void vg::MEMClusterer::HitGraph::perform_dp |
( |
| ) |
|
|
private |
Perform dynamic programming and store scores in nodes.
◆ prune_low_scoring_edges()
void vg::MEMClusterer::HitGraph::prune_low_scoring_edges |
( |
vector< vector< size_t >> & |
components, |
|
|
size_t |
component_idx, |
|
|
double |
score_factor |
|
) |
| |
|
private |
Prune edges that are not on any traceback that scores highly compared to the best score in the component, splits up the components (adding some to the end of the vector) if doing so splits a component
◆ topological_order()
void vg::MEMClusterer::HitGraph::topological_order |
( |
vector< size_t > & |
order_out | ) |
const |
|
private |
Fills the input vector with the indices of a topological sort.
◆ components
UnionFind vg::MEMClusterer::HitGraph::components |
|
private |
Keeps track of the connected components.
◆ nodes
vector<HitNode> vg::MEMClusterer::HitGraph::nodes |
◆ track_components
bool vg::MEMClusterer::HitGraph::track_components |
|
private |
Should we actively keep track of connected components?
The documentation for this class was generated from the following files: