SAM/BAM Classes FAQs

From Genome Analysis Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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?