vg
tools for working with variation graphs
Loading...
Searching...
No Matches
vg::SplicedHTSAlignmentEmitter Class Reference

#include <hts_alignment_emitter.hpp>

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

Public Member Functions

 SplicedHTSAlignmentEmitter (const string &filename, const string &format, const SequenceDictionary &sequence_dictionary, const unordered_map< string, size_t > &subpath_to_index, const PathPositionHandleGraph &graph, size_t max_threads)
 ~SplicedHTSAlignmentEmitter ()=default
Public Member Functions inherited from vg::HTSAlignmentEmitter
 HTSAlignmentEmitter (const string &filename, const string &format, const SequenceDictionary &sequence_dictionary, const unordered_map< string, size_t > &subpath_to_index, size_t max_threads)
 ~HTSAlignmentEmitter ()=default
 Tear down an HTSAlignmentEmitter and destroy HTSlib structures.
 HTSAlignmentEmitter (const HTSAlignmentEmitter &other)=delete
HTSAlignmentEmitter & operator= (const HTSAlignmentEmitter &other)=delete
 HTSAlignmentEmitter (HTSAlignmentEmitter &&other)=delete
HTSAlignmentEmitter & operator= (HTSAlignmentEmitter &&other)=delete
void emit_singles (vector< Alignment > &&aln_batch)
 Emit a batch of Alignments.
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.
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::HTSWriter
 HTSWriter (const string &filename, const string &format, const SequenceDictionary &sequence_dictionary, const unordered_map< string, size_t > &subpath_to_index, size_t max_threads)
 ~HTSWriter ()
 Tear down an HTSWriter and destroy HTSlib structures.
 HTSWriter (const HTSWriter &other)=delete
HTSWriter & operator= (const HTSWriter &other)=delete
 HTSWriter (HTSWriter &&other)=delete
HTSWriter & operator= (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.

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.

Private Attributes

const PathPositionHandleGraph & graph
 Graph that alignments were aligned against.

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.
vg::io::StreamMultiplexer multiplexer
string format
SequenceDictionary sequence_dictionary
unordered_map< string, size_t > subpath_to_index
 This maps from subpath to entry number in the sequence dictionary.
vector< hFILE * > backing_files
vector< samFile * > sam_files
atomic< bam_hdr_t * > atomic_header
 We need a header.
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.
bool output_is_bgzf
string hts_mode
 Remember the HTSlib mode string we need to open our files.
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.
static const size_t HTSLIB_CRAM_THREADS = 8
 For CRAM output, we use a separate pool of compressor threads inside htslib.

Constructor & Destructor Documentation

◆ SplicedHTSAlignmentEmitter()

vg::SplicedHTSAlignmentEmitter::SplicedHTSAlignmentEmitter ( const string & filename,
const string & format,
const SequenceDictionary & sequence_dictionary,
const unordered_map< string, size_t > & subpath_to_index,
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.

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: