Line 8: |
Line 8: |
| The purpose of this class is to provide utilities for processing CIGARs. It has read-only operators that do not allow modification to the class other than for lazy-evaluation. | | The purpose of this class is to provide utilities for processing CIGARs. It has read-only operators that do not allow modification to the class other than for lazy-evaluation. |
| | | |
− | == static Methods ==
| + | See: [http://www.sph.umich.edu/csg/mktrost/doxygen/current/classCigar.html http://www.sph.umich.edu/csg/mktrost/doxygen/current/classCigar.html] for documentation. |
− | These methods are helpful for determining information about the operator.
| |
| | | |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| + | The static methods are helpful for determining information about the operator. |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! Method Name !! Description
| |
− | |-
| |
− | | <code>bool Cigar::foundInQuery(Operation op)</code>
| |
− | | Return true if the specified operation is found in the query sequence, false if not.
| |
− | |-
| |
− | | <code>bool Cigar::isClip(Operation op)</code>
| |
− | | Return true if the specified operation is a clipping operation, false if not.
| |
− | |-
| |
− | |}
| |
| | | |
− | == Public Methods ==
| + | See [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Mapping Between Reference and Read/Query]] for a more detailed explanation with examples as to how the mapping between the read/query works. |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! Method Name !! Description
| |
− | |-
| |
− | | <code>Cigar::Cigar()</code>
| |
− | | Default constructor initializes as a CIGAR with no operations.
| |
− | |-
| |
− | | <code>void Cigar::getCigarString(String& cigarString)</code>
| |
− | | Sets the passed in String to the string representation of this CIGAR object.
| |
− | |-
| |
− | | <code>void Cigar::getCigarString(std::string& cigarString)</code>
| |
− | | Sets the passed in std::string to the string representation of this CIGAR object.
| |
− | |-
| |
− | | <code>void Cigar::getExpandedString(std::string &s)</code>
| |
− | | Sets the specified string to a string of characters that represent this cigar with no digits (a CIGAR of "3M" would return "MMM")
| |
− | |-
| |
− | | <code>CigarOperator & Cigar::operator [] (int i)</code>
| |
− | | Return the Cigar Operation at the specified index (starting at 0).
| |
− | |-
| |
− | | <code>CigarOperator & Cigar::getOperator(int i)</code>
| |
− | | Return the Cigar Operation at the specified index (starting at 0).
| |
− | |-
| |
− | | <code>bool Cigar::operator == (CigarRoller &rhs)</code>
| |
− | | Returns true if two Cigars are the same (the same operations of the same sizes)
| |
− | |-
| |
− | | <code>int Cigar::size()</code>
| |
− | | Return the number of cigar operations in this object.
| |
− | |-
| |
− | | <code>void Cigar::Dump()</code>
| |
− | | Write this object as a string to cout.
| |
− | |-
| |
− | | <code>int Cigar::getExpectedQueryBaseCount()</code>
| |
− | | Returns the expected read length
| |
− | |-
| |
− | | <code>int Cigar::getExpectedReferenceBaseCount()</code>
| |
− | | Return how many bases in the reference are spanned by the given CIGAR string
| |
− | |-
| |
− | | <code>int Cigar::getNumBeginClips()</code>
| |
− | | Return the number of clips that are at the beginning of the cigar.
| |
− | |-
| |
− | | <code>int Cigar::getNumEndClips()</code>
| |
− | | Return the number of clips that are at the end of the cigar.
| |
− | |-
| |
− | | <code>int32_t Cigar::getRefOffset(int32_t queryIndex)</code>
| |
− | |Return the reference offset associated with the specified query index or INDEX_NA based on this cigar.
| |
− | See [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Mapping Between Reference and Read/Query]] for a more detailed explanation with examples as to how it works. | |
− | |-
| |
− | | <code>int32_t Cigar::getQueryIndex(int32_t refOffset)</code>
| |
− | | Return the query index associated with the specified reference offset or INDEX_NA based on this cigar.
| |
− | See [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Mapping Between Reference and Read/Query]] for a more detailed explanation with examples as to how it works.
| |
− | |-
| |
− | | <code>int32_t Cigar::getRefPosition(int32_t queryIndex, int32_t queryStartPos)</code>
| |
− | |Return the reference position associated with the specified query index or INDEX_NA based on this cigar and the specified queryStartPos.
| |
− | queryStartPops is the leftmost mapping position of the first matching base in the query.
| |
| | | |
− | See [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Mapping Between Reference and Read/Query]] for a more detailed explanation with examples as to how it works. | + | See [[C++ Class: CigarRoller#Determining the Number of Reference and Read/Query Overlaps|Determining the Number of Reference and Read/Query Overlaps]] for a more detailed explanation with examples as to how determining overlaps works. |
− | |-
| |
− | | <code>int32_t Cigar::getQueryIndex(int32_t refPosition, int32_t queryStartPos)</code>
| |
− | | Return the query index associated with the specified reference position and queryStartPos or INDEX_NA based on this cigar.
| |
− | queryStartPops is the leftmost mapping position of the first matching base in the query.
| |
| | | |
− | See [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Mapping Between Reference and Read/Query]] for a more detailed explanation with examples as to how it works.
| |
− | |-
| |
− | | <code>uint32_t Cigar::getNumOverlaps(int32_t start, int32_t end, int32_t queryStartPos)</code>
| |
− | | Return the number of bases that overlap the reference and the read associated with this cigar that falls within the specified region.
| |
− | start : inclusive start position (reference position) of the region to check for overlaps in. (-1 indicates to start at the beginning of the reference.)
| |
− |
| |
− | end : exclusive end position (reference position) of the region to check for overlaps in. (-1 indicates to go to the end of the reference.)
| |
− |
| |
− | queryStartPos : leftmost mapping position of the first matching base in the query.
| |
− |
| |
− | NOTE: ensure that start, end, and queryStartPos are all in the same base (0 or 1).
| |
− |
| |
− | See [[C++ Class: CigarRoller#Determining the Number of Reference and Read/Query Overlaps|Determining the Number of Reference and Read/Query Overlaps]] for a more detailed explanation with examples as to how it works.
| |
− |
| |
− | |}
| |
− |
| |
− | == Overloaded Streaming Operators ==
| |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! Method Name !! Description
| |
− | |-
| |
− | | <code> std::ostream &operator << (std::ostream &stream, const Cigar& cigar)</code>
| |
− | | Writes all of the cigar operations contained in the cigar to the passed in stream.
| |
− | |-
| |
− | | <code> std::ostream &operator << (std::ostream &stream, const Cigar::CigarOperator& o)</code>
| |
− | | Writes the specified cigar operation to the specified stream as <count><char> (3M).
| |
− | |}
| |
− |
| |
− |
| |
− |
| |
− | == Public Enums ==
| |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! colspan="2"| enum SPACE_TYPE
| |
− | |-
| |
− | ! Enum Value !! Description
| |
− | |-
| |
− | | none
| |
− | | No operation has been specified
| |
− | |-
| |
− | | match
| |
− | | The query sequence and the reference sequence bases are the same for the bases associated with this cigar operation.
| |
− | Both <code>match</code> and <code>mismatch</code> are associated with CIGAR Operation "M"
| |
− | |-
| |
− | | mismatch
| |
− | | The query sequence and the reference sequence bases are different for the bases associated with this cigar operation, but bases exist in both the query and the reference.
| |
− | Both <code>match</code> and <code>mismatch</code> are associated with CIGAR Operation "M"
| |
− | |-
| |
− | | insert
| |
− | | Insertion to the reference (the query sequence contains bases that have no corresponding base in the reference).
| |
− | Associated with CIGAR Operation "I"
| |
− | |-
| |
− | | del
| |
− | |Deletion from the reference (the reference contains bases that have no corresponding base in the query sequence).
| |
− | Associated with CIGAR Operation "D"
| |
− | |-
| |
− | | skip
| |
− | | Skipped region from the reference (the reference contains bases that have no corresponding base in the query sequence).
| |
− | Associated with CIGAR Operation "N"
| |
− | |-
| |
− | | softClip
| |
− | | Soft clip on the read (clipped sequence present in the query sequence)
| |
− | Associated with CIGAR Operation "S"
| |
− | |-
| |
− | | hardClip
| |
− | | Hard clip on the read (clipped sequence not present in the query sequence)
| |
− | Associated with CIGAR Operation "H"
| |
− | |-
| |
− | |pad
| |
− | | Padding (silent deletion from the padded reference sequence)
| |
− | Associated with CIGAR Operation "P"
| |
− | |}
| |
− |
| |
− |
| |
− | == Public Constants ==
| |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! Constant !! Value !! Description
| |
− | |-
| |
− | | INDEX_NA
| |
− | | -1
| |
− | | Value associated with an index that is not applicable/does not exist.
| |
− | Used for converting between query and reference indexes/offsets when an associated index/offset does not exist.
| |
− | |}
| |
− |
| |
− |
| |
− | == Nested Class ==
| |
− |
| |
− | === CigarOperation ===
| |
− |
| |
− | ==== Public Methods ====
| |
− | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
| |
− | |-style="background: #f2f2f2; text-align: center;"
| |
− | ! Method Name !! Description
| |
− | |-
| |
− | | <code>CigarOperator::CigarOperator(Operation operation, uint32_t count)</code>
| |
− | | Set the cigar operator with the specified operation and count length.
| |
− | |-
| |
− | | <code>char CigarOperator::getChar()</code>
| |
− | | Returns the character code (M, I, D, N, S, H, or P) associated with this operation.
| |
− | |-
| |
− | | <code>bool CigarOperator::operator == (const CigarOperator &rhs)</code>
| |
− | | Returns true if the passed in operator is the same as this operator, false if not.
| |
− | |-
| |
− | | <code>bool CigarOperator::operator != (const CigarOperator &rhs)</code>
| |
− | | Returns true if the passed in operator is not the same as this operator, false if they are the same.
| |
− | |}
| |
| | | |
| = CigarRoller= | | = CigarRoller= |