The main BAM alignment data structure. More...
#include <BamAlignment.h>
Classes | |
struct | BamAlignmentSupportData |
Public Member Functions | |
BamAlignment (void) | |
constructor | |
BamAlignment (const BamAlignment &other) | |
copy constructor | |
~BamAlignment (void) | |
destructor | |
bool | IsDuplicate (void) const |
bool | IsFailedQC (void) const |
bool | IsFirstMate (void) const |
bool | IsMapped (void) const |
bool | IsMateMapped (void) const |
bool | IsMateReverseStrand (void) const |
bool | IsPaired (void) const |
bool | IsPrimaryAlignment (void) const |
bool | IsProperPair (void) const |
bool | IsReverseStrand (void) const |
bool | IsSecondMate (void) const |
void | SetIsDuplicate (bool ok) |
Sets value of "PCR duplicate" flag to ok. | |
void | SetIsFailedQC (bool ok) |
Sets "failed quality control" flag to ok. | |
void | SetIsFirstMate (bool ok) |
Sets "alignment is first mate" flag to ok. | |
void | SetIsMapped (bool ok) |
Sets "alignment is mapped" flag to ok. | |
void | SetIsMateMapped (bool ok) |
Sets "alignment's mate is mapped" flag to ok. | |
void | SetIsMateReverseStrand (bool ok) |
Sets "alignment's mate mapped to reverse strand" flag to ok. | |
void | SetIsPaired (bool ok) |
Sets "alignment part of paired-end read" flag to ok. | |
void | SetIsPrimaryAlignment (bool ok) |
Sets "position is primary alignment" flag to ok. | |
void | SetIsProperPair (bool ok) |
Sets "alignment is part of read that satisfied paired-end resolution" flag to ok. | |
void | SetIsReverseStrand (bool ok) |
Sets "alignment mapped to reverse strand" flag to ok. | |
void | SetIsSecondMate (bool ok) |
Sets "alignment is second mate on read" flag to ok. | |
template<typename T > | |
bool | AddTag (const std::string &tag, const std::string &type, const T &value) |
template<typename T > | |
bool | AddTag (const std::string &tag, const std::vector< T > &values) |
template<typename T > | |
bool | EditTag (const std::string &tag, const std::string &type, const T &value) |
template<typename T > | |
bool | EditTag (const std::string &tag, const std::vector< T > &values) |
template<typename T > | |
bool | GetTag (const std::string &tag, T &destination) const |
template<typename T > | |
bool | GetTag (const std::string &tag, std::vector< T > &destination) const |
bool | GetTagType (const std::string &tag, char &type) const |
Retrieves the BAM tag type-code associated with requested tag name. | |
bool | HasTag (const std::string &tag) const |
Returns true if alignment has a record for requested tag. | |
void | RemoveTag (const std::string &tag) |
Removes field from BAM tags. | |
bool | BuildCharData (void) |
Populates alignment string fields (read name, bases, qualities, tag data). | |
int | GetEndPosition (bool usePadded=false, bool closedInterval=false) const |
Calculates alignment end position, based on its starting position and CIGAR data. | |
std::string | GetErrorString (void) const |
Returns a human-readable description of the last error that occurred. | |
bool | GetSoftClips (std::vector< int > &clipSizes, std::vector< int > &readPositions, std::vector< int > &genomePositions, bool usePadded=false) const |
Identifies if an alignment has a soft clip. If so, identifies the sizes of the soft clips, as well as their positions in the read and reference. | |
Public Attributes | |
std::string | Name |
read name | |
int32_t | Length |
length of query sequence | |
std::string | QueryBases |
'original' sequence (as reported from sequencing machine) | |
std::string | AlignedBases |
'aligned' sequence (includes any indels, padding, clipping) | |
std::string | Qualities |
FASTQ qualities (ASCII characters, not numeric values). | |
std::string | TagData |
tag data (use the provided methods to query/modify) | |
int32_t | RefID |
ID number for reference sequence. | |
int32_t | Position |
position (0-based) where alignment starts | |
uint16_t | Bin |
BAM (standard) index bin number for this alignment. | |
uint16_t | MapQuality |
mapping quality score | |
uint32_t | AlignmentFlag |
alignment bit-flag (use the provided methods to query/modify) | |
std::vector< CigarOp > | CigarData |
CIGAR operations for this alignment. | |
int32_t | MateRefID |
ID number for reference sequence where alignment's mate was aligned. | |
int32_t | MatePosition |
position (0-based) where alignment's mate starts | |
int32_t | InsertSize |
mate-pair insert size | |
std::string | Filename |
name of BAM file which this alignment comes from | |
Friends | |
class | Internal::BamReaderPrivate |
class | Internal::BamWriterPrivate |
The main BAM alignment data structure.
Provides methods to query/modify BAM alignment data fields.
BamAlignment::BamAlignment | ( | void | ) |
constructor
BamAlignment::BamAlignment | ( | const BamAlignment & | other | ) |
copy constructor
BamAlignment::~BamAlignment | ( | void | ) |
destructor
bool BamTools::BamAlignment::AddTag | ( | const std::string & | tag, | |
const std::vector< T > & | values | |||
) | [inline] |
bool BamTools::BamAlignment::AddTag | ( | const std::string & | tag, | |
const std::string & | type, | |||
const T & | value | |||
) | [inline] |
bool BamAlignment::BuildCharData | ( | void | ) |
Populates alignment string fields (read name, bases, qualities, tag data).
An alignment retrieved using BamReader::GetNextAlignmentCore() lacks this data. Using that method makes parsing much quicker when only positional data is required.
However, if you later want to access the character data fields from such an alignment, use this method to populate those fields. Provides ability to do 'lazy evaluation' of alignment parsing.
true
if character data populated successfully (or was already available to begin with) bool BamTools::BamAlignment::EditTag | ( | const std::string & | tag, | |
const std::vector< T > & | values | |||
) | [inline] |
bool BamTools::BamAlignment::EditTag | ( | const std::string & | tag, | |
const std::string & | type, | |||
const T & | value | |||
) | [inline] |
int BamAlignment::GetEndPosition | ( | bool | usePadded = false , |
|
bool | closedInterval = false | |||
) | const |
Calculates alignment end position, based on its starting position and CIGAR data.
[in] | usePadded | Allow inserted bases to affect the reported position. Default is false, so that reported position stays synced with reference coordinates. |
[in] | closedInterval | Setting this to true will return a 0-based end coordinate. Default is false, so that his value represents a standard, half-open interval. |
std::string BamAlignment::GetErrorString | ( | void | ) | const |
Returns a human-readable description of the last error that occurred.
This method allows elimination of STDERR pollution. Developers of client code may choose how the messages are displayed to the user, if at all.
bool BamAlignment::GetSoftClips | ( | std::vector< int > & | clipSizes, | |
std::vector< int > & | readPositions, | |||
std::vector< int > & | genomePositions, | |||
bool | usePadded = false | |||
) | const |
Identifies if an alignment has a soft clip. If so, identifies the sizes of the soft clips, as well as their positions in the read and reference.
[out] | clipSizes | vector of the sizes of each soft clip in the alignment |
[out] | readPositions | vector of the 0-based read locations of each soft clip in the alignment. These positions are basically indexes within the read, not genomic positions. |
[out] | genomePositions | vector of the 0-based genome locations of each soft clip in the alignment |
[in] | usePadded | inserted bases affect reported position. Default is false, so that reported position stays 'sync-ed' with reference coordinates. |
true
if any soft clips were found in the alignment bool BamTools::BamAlignment::GetTag | ( | const std::string & | tag, | |
std::vector< T > & | destination | |||
) | const [inline] |
bool BamTools::BamAlignment::GetTag | ( | const std::string & | tag, | |
T & | destination | |||
) | const [inline] |
bool BamAlignment::GetTagType | ( | const std::string & | tag, | |
char & | type | |||
) | const |
Retrieves the BAM tag type-code associated with requested tag name.
[in] | tag | 2-character tag name |
[out] | type | retrieved (1-character) type-code |
true
if found bool BamAlignment::HasTag | ( | const std::string & | tag | ) | const |
Returns true if alignment has a record for requested tag.
[in] | tag | 2-character tag name |
true
if alignment has a record for tag bool BamAlignment::IsDuplicate | ( | void | ) | const |
true
if this read is a PCR duplicate bool BamAlignment::IsFailedQC | ( | void | ) | const |
true
if this read failed quality control bool BamAlignment::IsFirstMate | ( | void | ) | const |
true
if alignment is first mate on paired-end read bool BamAlignment::IsMapped | ( | void | ) | const |
true
if alignment is mapped bool BamAlignment::IsMateMapped | ( | void | ) | const |
true
if alignment's mate is mapped bool BamAlignment::IsMateReverseStrand | ( | void | ) | const |
true
if alignment's mate mapped to reverse strand bool BamAlignment::IsPaired | ( | void | ) | const |
true
if alignment part of paired-end read bool BamAlignment::IsPrimaryAlignment | ( | void | ) | const |
true
if reported position is primary alignment bool BamAlignment::IsProperPair | ( | void | ) | const |
true
if alignment is part of read that satisfied paired-end resolution bool BamAlignment::IsReverseStrand | ( | void | ) | const |
true
if alignment mapped to reverse strand bool BamAlignment::IsSecondMate | ( | void | ) | const |
true
if alignment is second mate on read void BamAlignment::RemoveTag | ( | const std::string & | tag | ) |
Removes field from BAM tags.
[in] | tag | 2-character name of field to remove |
void BamAlignment::SetIsDuplicate | ( | bool | ok | ) |
Sets value of "PCR duplicate" flag to ok.
void BamAlignment::SetIsFailedQC | ( | bool | ok | ) |
Sets "failed quality control" flag to ok.
void BamAlignment::SetIsFirstMate | ( | bool | ok | ) |
Sets "alignment is first mate" flag to ok.
void BamAlignment::SetIsMapped | ( | bool | ok | ) |
Sets "alignment is mapped" flag to ok.
void BamAlignment::SetIsMateMapped | ( | bool | ok | ) |
Sets "alignment's mate is mapped" flag to ok.
void BamAlignment::SetIsMateReverseStrand | ( | bool | ok | ) |
Sets "alignment's mate mapped to reverse strand" flag to ok.
void BamAlignment::SetIsPaired | ( | bool | ok | ) |
Sets "alignment part of paired-end read" flag to ok.
void BamAlignment::SetIsPrimaryAlignment | ( | bool | ok | ) |
Sets "position is primary alignment" flag to ok.
void BamAlignment::SetIsProperPair | ( | bool | ok | ) |
Sets "alignment is part of read that satisfied paired-end resolution" flag to ok.
void BamAlignment::SetIsReverseStrand | ( | bool | ok | ) |
Sets "alignment mapped to reverse strand" flag to ok.
void BamAlignment::SetIsSecondMate | ( | bool | ok | ) |
Sets "alignment is second mate on read" flag to ok.
friend class Internal::BamReaderPrivate [friend] |
friend class Internal::BamWriterPrivate [friend] |
'aligned' sequence (includes any indels, padding, clipping)
This field will be completely empty after reading from BamReader/BamMultiReader when QueryBases is empty.
alignment bit-flag (use the provided methods to query/modify)
BAM (standard) index bin number for this alignment.
CIGAR operations for this alignment.
name of BAM file which this alignment comes from
mate-pair insert size
length of query sequence
mapping quality score
position (0-based) where alignment's mate starts
ID number for reference sequence where alignment's mate was aligned.
read name
position (0-based) where alignment starts
FASTQ qualities (ASCII characters, not numeric values).
'original' sequence (as reported from sequencing machine)
ID number for reference sequence.
tag data (use the provided methods to query/modify)