SAM/BAM Classes FAQs

From Genome Analysis Wiki
Jump to: navigation, search


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?
  • A: Email me, Mary Kate, at mktrost@umich.edu.