BamTagCodec

#include <pbbam/BamTagCodec.h>
class PacBio::BAM::BamTagCodec

The BamTagCodec class provides binary encoding/decoding of BAM tag data.

Note
BamTagCodec is mostly an implementation and/or testing detail, and may be removed from the public API.

Tag Collection Methods

static TagCollection Decode(const std::vector<uint8_t> &data)

Creates a TagCollection from raw BAM data.

Return
TagCollection containing tag data
Parameters
  • data: BAM-formatted (binary) tag data

static std::vector<uint8_t> Encode(const PacBio::BAM::TagCollection &tags)

Creates binary BAM data from a TagCollection.

Return
vector of bytes (encoded BAM data)
Parameters

Per-Tag Methods

static uint8_t TagTypeCode(const PacBio::BAM::Tag &tag, const TagModifier &additionalModifier = TagModifier::NONE)

Determines the SAM/BAM tag code for a Tag.

Return
the SAM/BAM single char code for tag type
Parameters
  • tag: Tag object to check
  • additionalModifier: optional extra modifier (allows explicit modification of an otherwise const Tag)

static std::vector<uint8_t> ToRawData(const PacBio::BAM::Tag &tag, const TagModifier &additionalModifier = TagModifier::NONE)

Encodes a single Tag‘s contents in BAM binary.

Note
This method does NOT encode the tag name & tag type. It does include the element type for array-type tags.
Return
vector of bytes (encoded BAM data)
Parameters
  • tag: Tag object containing data to encode
  • additionalModifier: optional extra modifier (allows explicit modification of an otherwise const Tag)

static PacBio::BAM::Tag FromRawData(uint8_t *rawData)

Creates a Tag object from binary BAM data.

Return
resulting Tag object
Parameters
  • rawData: raw BAM bytes (assumed to be the result of htslib’s bam_aux_get())