vg
tools for working with variation graphs
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
vg::SurjectingAlignmentEmitter Class Reference

#include <surjecting_alignment_emitter.hpp>

Inheritance diagram for vg::SurjectingAlignmentEmitter:
vg::io::AlignmentEmitter

Public Member Functions

 SurjectingAlignmentEmitter (const PathPositionHandleGraph *graph, unordered_set< path_handle_t > paths, unique_ptr< AlignmentEmitter > &&backing, bool prune_suspicious_anchors=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)
 
- Public Member Functions inherited from vg::io::AlignmentEmitter
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 alignments in place. More...
 

Protected Attributes

Surjector surjector
 Surjector used to do the surjection. More...
 
unordered_set< path_handle_tpaths
 Paths to surject into. More...
 
unique_ptr< AlignmentEmitterbacking
 AlignmentEmitter to emit to once done. More...
 

Detailed Description

An AlignmentEmitter implementation that surjects alignments before emitting them via a backing AlignmentEmitter, which it owns.

Constructor & Destructor Documentation

◆ SurjectingAlignmentEmitter()

vg::SurjectingAlignmentEmitter::SurjectingAlignmentEmitter ( const PathPositionHandleGraph graph,
unordered_set< path_handle_t paths,
unique_ptr< AlignmentEmitter > &&  backing,
bool  prune_suspicious_anchors = 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.

Member Function Documentation

◆ emit_mapped_pairs()

void vg::SurjectingAlignmentEmitter::emit_mapped_pairs ( vector< vector< Alignment >> &&  alns1_batch,
vector< vector< Alignment >> &&  alns2_batch,
vector< int64_t > &&  tlen_limit_batch 
)
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.

◆ emit_mapped_singles()

void vg::SurjectingAlignmentEmitter::emit_mapped_singles ( vector< vector< Alignment >> &&  alns_batch)
virtual

Emit batch of Alignments with secondaries. All secondaries must have is_secondary set already.

Implements vg::io::AlignmentEmitter.

◆ emit_pairs()

void vg::SurjectingAlignmentEmitter::emit_pairs ( vector< Alignment > &&  aln1_batch,
vector< Alignment > &&  aln2_batch,
vector< int64_t > &&  tlen_limit_batch 
)
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.

◆ emit_singles()

void vg::SurjectingAlignmentEmitter::emit_singles ( vector< Alignment > &&  aln_batch)
virtual

Emit a batch of Alignments.

Implements vg::io::AlignmentEmitter.

◆ surject_alignments_in_place()

void vg::SurjectingAlignmentEmitter::surject_alignments_in_place ( vector< Alignment > &  alns) const
protected

Surject alignments in place.

Member Data Documentation

◆ backing

unique_ptr<AlignmentEmitter> vg::SurjectingAlignmentEmitter::backing
protected

AlignmentEmitter to emit to once done.

◆ paths

unordered_set<path_handle_t> vg::SurjectingAlignmentEmitter::paths
protected

Paths to surject into.

◆ surject_subpath_global

bool vg::SurjectingAlignmentEmitter::surject_subpath_global = true

Force full length alignment in surjection resolution.

◆ surjector

Surjector vg::SurjectingAlignmentEmitter::surjector
protected

Surjector used to do the surjection.


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