Changes

From Genome Analysis Wiki
Jump to navigationJump to search
1,458 bytes added ,  17:20, 11 September 2021
no edit summary
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].

Navigation menu