Class for extracting information from a SAM Flag.
More...
#include <SamRecordHelper.h>
|
static int | checkSequence (SamRecord &record, int32_t pos0Based, const char *sequence) |
| Helper method that checks if the record's read sequence starting at the specified 0-based reference position matches the passed in sequence. More...
|
|
static bool | genSamTagsString (SamRecord &record, String &returnString, char delim='\t') |
| Helper to append the SAM string representation of all the tags to the specified string. More...
|
|
static bool | genSamTagString (const char *tag, char vtype, void *value, String &returnString) |
| Helper to append the SAM string representation of the specified tag to the specified string. More...
|
|
Class for extracting information from a SAM Flag.
Definition at line 24 of file SamRecordHelper.h.
◆ checkSequence()
int SamRecordHelper::checkSequence |
( |
SamRecord & |
record, |
|
|
int32_t |
pos0Based, |
|
|
const char * |
sequence |
|
) |
| |
|
static |
Helper method that checks if the record's read sequence starting at the specified 0-based reference position matches the passed in sequence.
- Returns
- returns -1 if it does not match, returns the cycle (read position) of pos0Based if it does match.
Definition at line 21 of file SamRecordHelper.cpp.
References SamRecord::get0BasedPosition(), SamRecord::getCigarInfo(), Cigar::getQueryIndex(), SamRecord::getSequence(), and Cigar::INDEX_NA.
31 throw std::runtime_error(
"Failed to get Cigar.");
34 int32_t readStartIndex =
45 readSeq += readStartIndex;
46 if(strncmp(readSeq, sequence, strlen(sequence)) == 0)
49 return(readStartIndex);
Cigar * getCigarInfo()
Returns a pointer to the Cigar object associated with this record.
static const int32_t INDEX_NA
Value associated with an index that is not applicable/does not exist, used for converting between que...
const char * getSequence()
Returns the SAM formatted sequence string (SEQ), translating the base as specified by setSequenceTran...
This class represents the CIGAR without any methods to set the cigar (see CigarRoller for that)...
int32_t getQueryIndex(int32_t refOffset)
Return the query index associated with the specified reference offset or INDEX_NA based on this cigar...
int32_t get0BasedPosition()
Get the 0-based(BAM) leftmost position of the record.
◆ genSamTagsString()
bool SamRecordHelper::genSamTagsString |
( |
SamRecord & |
record, |
|
|
String & |
returnString, |
|
|
char |
delim = '\t' |
|
) |
| |
|
static |
Helper to append the SAM string representation of all the tags to the specified string.
Does NOT add a preceding delimiter before the first tag.
- Parameters
-
record | record whose tags to append. |
returnString | string to append the tags to. |
delim | delimiter to use to separate different tags. |
- Returns
- true on success, false on failure/partial generation.
Definition at line 56 of file SamRecordHelper.cpp.
References genSamTagString(), SamRecord::getNextSamTag(), and SamRecord::resetTagIter().
68 bool firstEntry =
true;
69 bool returnStatus =
true;
74 returnString += delim;
bool getNextSamTag(char *tag, char &vtype, void **value)
Get the next tag from the record.
static bool genSamTagString(const char *tag, char vtype, void *value, String &returnString)
Helper to append the SAM string representation of the specified tag to the specified string...
void resetTagIter()
Reset the tag iterator to the beginning of the tags.
◆ genSamTagString()
bool SamRecordHelper::genSamTagString |
( |
const char * |
tag, |
|
|
char |
vtype, |
|
|
void * |
value, |
|
|
String & |
returnString |
|
) |
| |
|
static |
Helper to append the SAM string representation of the specified tag to the specified string.
- Parameters
-
tag | the tag name. |
vtype | the vtype. |
value | pointer to the value of the tag (will be cast to int, double, char, or string based on vtype). |
returnString | string to append the tag to. |
- Returns
- true on success, false on failure/partial generation.
Definition at line 86 of file SamRecordHelper.cpp.
References SamRecord::isCharType(), SamRecord::isFloatType(), SamRecord::isIntegerType(), and SamRecord::isStringType().
Referenced by genSamTagsString().
91 returnString += vtype;
95 returnString += (int)*(
int*)value;
99 returnString.appendFullFloat(*(
float*)value);
103 returnString += (char)*(
char*)value;
static bool isStringType(char vtype)
Returns whether or not the specified vtype is a string type.
static bool isCharType(char vtype)
Returns whether or not the specified vtype is a char type.
static bool isFloatType(char vtype)
Returns whether or not the specified vtype is a float type.
static bool isIntegerType(char vtype)
Returns whether or not the specified vtype is an integer type.
The documentation for this class was generated from the following files: