vg
tools for working with variation graphs
|
#include <graph_caller.hpp>
Public Member Functions | |
LegacyCaller (const PathPositionHandleGraph &graph, SupportBasedSnarlCaller &snarl_caller, SnarlManager &snarl_manager, const string &sample_name, const vector< string > &ref_paths={}, const vector< size_t > &ref_path_offsets={}, const vector< int > &ref_path_ploidies={}) | |
virtual | ~LegacyCaller () |
virtual bool | call_snarl (const Snarl &snarl) |
Call a given snarl, and print the output to out_stream. More... | |
virtual string | vcf_header (const PathHandleGraph &graph, const vector< string > &contigs, const vector< size_t > &contig_length_overrides={}) const |
Write the vcf header (version and contigs and basic info) More... | |
![]() | |
GraphCaller (SnarlCaller &snarl_caller, SnarlManager &snarl_manager) | |
virtual | ~GraphCaller () |
virtual void | call_top_level_snarls (const HandleGraph &graph, RecurseType recurse_type=RecurseOnFail) |
virtual void | call_top_level_chains (const HandleGraph &graph, size_t max_edges, size_t max_trivial, RecurseType recurise_type=RecurseOnFail) |
void | set_show_progress (bool show_progress) |
toggle progress messages More... | |
![]() | |
VCFOutputCaller (const string &sample_name) | |
virtual | ~VCFOutputCaller () |
bool | add_variant (vcflib::Variant &var) const |
void | write_variants (ostream &out_stream, const SnarlManager *snarl_manager=nullptr) |
void | vcf_fixup (vcflib::Variant &var) const |
Run vcffixup from vcflib. More... | |
void | set_translation (const unordered_map< nid_t, pair< string, size_t >> *translation) |
Add a translation map. More... | |
void | set_nested (bool nested) |
Assume writing nested snarls is enabled. More... | |
Protected Member Functions | |
pair< vector< SnarlTraversal >, vector< int > > | top_down_genotype (const Snarl &snarl, TraversalFinder &trav_finder, int ploidy, const string &ref_path_name, pair< size_t, size_t > ref_interval) const |
SnarlTraversal | get_reference_traversal (const Snarl &snarl, TraversalFinder &trav_finder) const |
we need the reference traversal for VCF, but if the ref is not called, the above method won't find it. More... | |
tuple< vector< SnarlTraversal >, vector< int >, unique_ptr< SnarlCaller::CallInfo > > | re_genotype (const Snarl &snarl, TraversalFinder &trav_finder, const vector< SnarlTraversal > &in_traversals, const vector< int > &in_genotype, int ploidy, const string &ref_path_name, pair< size_t, size_t > ref_interval) const |
bool | is_traversable (const Snarl &snarl) |
check if a site can be handled by the RepresentativeTraversalFinder More... | |
pair< string, PathIndex * > | find_index (const Snarl &snarl, const vector< PathIndex * > path_indexes) const |
look up a path index for a site and return its name too More... | |
![]() | |
vector< Chain > | break_chain (const HandleGraph &graph, const Chain &chain, size_t max_edges, size_t max_trivial) |
Break up a chain into bits that we want to call using size heuristics. More... | |
![]() | |
void | add_allele_path_to_info (const HandleGraph *graph, vcflib::Variant &v, int allele, const Traversal &trav, bool reversed, bool one_based) const |
add a traversal to the VCF info field in the format of a GFA W-line or GAF path More... | |
void | add_allele_path_to_info (vcflib::Variant &v, int allele, const SnarlTraversal &trav, bool reversed, bool one_based) const |
legacy version of above More... | |
string | trav_string (const HandleGraph &graph, const SnarlTraversal &trav) const |
convert a traversal into an allele string More... | |
bool | emit_variant (const PathPositionHandleGraph &graph, SnarlCaller &snarl_caller, const Snarl &snarl, const vector< SnarlTraversal > &called_traversals, const vector< int > &genotype, int ref_trav_idx, const unique_ptr< SnarlCaller::CallInfo > &call_info, const string &ref_path_name, int ref_offset, bool genotype_snarls, int ploidy, function< string(const vector< SnarlTraversal > &, const vector< int > &, int, int, int)> trav_to_string=nullptr) |
tuple< int64_t, int64_t, bool, step_handle_t, step_handle_t > | get_ref_interval (const PathPositionHandleGraph &graph, const Snarl &snarl, const string &ref_path_name) const |
pair< string, int64_t > | get_ref_position (const PathPositionHandleGraph &graph, const Snarl &snarl, const string &ref_path_name, int64_t ref_path_offset) const |
used for making gaf traversal names More... | |
void | flatten_common_allele_ends (vcflib::Variant &variant, bool backward, size_t len_override) const |
string | print_snarl (const HandleGraph *grpah, const handle_t &snarl_start, const handle_t &snarl_end, bool in_brackets=false) const |
string | print_snarl (const Snarl &snarl, bool in_brackets=false) const |
legacy version of above More... | |
void | scan_snarl (const string &allele_string, function< void(const string &, Snarl &)> callback) const |
void | update_nesting_info_tags (const SnarlManager *snarl_manager) |
Protected Attributes | |
const PathPositionHandleGraph & | graph |
the graph More... | |
bool | is_vg |
RepresentativeTraversalFinder * | traversal_finder |
vector< PathIndex * > | path_indexes |
Needed by above (only used when working on vg inputs – generated on the fly otherwise) More... | |
vector< string > | ref_paths |
keep track of the reference paths More... | |
map< string, size_t > | ref_offsets |
keep track of offsets in the reference paths More... | |
map< string, int > | ref_ploidies |
keep track of ploidies in the reference paths More... | |
int | max_search_depth = 1000 |
Tuning. More... | |
int | max_search_width = 1000 |
size_t | max_bubble_paths = 100 |
![]() | |
SnarlCaller & | snarl_caller |
Our Genotyper. More... | |
SnarlManager & | snarl_manager |
Our snarls. More... | |
bool | show_progress |
Toggle progress messages. More... | |
![]() | |
vcflib::VariantCallFile | output_vcf |
output vcf More... | |
string | sample_name |
Sample name. More... | |
vector< vector< pair< pair< string, size_t >, string > > > | output_variants |
size_t | max_uncalled_alleles = 5 |
print up to this many uncalled alleles when doing ref-genotpes in -a mode More... | |
const unordered_map< nid_t, pair< string, size_t > > * | translation |
bool | include_nested |
Additional Inherited Members | |
![]() | |
enum | RecurseType { RecurseOnFail, RecurseAlways, RecurseNever } |
![]() | |
static const int64_t | max_vcf_line_length = 2000000000 |
LegacyCaller : Preserves (most of) the old vg call logic by using the RepresentativeTraversalFinder to recursively find traversals through arbitrary sites.
vg::LegacyCaller::LegacyCaller | ( | const PathPositionHandleGraph & | graph, |
SupportBasedSnarlCaller & | snarl_caller, | ||
SnarlManager & | snarl_manager, | ||
const string & | sample_name, | ||
const vector< string > & | ref_paths = {} , |
||
const vector< size_t > & | ref_path_offsets = {} , |
||
const vector< int > & | ref_path_ploidies = {} |
||
) |
|
virtual |
|
virtual |
Call a given snarl, and print the output to out_stream.
Implements vg::GraphCaller.
|
protected |
look up a path index for a site and return its name too
|
protected |
we need the reference traversal for VCF, but if the ref is not called, the above method won't find it.
|
protected |
check if a site can be handled by the RepresentativeTraversalFinder
|
protected |
re-genotype output of top_down_genotype. it may give slightly different results as it's working with fully-defined traversals and can exactly determine lengths and supports it will also make sure the reference traversal is in the beginning of the output
|
protected |
recursively genotype a snarl todo: can this be pushed to a more generic class?
|
virtual |
Write the vcf header (version and contigs and basic info)
Reimplemented from vg::VCFOutputCaller.
|
protected |
the graph
|
protected |
non-vg inputs are converted into vg as-needed, at least until we get the traversal finding ported
|
protected |
What's the maximum number of bubble path combinations we can explore while finding one with maximum support?
|
protected |
Tuning.
How many nodes should we be willing to look at on our path back to the primary path? Keep in mind we need to look at all valid paths (and all combinations thereof) until we find a valid pair.
|
protected |
How many search states should we allow on the DFS stack when searching for traversals?
|
protected |
Needed by above (only used when working on vg inputs – generated on the fly otherwise)
|
protected |
keep track of offsets in the reference paths
|
protected |
keep track of the reference paths
|
protected |
keep track of ploidies in the reference paths
|
protected |