Difference between revisions of "LibStatGen: BAM"

From Genome Analysis Wiki
Jump to: navigation, search
(Created page with '= SAM/BAM File= == Reading/Writing SAM/BAM Files == The SamFile class allows a user to easily read/write a SAM/BAM file. This methods found in this class are: {| class="wikitabl…')
 
(BAM/SAM Classes)
 
(68 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
[[Category:C++]]
 +
[[Category:libStatGen]]
 +
[[Category:libStatGen BAM]]
 +
 
= SAM/BAM File=
 
= SAM/BAM File=
  
== Reading/Writing SAM/BAM Files ==
+
See the github history: https://github.com/statgen/libStatGen/commits/master/bam for a list of the most recent updates to the BAM classes.
The SamFile class allows a user to easily read/write a SAM/BAM file.
+
 
This methods found in this class are:
+
[[BAM Review Action Items|Old BAM Review Action Items]]
{| class="wikitable" style="width:100%" border="1"
+
 
|+ style="font-size:150%"|'''SamFile Class Methods'''
+
== Read & Write BAM/SAM Library Software ==
! width=""|Method Name
+
 
! width=""|Description
+
The software reads the beginning of files opened for reading to determine if it is SAM/BAM.  To determine the format (SAM/BAM) of files open for writing, the software checks the output file's extension.  If the extension is "bam" it writes a BAM file, otherwise it writes a SAM file.
 +
 
 +
The library is found in statgen/lib/bam.
 +
 
 +
=== BAM/SAM Classes ===
 +
{| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" border="1"
 +
|-style="background: #f2f2f2; text-align: center;"
 +
! Class Name !!  Description
 +
|-
 +
| <code>[[C++ Class: SamFile|SamFile]]</code>
 +
| Class used for reading/writing SAM/BAM files and their headers and records.
 +
|-
 +
| <code>[[C++ Class: SamFileHeader|SamFileHeader]]</code>
 +
| Class used for storing the header. Allows access for getting and setting header values when both reading & writing SAM/BAM files.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamHeaderRecord.html SamHeaderRecord]</code>
 +
| Class used for storing the tag/value pairs within a given header line.
 +
|-
 +
| <code>[[C++ Class: SamRecord|SamRecord]]</code>
 +
| Class used for storing a SAM/BAM Record. Allows access for getting and setting record values when both reading & writing SAM/BAM files.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamStatus.html SamStatus]</code>
 +
| Status value used by the BAM classes for returning the status of the operations.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamValidator.html SamValidator]</code>
 +
| Validates a SAM/BAM Record.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamValidationError.html SamValidationError]</code>
 +
| Validation Error Information for a SamRecord.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamValidationErrors.html SamValidationErrors]</code>
 +
| Container for ValidationErrors.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classPileup.html Pileup]</code>
 +
| Template for doing pileups.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classPileupElement.html PileupElement]</code>
 +
| Base class that can be used for the elements stored in a Pileup.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classErrorHandler.html ErrorHandler]</code>
 +
| Class for handling errors based on the error handling type.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classPosList.html PosList]</code>
 +
| Store refID/position, but does not store values < 0.
 +
|-
 +
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamFilter.html SamFilter]</code>
 +
| Class for filtering a SAM/BAM record.
 
|-
 
|-
| bool OpenForRead(const char* filename)
+
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamFlag.html SamFlag]</code>
| Opens the specified file for reading.
+
| Class for getting information from a SAM/BAM flag.
Determines if it is a BAM/SAM file by reading the beginning of the file.
 
Returns true if successfully opened reading, false if not.
 
 
|-
 
|-
| bool OpenForWrite(const char * filename)
+
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamReferenceInfo.html SamReferenceInfo]</code>
| bool: true if successfully opened, false if not.
+
| Class for tracking the reference information mapping between the reference ids and the reference names.
Opens as BAM file if the specified filename ends in .bam. Otherwise it is opened as a SAM file.
 
Returns true if successfully opened for writing, false if not.
 
 
|-
 
|-
| bool ReadHeader(SamFileHeader& header)
+
| <code>[http://csg.sph.umich.edu//mktrost/doxygen/current/classSamTags.html SamTags]</code>
| Reads the header section from the file and stores it in the passed in header.
+
| Class for parsing/creating/operating on SAM/BAM record tags.
Returns true if successfully read, false if not.
 
|-
 
| bool WriteHeader(const SamFileHeader& header)
 
| Writes the specified header into the file.
 
Returns true if successfully written, false if not.
 
|
 
| bool ReadRecord(SamFileHeader& header, SamRecord& record)
 
| Reads the next record from the file and stores it in the passed in record.
 
Returns true if successfully read, false if not.
 
|-
 
| bool WriteRecord(SamFileHeader& header, SamRecord& record)
 
| Writes the specified record into the file.
 
Returns true if successfully written, false if not.
 
 
|}
 
|}
 +
 +
== FAQs ==
 +
[[SAM/BAM Classes FAQs]]
 +
 +
== Usage Examples ==
 +
[[Sam Library Usage Examples]]
 +
 +
 +
== Programs ==
 +
 +
BamUtil contains a set of programs that uses this library to operate on SAM & BAM files.  It includes tools for converting between SAM & BAM and validating the files.  See [[BamUtil]] for more information and a description of all the tools.

Latest revision as of 10:55, 2 February 2017


SAM/BAM File

See the github history: https://github.com/statgen/libStatGen/commits/master/bam for a list of the most recent updates to the BAM classes.

Old BAM Review Action Items

Read & Write BAM/SAM Library Software

The software reads the beginning of files opened for reading to determine if it is SAM/BAM. To determine the format (SAM/BAM) of files open for writing, the software checks the output file's extension. If the extension is "bam" it writes a BAM file, otherwise it writes a SAM file.

The library is found in statgen/lib/bam.

BAM/SAM Classes

Class Name Description
SamFile Class used for reading/writing SAM/BAM files and their headers and records.
SamFileHeader Class used for storing the header. Allows access for getting and setting header values when both reading & writing SAM/BAM files.
SamHeaderRecord Class used for storing the tag/value pairs within a given header line.
SamRecord Class used for storing a SAM/BAM Record. Allows access for getting and setting record values when both reading & writing SAM/BAM files.
SamStatus Status value used by the BAM classes for returning the status of the operations.
SamValidator Validates a SAM/BAM Record.
SamValidationError Validation Error Information for a SamRecord.
SamValidationErrors Container for ValidationErrors.
Pileup Template for doing pileups.
PileupElement Base class that can be used for the elements stored in a Pileup.
ErrorHandler Class for handling errors based on the error handling type.
PosList Store refID/position, but does not store values < 0.
SamFilter Class for filtering a SAM/BAM record.
SamFlag Class for getting information from a SAM/BAM flag.
SamReferenceInfo Class for tracking the reference information mapping between the reference ids and the reference names.
SamTags Class for parsing/creating/operating on SAM/BAM record tags.

FAQs

SAM/BAM Classes FAQs

Usage Examples

Sam Library Usage Examples


Programs

BamUtil contains a set of programs that uses this library to operate on SAM & BAM files. It includes tools for converting between SAM & BAM and validating the files. See BamUtil for more information and a description of all the tools.