vg
tools for working with variation graphs
|
#include <surjecting_alignment_emitter.hpp>
Public Member Functions | |
SurjectingAlignmentEmitter (const PathPositionHandleGraph *graph, unordered_set< path_handle_t > paths, unique_ptr< AlignmentEmitter > &&backing, bool prune_suspicious_anchors=false, bool add_graph_alignment_tag=false, bool report_supplementary=false) | |
virtual void | emit_singles (vector< Alignment > &&aln_batch) |
Emit a batch of Alignments. More... | |
virtual void | emit_mapped_singles (vector< vector< Alignment >> &&alns_batch) |
Emit batch of Alignments with secondaries. All secondaries must have is_secondary set already. More... | |
virtual void | emit_pairs (vector< Alignment > &&aln1_batch, vector< Alignment > &&aln2_batch, vector< int64_t > &&tlen_limit_batch) |
virtual void | emit_mapped_pairs (vector< vector< Alignment >> &&alns1_batch, vector< vector< Alignment >> &&alns2_batch, vector< int64_t > &&tlen_limit_batch) |
virtual void | emit_extra_message (const std::string &tag, std::string &&data) |
Emit some extra type-tagged data, if the backing format supports it. More... | |
![]() | |
virtual void | emit_single (Alignment &&aln) |
Emit a single Alignment. More... | |
virtual void | emit_mapped_single (vector< Alignment > &&alns) |
Emit a single Alignment with secondaries. All secondaries must have is_secondary set already. More... | |
virtual void | emit_pair (Alignment &&aln1, Alignment &&aln2, int64_t tlen_limit=0) |
virtual void | emit_mapped_pair (vector< Alignment > &&alns1, vector< Alignment > &&alns2, int64_t tlen_limit=0) |
virtual | ~AlignmentEmitter ()=default |
Allow destruction through base class pointer. More... | |
Public Attributes | |
bool | surject_subpath_global = true |
Force full length alignment in surjection resolution. More... | |
Protected Member Functions | |
void | surject_alignments_in_place (vector< Alignment > &alns) const |
Surject unpaired alignments in place. More... | |
void | surject_paired_alignments_in_place (vector< Alignment > &alns1, vector< Alignment > &alns2, vector< Alignment > &supplementary_alns) const |
Surject paired alignments in place and separate out supplementary alignments. More... | |
Protected Attributes | |
Surjector | surjector |
Surjector used to do the surjection. More... | |
unordered_set< path_handle_t > | paths |
Paths to surject into. More... | |
unique_ptr< AlignmentEmitter > | backing |
AlignmentEmitter to emit to once done. More... | |
An AlignmentEmitter implementation that surjects alignments before emitting them via a backing AlignmentEmitter, which it owns.
vg::SurjectingAlignmentEmitter::SurjectingAlignmentEmitter | ( | const PathPositionHandleGraph * | graph, |
unordered_set< path_handle_t > | paths, | ||
unique_ptr< AlignmentEmitter > && | backing, | ||
bool | prune_suspicious_anchors = false , |
||
bool | add_graph_alignment_tag = false , |
||
bool | report_supplementary = false |
||
) |
Surject alignments using the given graph, into the given paths, and send them to the given AlignmentEmitter. Takes ownership of the AlignmentEmitter. Copies the set of paths.
If prune_suspicious_anchors is set, prunes out repetitive-looking anchors when surjecting and lets those parts of reads be realigned.
|
virtual |
Emit some extra type-tagged data, if the backing format supports it.
Reimplemented from vg::io::AlignmentEmitter.
|
virtual |
Emit the mappings of a batch of pairs of Alignments. All secondaries must have is_secondary set already. The tlen_limit_batch, if specified, is the maximum pairing distance for each pair to flag properly paired, if the output format cares about such things. TODO: Move to a properly paired annotation that runs with the Alignment.
Both ends of each pair must have the same number of mappings.
Implements vg::io::AlignmentEmitter.
|
virtual |
Emit batch of Alignments with secondaries. All secondaries must have is_secondary set already.
Implements vg::io::AlignmentEmitter.
|
virtual |
Emit a batch of pairs of Alignments. The tlen_limit_batch, if specified, is the maximum pairing distance for ewch pair to flag properly paired, if the output format cares about such things. TODO: Move to a properly paired annotation that runs with the Alignment.
Implements vg::io::AlignmentEmitter.
|
virtual |
Emit a batch of Alignments.
Implements vg::io::AlignmentEmitter.
|
protected |
Surject unpaired alignments in place.
|
protected |
Surject paired alignments in place and separate out supplementary alignments.
|
protected |
AlignmentEmitter to emit to once done.
|
protected |
Paths to surject into.
bool vg::SurjectingAlignmentEmitter::surject_subpath_global = true |
Force full length alignment in surjection resolution.