SAM/BAM Classes FAQs: Difference between revisions
From Genome Analysis Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category:libStatGen]] | |||
[[Category:libStatGen BAM]] | |||
== How Do I? == | == How Do I? == | ||
===== Q: What is SAM/BAM? ===== | |||
* A: See: [[SAM]] and [[BAM]]. [[SAM]] also provides additional details as to what is a CIGAR, QUALITY, and TAG. | |||
===== Q: Map between a query/read sequence and a reference sequence to do things like looking up a base/quality at a given reference position or looking up a reference base for a given read position? ===== | ===== Q: Map between a query/read sequence and a reference sequence to do things like looking up a base/quality at a given reference position or looking up a reference base for a given read position? ===== | ||
* A: Use [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query| | * A: Use [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|Cigar::getQueryIndex & Cigar::getRefOffset]] | ||
===== Q: Read only portions of a sorted & indexed BAM file that fall within a specified region? ===== | ===== Q: Read only portions of a sorted & indexed BAM file that fall within a specified region? ===== | ||
| Line 14: | Line 20: | ||
NOTE: ReadRecord will also return false on an error - use <code>SamFile::GetStatus()</code> to determine if it was an error or the end of the region. <code>GetStatus</code> returns SamStatus::NO_MORE_RECS for the end of the region. | NOTE: ReadRecord will also return false on an error - use <code>SamFile::GetStatus()</code> to determine if it was an error or the end of the region. <code>GetStatus</code> returns SamStatus::NO_MORE_RECS for the end of the region. | ||
See the library usage page for an [[Sam_Library_Usage_Examples#Read_a_Specified_Region_from_a_Sorted_.26_Indexed_BAM_File|Example]]. | |||
* Q: How do I read multiple regions? | * Q: How do I read multiple regions? | ||
| Line 19: | Line 27: | ||
===== Q: Get additional information on this library? ===== | ===== Q: Get additional information on this library? ===== | ||
* A: | * A: If you have any questions or comments, please raise issue in [https://github.com/statgen/ our GitHub repositories]. | ||
Latest revision as of 17:20, 11 September 2021
How Do I?
Q: What is SAM/BAM?
Q: Map between a query/read sequence and a reference sequence to do things like looking up a base/quality at a given reference position or looking up a reference base for a given read position?
Q: Read only portions of a sorted & indexed BAM file that fall within a specified region?
- A:
- open a sorted and indexed BAM file for reading (
SamFile::OpenForRead) - read the BAM Index file (
SamFile::ReadBamIndex) - read the header (
SamFile::ReadHeader) - set the region to be read (
SamFile::SetReadSection) - Loop calling
SamFile::ReadRecorduntil it returns false - indicating there are no more reads within this region.
- open a sorted and indexed BAM file for reading (
These methods are found in C++ Class: SamFile.
NOTE: ReadRecord will also return false on an error - use SamFile::GetStatus() to determine if it was an error or the end of the region. GetStatus returns SamStatus::NO_MORE_RECS for the end of the region.
See the library usage page for an Example.
- Q: How do I read multiple regions?
- A: Use the above solution, but loop on the SetReadSection/ReadRecord steps until all sections have been processed.
Q: Get additional information on this library?
- A: If you have any questions or comments, please raise issue in our GitHub repositories.