vg
tools for working with variation graphs
Loading...
Searching...
No Matches
chains_main.cpp File Reference
#include "subcommand.hpp"
#include "../gbwt_helper.hpp"
#include "../snarl_distance_index.hpp"
#include "../snarls.hpp"
#include <sdsl/int_vector.hpp>
#include <vg/io/vpkg.hpp>
#include <fstream>
#include <iostream>
#include <tuple>
#include <vector>
#include <getopt.h>

Classes

struct  ChainsConfig

Functions

void write_binary (const std::vector< sdsl::int_vector<> > &chains, std::ostream &out)
void write_gfa_paths (const std::vector< sdsl::int_vector<> > &chains, std::ostream &out)
gbwt::vector_type extract_chain (const SnarlDistanceIndex &distance_index, const HandleGraph &graph, net_handle_t chain, size_t chain_id)
gbwt::vector_type extract_chain (const SnarlManager &snarls, const HandleGraph &graph, const Chain &chain, size_t chain_id)
sdsl::int_vector normalize_chain (gbwt::vector_type &chain)
int main_chains (int argc, char **argv)
void help_chains (char **argv)
net_handle_t follow_chain (const SnarlDistanceIndex &distance_index, const HandleGraph &graph, size_t chain_id, net_handle_t curr)
void try_append (gbwt::vector_type &chain, gbwt::node_type start, gbwt::node_type end)

Detailed Description

Defines the "vg chains" subcommand, which extracts the handles in top-level chains from a distance index or a snarl file.

NOTE: If a component (~chromosome) does not start with a shared node, the top-level chain is not unique. For example, if the component starts with edges (u, w) and (v, w), the chain may start with either u or v.

TODO: Option to get chain (~contig, chromosome) names from a graph.

TODO: Full GFA format with segments and jumps.

Function Documentation

◆ extract_chain() [1/2]

gbwt::vector_type extract_chain ( const SnarlDistanceIndex & distance_index,
const HandleGraph & graph,
net_handle_t chain,
size_t chain_id )

◆ extract_chain() [2/2]

gbwt::vector_type extract_chain ( const SnarlManager & snarls,
const HandleGraph & graph,
const Chain & chain,
size_t chain_id )

◆ follow_chain()

net_handle_t follow_chain ( const SnarlDistanceIndex & distance_index,
const HandleGraph & graph,
size_t chain_id,
net_handle_t curr )

◆ help_chains()

void help_chains ( char ** argv)

◆ main_chains()

int main_chains ( int argc,
char ** argv )

◆ normalize_chain()

sdsl::int_vector normalize_chain ( gbwt::vector_type & chain)

◆ try_append()

void try_append ( gbwt::vector_type & chain,
gbwt::node_type start,
gbwt::node_type end )

◆ write_binary()

void write_binary ( const std::vector< sdsl::int_vector<> > & chains,
std::ostream & out )

◆ write_gfa_paths()

void write_gfa_paths ( const std::vector< sdsl::int_vector<> > & chains,
std::ostream & out )