vg
tools for working with variation graphs
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
vg::algorithms::GFAzParser Class Reference

#include <gfaz_to_handle.hpp>

Inheritance diagram for vg::algorithms::GFAzParser:
vg::algorithms::GFAParser

Public Member Functions

void parse (istream &in) override
 
void parse (const string &filename) override
 
- Public Member Functions inherited from vg::algorithms::GFAParser
GFAIDMapInfoid_map ()
 
const GFAIDMapInfoid_map () const
 
virtual ~GFAParser ()=default
 

Static Public Member Functions

static bool looks_like_gfaz (const string &filename)
 
static bool has_magic (const char *buffer, size_t length)
 
- Static Public Member Functions inherited from vg::algorithms::GFAParser
static string extract (const chars_t &range)
 
static size_t length (const chars_t &range)
 
static bool empty (const chars_t &range)
 
static chars_t as_chars (const string &value)
 

Private Member Functions

void handle_duplicate_paths (char line_type, const std::function< void(void)> &callback)
 

Additional Inherited Members

- Public Types inherited from vg::algorithms::GFAParser
using cursor_t = string::const_iterator
 
using chars_t = pair< cursor_t, cursor_t >
 
using tag_list_t = vector< string >
 
using visit_iteratee_t = function< bool(int64_t rank, nid_t node_id, bool is_reverse)>
 
using visit_source_t = function< void(const visit_iteratee_t &)>
 
- Public Attributes inherited from vg::algorithms::GFAParser
vector< std::function< void(const tag_list_t &tags)> > header_listeners
 These listeners are called for the header line(s), if any. More...
 
vector< std::function< void(nid_t id, const chars_t &sequence, const tag_list_t &tags)> > node_listeners
 
vector< std::function< void(nid_t from, bool from_is_reverse, nid_t to, bool to_is_reverse, const chars_t &overlap, const tag_list_t &tags)> > edge_listeners
 
vector< std::function< void(const string &name, const visit_source_t &visits, const tag_list_t &tags)> > path_listeners
 
vector< std::function< void(const string &sample_name, int64_t haplotype, const string &contig_name, const pair< int64_t, int64_t > &subrange, const visit_source_t &visits, const tag_list_t &tags)> > walk_listeners
 
vector< std::function< void(nid_t id, int64_t offset, size_t length, const string &path_name, int64_t path_rank)> > rgfa_listeners
 
unique_ptr< GFAIDMapInfointernal_id_map
 
GFAIDMapInfoexternal_id_map = nullptr
 
int64_t max_rgfa_rank = -1
 
bool stop_on_duplicate_paths = false
 
- Protected Types inherited from vg::algorithms::GFAParser
using text_visit_iteratee_t = function< bool(int64_t rank, const chars_t &node_name, bool is_reverse)>
 Callback shape for receiving path/walk visits internally. More...
 
using text_visit_source_t = function< void(const text_visit_iteratee_t &)>
 Callback shape for being a producer of path/walk visits. More...
 
- Protected Member Functions inherited from vg::algorithms::GFAParser
text_visit_iteratee_t wrap (const visit_iteratee_t &iteratee) const
 
visit_source_t wrap (const text_visit_source_t &source) const
 
- Static Protected Member Functions inherited from vg::algorithms::GFAParser
static tag_list_t parse_tags (const chars_t &tag_range)
 
static tuple< tag_list_tparse_h (const string &h_line)
 
static tuple< string, chars_t, tag_list_tparse_s (const string &s_line)
 
static tuple< string, bool, string, bool, chars_t, tag_list_tparse_l (const string &l_line)
 
static tuple< string, chars_t, chars_t, tag_list_tparse_p (const string &p_line)
 
static tuple< string, size_t, string, pair< int64_t, int64_t >, chars_t, tag_list_tparse_w (const string &p_line)
 
static void scan_p_visits (const chars_t &visit_range, function< bool(int64_t rank, const chars_t &node_name, bool is_reverse)> visit_step)
 
static void scan_w_visits (const chars_t &visit_range, function< bool(int64_t rank, const chars_t &node_name, bool is_reverse)> visit_step)
 
static void scan_visits (const chars_t &visit_range, char line_type, function< bool(int64_t rank, const chars_t &node_name, bool is_reverse)> visit_step)
 
static bool decode_rgfa_tags (const tag_list_t &tags, string *out_name=nullptr, int64_t *out_offset=nullptr, int64_t *out_rank=nullptr)
 
static nid_t assign_new_sequence_id (const string &str, GFAIDMapInfo &id_map_info)
 
static nid_t find_existing_sequence_id (std::string_view str, const GFAIDMapInfo &id_map_info)
 

Detailed Description

GFAZ parser implementation that emits the same listener events from decompressed GFAZ data.

Member Function Documentation

◆ handle_duplicate_paths()

void vg::algorithms::GFAzParser::handle_duplicate_paths ( char  line_type,
const std::function< void(void)> &  callback 
)
private

Wrap a function in a handler for GFADuplicatePathError that reports that a line of the given line tyoe is being skipped.

◆ has_magic()

bool vg::algorithms::GFAzParser::has_magic ( const char *  buffer,
size_t  length 
)
static

Return true if the first sizeof(uint32_t) bytes of the buffer encode the GFAz magic number.

◆ looks_like_gfaz()

bool vg::algorithms::GFAzParser::looks_like_gfaz ( const string &  filename)
static

Return true if the named file begins with the GFAz magic number. Returns false for stdin ("-") or empty filenames.

◆ parse() [1/2]

void vg::algorithms::GFAzParser::parse ( const string &  filename)
overridevirtual

Parse GFA from the given filename. The default implementation opens the file as a text GFA stream and calls the stream parser.

Reimplemented from vg::algorithms::GFAParser.

◆ parse() [2/2]

void vg::algorithms::GFAzParser::parse ( istream &  in)
overridevirtual

Parse GFA from the given stream.

Implements vg::algorithms::GFAParser.


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