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

#include <hts_alignment_emitter.hpp>

Inheritance diagram for vg::SplicedHTSAlignmentEmitter:
vg::HTSAlignmentEmitter vg::io::AlignmentEmitter vg::HTSWriter

Public Member Functions

 SplicedHTSAlignmentEmitter (const string &filename, const string &format, const vector< pair< string, int64_t >> &path_order_and_length, const unordered_map< string, int64_t > &subpath_to_length, const PathPositionHandleGraph &graph, size_t max_threads)
 
 ~SplicedHTSAlignmentEmitter ()=default
 
- Public Member Functions inherited from vg::HTSAlignmentEmitter
 HTSAlignmentEmitter (const string &filename, const string &format, const vector< pair< string, int64_t >> &path_order_and_length, const unordered_map< string, int64_t > &subpath_to_length, size_t max_threads)
 
 ~HTSAlignmentEmitter ()=default
 Tear down an HTSAlignmentEmitter and destroy HTSlib structures. More...
 
 HTSAlignmentEmitter (const HTSAlignmentEmitter &other)=delete
 
HTSAlignmentEmitteroperator= (const HTSAlignmentEmitter &other)=delete
 
 HTSAlignmentEmitter (HTSAlignmentEmitter &&other)=delete
 
HTSAlignmentEmitteroperator= (HTSAlignmentEmitter &&other)=delete
 
void emit_singles (vector< Alignment > &&aln_batch)
 Emit a batch of Alignments. More...
 
void emit_mapped_singles (vector< vector< Alignment >> &&alns_batch)
 
void emit_pairs (vector< Alignment > &&aln1_batch, vector< Alignment > &&aln2_batch, vector< int64_t > &&tlen_limit_batch)
 Emit a batch of pairs of Alignments. More...
 
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 Member Functions inherited from vg::HTSWriter
 HTSWriter (const string &filename, const string &format, const vector< pair< string, int64_t >> &path_order_and_length, const unordered_map< string, int64_t > &subpath_to_length, size_t max_threads)
 
 ~HTSWriter ()
 Tear down an HTSWriter and destroy HTSlib structures. More...
 
 HTSWriter (const HTSWriter &other)=delete
 
HTSWriteroperator= (const HTSWriter &other)=delete
 
 HTSWriter (HTSWriter &&other)=delete
 
HTSWriteroperator= (HTSWriter &&other)=delete
 

Public Attributes

size_t min_splice_length = 20
 The minimum length of a deletion relative to the path that will be coded as a splice junction in the CIGAR. More...
 

Private Member Functions

void convert_alignment (const Alignment &aln, vector< pair< int, char >> &cigar, bool &pos_rev, int64_t &pos, string &path_name) const
 Override for convert alignment that converts splices implicitly. More...
 
vector< pair< int, char > > spliced_cigar_against_path (const Alignment &aln, const string &path_name, int64_t pos, bool rev) const
 

Private Attributes

const PathPositionHandleGraphgraph
 Graph that alignments were aligned against. More...
 

Additional Inherited Members

- Protected Member Functions inherited from vg::HTSWriter
void save_records (bam_hdr_t *header, vector< bam1_t * > &records, size_t thread_number)
 
bam_hdr_t * ensure_header (const string &read_group, const string &sample_name, size_t thread_number)
 
void initialize_sam_file (bam_hdr_t *header, size_t thread_number, bool keep_header=false)
 
- Protected Attributes inherited from vg::HTSWriter
unique_ptr< ofstream > out_file
 If we are doing output to a file, this will hold the open file. Otherwise (for stdout) it will be empty. More...
 
vg::io::StreamMultiplexer multiplexer
 
string format
 This holds our format name, for later error messages. More...
 
vector< pair< string, int64_t > > path_order_and_length
 Store the path names and lengths in the order to put them in the header. More...
 
unordered_map< string, int64_t > subpath_to_length
 
vector< hFILE * > backing_files
 
vector< samFile * > sam_files
 
atomic< bam_hdr_t * > atomic_header
 We need a header. More...
 
string sam_header
 
mutex header_mutex
 If the header isn't present when we want to write, we need a mutex to control creating it. More...
 
bool output_is_bgzf
 
string hts_mode
 Remember the HTSlib mode string we need to open our files. More...
 
- Static Protected Attributes inherited from vg::HTSWriter
static const size_t BGZF_FOOTER_LENGTH = 28
 We hack about with htslib's BGZF EOF footers, so we need to know how long they are. More...
 

Constructor & Destructor Documentation

◆ SplicedHTSAlignmentEmitter()

vg::SplicedHTSAlignmentEmitter::SplicedHTSAlignmentEmitter ( const string &  filename,
const string &  format,
const vector< pair< string, int64_t >> &  path_order_and_length,
const unordered_map< string, int64_t > &  subpath_to_length,
const PathPositionHandleGraph graph,
size_t  max_threads 
)

◆ ~SplicedHTSAlignmentEmitter()

vg::SplicedHTSAlignmentEmitter::~SplicedHTSAlignmentEmitter ( )
default

Member Function Documentation

◆ convert_alignment()

void vg::SplicedHTSAlignmentEmitter::convert_alignment ( const Alignment aln,
vector< pair< int, char >> &  cigar,
bool &  pos_rev,
int64_t &  pos,
string &  path_name 
) const
privatevirtual

Override for convert alignment that converts splices implicitly.

Reimplemented from vg::HTSAlignmentEmitter.

◆ spliced_cigar_against_path()

vector< pair< int, char > > vg::SplicedHTSAlignmentEmitter::spliced_cigar_against_path ( const Alignment aln,
const string &  path_name,
int64_t  pos,
bool  rev 
) const
private

Convert a spliced alignment against a path to a cigar. The alignment must be colinear along a path and contain only mappings on the path, but it can have deletions relative to the path that follow edges in the graph.

Member Data Documentation

◆ graph

const PathPositionHandleGraph& vg::SplicedHTSAlignmentEmitter::graph
private

Graph that alignments were aligned against.

◆ min_splice_length

size_t vg::SplicedHTSAlignmentEmitter::min_splice_length = 20

The minimum length of a deletion relative to the path that will be coded as a splice junction in the CIGAR.


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