// 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
// ***************************************************************************
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;
+ // retrieves all current tag names
+ std::vector<std::string> 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;
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
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;
}
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;
}