From Genome Analysis Wiki
Jump to navigationJump to search
1,458 bytes added
, 17:20, 11 September 2021
Line 1: |
Line 1: |
| + | [[Category:libStatGen]] |
| + | [[Category:libStatGen BAM]] |
| + | |
| == How Do I? == | | == How Do I? == |
| | | |
− | ===== 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: What is SAM/BAM? ===== |
− | * A: Use [[C++ Class: CigarRoller#Mapping Between Reference and Read/Query|CigarRoller::getQueryIndex & CigarRoller::getRefOffset]] | + | * 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? ===== |
| + | * 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? ===== |
| + | * A: |
| + | *# open a sorted and indexed BAM file for reading (<code>SamFile::OpenForRead</code>) |
| + | *# read the BAM Index file (<code>SamFile::ReadBamIndex</code>) |
| + | *# read the header (<code>SamFile::ReadHeader</code>) |
| + | *# set the region to be read (<code>SamFile::SetReadSection</code>) |
| + | *# Loop calling <code>SamFile::ReadRecord</code> until it returns false - indicating there are no more reads within this region. |
| + | These methods are found in [[C++ Class: SamFile]]. |
| + | |
| + | 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? |
| + | ** 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 [https://github.com/statgen/ our GitHub repositories]. |