vg
tools for working with variation graphs
Classes | Functions
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 
)