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.
|
|
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.
|
|
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.
|
|
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.
23{
25
26
28
29 if(cigar == NULL)
30 {
31 throw std::runtime_error("Failed to get Cigar.");
32 }
33
34 int32_t readStartIndex =
36
37
38
40 {
41 return(false);
42 }
43
44
45 readSeq += readStartIndex;
46 if(strncmp(readSeq, sequence, strlen(sequence)) == 0)
47 {
48
49 return(readStartIndex);
50 }
51
52 return(-1);
53}
This class represents the CIGAR without any methods to set the cigar (see CigarRoller for that).
static const int32_t INDEX_NA
Value associated with an index that is not applicable/does not exist, used for converting between que...
int32_t getQueryIndex(int32_t refOffset)
Return the query index associated with the specified reference offset or INDEX_NA based on this cigar...
Cigar * getCigarInfo()
Returns a pointer to the Cigar object associated with this record.
int32_t get0BasedPosition()
Get the 0-based(BAM) leftmost position of the record.
const char * getSequence()
Returns the SAM formatted sequence string (SEQ), translating the base as specified by setSequenceTran...
References SamRecord::get0BasedPosition(), SamRecord::getCigarInfo(), Cigar::getQueryIndex(), SamRecord::getSequence(), and Cigar::INDEX_NA.
◆ 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.
59{
60 char tag[3];
61 char vtype;
62 void* value;
63
64
66
67
68 bool firstEntry = true;
69 bool returnStatus = true;
71 {
72 if(!firstEntry)
73 {
74 returnString += delim;
75 }
76 else
77 {
78 firstEntry = false;
79 }
81 }
82 return(returnStatus);
83}
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.
bool getNextSamTag(char *tag, char &vtype, void **value)
Get the next tag from the record.
void resetTagIter()
Reset the tag iterator to the beginning of the tags.
References genSamTagString(), SamRecord::getNextSamTag(), and SamRecord::resetTagIter().
◆ 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.
88{
89 returnString += tag;
90 returnString += ":";
91 returnString += vtype;
92 returnString += ":";
94 {
95 returnString += (int)*(int*)value;
96 }
98 {
99 returnString.appendFullFloat(*(float*)value);
100 }
102 {
103 returnString += (char)*(char*)value;
104 }
106 {
107
109 }
110 else
111 {
112
113 return(false);
114 }
115 return(true);
116}
static bool isIntegerType(char vtype)
Returns whether or not the specified vtype is an integer type.
static bool isFloatType(char vtype)
Returns whether or not the specified vtype is a float type.
static bool isCharType(char vtype)
Returns whether or not the specified vtype is a char type.
static bool isStringType(char vtype)
Returns whether or not the specified vtype is a string type.
References SamRecord::isCharType(), SamRecord::isFloatType(), SamRecord::isIntegerType(), and SamRecord::isStringType().
Referenced by genSamTagsString().
The documentation for this class was generated from the following files: