- // set left boundary\r
- unsigned int leftBound = 500;\r
-\r
- // set right boundary - either user-specified number to set a discrete region\r
- // OR you can query the BamReader for the end of the reference\r
- unsigned int rightBound = references.at(refID).RefLength;\r
-\r
- cerr << endl;\r
- cerr << "Iterating over alignments on reference: " << refName << " from " << leftBound << " to ref end (" << rightBound << ")" << endl;\r
-\r
- // set region - specific region on reference\r
- if ( bReader.Jump(refID, leftBound) ) { \r
-\r
- alignmentCount = 0;\r
- while ( bReader.GetNextAlignment(bAlignment) && (bAlignment.Position <= rightBound) ) {\r
- \r
- if ( bAlignment.IsMapped() ) {\r
-\r
- ++alignmentCount;\r
- \r
- if ( (alignmentCount % 100000) == 0) { cerr << "Retrieved " << alignmentCount << " so far..." << endl; }\r
- \r
- cout << "----------------------------" << endl;\r
- cout << "Alignment " << alignmentCount << endl;\r
- cout << bAlignment.Name << endl;\r
- cout << bAlignment.AlignedBases << endl;\r
- cout << "Aligned to " << references.at(bAlignment.RefID).RefName << ":" << bAlignment.Position << endl;\r
- }\r
- }\r
-\r
- cerr << "Found " << alignmentCount << " alignments." << endl; \r
- } else { cerr << "Could not jump to region specified" << endl; }\r
-\r
- // ----------------------------------------------------------------------------------------------------- //\r
- // You can 'rewind' back to beginning of BAM file at any time \r
- // ----------------------------------------------------------------------------------------------------- //\r
-\r
- cerr << endl;\r
- cerr << "Rewinding BAM file... then getting first 1000 alignments" << endl;\r
-\r
- alignmentCount = 0;\r
- if (bReader.Rewind() ) {\r
- while ( bReader.GetNextAlignment(bAlignment) && (alignmentCount < 1000) ) {\r
- \r
- // disregard unmapped alignments\r
- if ( bAlignment.IsMapped() ) {\r
-\r
- ++alignmentCount;\r
- \r
- cout << "----------------------------" << endl;\r
- cout << "Alignment " << alignmentCount << endl;\r
- cout << bAlignment.Name << endl;\r
- cout << bAlignment.AlignedBases << endl;\r
- cout << "Aligned to " << references.at(bAlignment.RefID).RefName << ":" << bAlignment.Position << endl;\r
- }\r
- }\r
-\r
- cerr << "Found " << alignmentCount << " alignments." << endl;\r
- } else { cerr << "Could not rewind" << endl; }\r
-*/\r
- // ---------------------------------------------------------------------- //\r
- // Close BamReader object (releases internal header/index data) and exit\r
- // ---------------------------------------------------------------------- //\r
- \r
- cerr << endl;\r
- cerr << "Closing BAM file: " << bamFilename << endl;\r
- \r