X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FBamAlignment.h;h=0f4fe7366dd3f8096b9f7c775f673188d81d1d41;hb=b307a397f7d818d0fa064b91229e312707e43951;hp=22535c981a648a0b7f81b7cfc8b19b7b84effbe2;hpb=1b1108713c795c05fc845ba6373efcf4166acf43;p=bamtools.git diff --git a/src/api/BamAlignment.h b/src/api/BamAlignment.h index 22535c9..0f4fe73 100644 --- a/src/api/BamAlignment.h +++ b/src/api/BamAlignment.h @@ -2,7 +2,7 @@ // BamAlignment.h (c) 2009 Derek Barnett // Marth Lab, Department of Biology, Boston College // --------------------------------------------------------------------------- -// Last modified: 12 October 2011 (DB) +// Last modified: 25 July 2013 (DB) // --------------------------------------------------------------------------- // Provides the BamAlignment data structure // *************************************************************************** @@ -80,9 +80,15 @@ struct API_EXPORT BamAlignment { template bool GetTag(const std::string& tag, T& destination) const; template bool GetTag(const std::string& tag, std::vector& destination) const; + // retrieves all current tag names + std::vector GetTagNames(void) const; + // retrieves the SAM/BAM type-code for requested tag name bool GetTagType(const std::string& tag, char& type) const; + // retrieves the SAM/BAM type-code for the data elements in an array tag + bool GetArrayTagType(const std::string& tag, char& type) const; + // returns true if alignment has a record for this tag name bool HasTag(const std::string& tag) const; @@ -110,8 +116,8 @@ struct API_EXPORT BamAlignment { public: 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 QueryBases; // 'original' sequence (contained in BAM file) + std::string AlignedBases; // 'aligned' sequence (QueryBases plus deletion, padding, clipping chars) std::string Qualities; // FASTQ qualities (ASCII characters, not numeric values) std::string TagData; // tag data (use provided methods to query/modify) int32_t RefID; // ID number for reference sequence @@ -427,7 +433,7 @@ inline bool BamAlignment::GetTag(const std::string& tag, T& destination) const { unsigned int numBytesParsed = 0; // return failure if tag not found - if ( FindTag(tag, pTagData, tagDataLength, numBytesParsed) ) { + if ( !FindTag(tag, pTagData, tagDataLength, numBytesParsed) ) { // TODO: set error string? return false; } @@ -508,7 +514,7 @@ inline bool BamAlignment::GetTag(const std::string& tag, unsigned int numBytesParsed = 0; // return failure if tag not found - if ( FindTag(tag, pTagData, tagDataLength, numBytesParsed) ) { + if ( !FindTag(tag, pTagData, tagDataLength, numBytesParsed) ) { // TODO: set error string? return false; }