
Public Member Functions | |
| Pileup (const FUNC_CLASS &fp=FUNC_CLASS()) | |
| Pileup (int window, const FUNC_CLASS &fp=FUNC_CLASS()) | |
| Pileup (const std::string &refSeqFileName, const FUNC_CLASS &fp=FUNC_CLASS()) | |
| Pileup (int window, const std::string &refSeqFileName, const FUNC_CLASS &fp=FUNC_CLASS()) | |
| virtual int | processFile (const std::string &fileName, uint16_t excludeFlag=0x0704, uint16_t includeFlag=0) |
| virtual void | processAlignment (SamRecord &record) |
| Add an alignment to the pileup. | |
| virtual void | processAlignmentRegion (SamRecord &record, int startPos, int endPos, PosList *excludeList=NULL) |
| Add only positions that fall within the specified region of the alignment to the pileup and outside of the specified excluded positions. | |
| void | flushPileup () |
Protected Member Functions | |
| void | addAlignmentPosition (int refPosition, SamRecord &record) |
| virtual void | flushPileup (int refID, int refPosition) |
| void | flushPileup (int refPosition) |
| int | pileupPosition (int refPosition) |
| virtual void | resetElement (PILEUP_TYPE &element, int position) |
| virtual void | addElement (PILEUP_TYPE &element, SamRecord &record) |
| virtual void | analyzeElement (PILEUP_TYPE &element) |
| virtual void | analyzeHead () |
Protected Attributes | |
| FUNC_CLASS | myAnalyzeFuncPtr |
| std::vector< PILEUP_TYPE > | myElements |
| int | pileupStart |
| int | pileupHead |
| int | pileupTail |
| int | pileupWindow |
| int | myCurrentRefID |
| GenomeSequence * | myRefPtr |
Definition at line 49 of file Pileup.h.
| void Pileup< PILEUP_TYPE, FUNC_CLASS >::processAlignmentRegion | ( | SamRecord & | record, | |
| int | startPos, | |||
| int | endPos, | |||
| PosList * | excludeList = NULL | |||
| ) | [inline, virtual] |
Add only positions that fall within the specified region of the alignment to the pileup and outside of the specified excluded positions.
| record | alignment to be added to the pileup. | |
| startPos | 0-based start position of the bases that should be added to the pileup. | |
| endPos | 0-based end position of the bases that should be added to the pileup (this position is not added). Set to -1 if there is no end position to the region. | |
| excludeList | list of refID/positions to exclude from processing. |
Definition at line 299 of file Pileup.h.
References SamRecord::get0BasedAlignmentEnd(), SamRecord::get0BasedPosition(), SamRecord::getReferenceID(), and PosList::hasPosition().
00303 { 00304 int refPosition = record.get0BasedPosition(); 00305 int refID = record.getReferenceID(); 00306 00307 // Flush any elements from the pileup that are prior to this record 00308 // since the file is sorted, we are done with those positions. 00309 flushPileup(refID, refPosition); 00310 00311 // Check if the region starts after this reference starts. If so, 00312 // we only want to start adding at the region start position. 00313 if(startPos > refPosition) 00314 { 00315 refPosition = startPos; 00316 } 00317 00318 // Loop through for each reference position covered by the record. 00319 // It is up to the PILEUP_TYPE to handle insertions/deletions, etc 00320 // that are related with the given reference position. 00321 for(; refPosition <= record.get0BasedAlignmentEnd(); ++refPosition) 00322 { 00323 // Check to see if we have gone past the end of the region, in which 00324 // case we can stop processing this record. Check >= since the 00325 // end position is not in the region. 00326 if((endPos != -1) && (refPosition >= endPos)) 00327 { 00328 break; 00329 } 00330 00331 // Check to see if this position is in the exclude list. 00332 bool addPos = true; 00333 if(excludeList != NULL) 00334 { 00335 // There is an exclude list, so lookup the position. 00336 if(excludeList->hasPosition(refID, refPosition)) 00337 { 00338 // This position is in the exclude list, so don't add it. 00339 addPos = false; 00340 } 00341 } 00342 if(addPos) 00343 { 00344 addAlignmentPosition(refPosition, record); 00345 } 00346 } 00347 }
1.6.3