Difference between revisions of "SAM/BAM Classes FAQs"

From Genome Analysis Wiki
Jump to navigationJump to search
 
(5 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? =====
 
===== Q: What is SAM/BAM? =====
* A: See: [[SAM]] and [[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|CigarRoller::getQueryIndex & CigarRoller::getRefOffset]]
+
* 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 24: Line 27:
  
 
===== Q: Get additional information on this library? =====
 
===== Q: Get additional information on this library? =====
* A: Email me, Mary Kate, at mktrost@umich.edu.
+
* 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?
  • 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: Read only portions of a sorted & indexed BAM file that fall within a specified region?
  • A:
    1. open a sorted and indexed BAM file for reading (SamFile::OpenForRead)
    2. read the BAM Index file (SamFile::ReadBamIndex)
    3. read the header (SamFile::ReadHeader)
    4. set the region to be read (SamFile::SetReadSection)
    5. Loop calling SamFile::ReadRecord 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 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?