LibStatGen: BAM

From Genome Analysis Wiki
Revision as of 16:56, 6 April 2010 by Mktrost (talk | contribs)
Jump to navigationJump to search

SAM/BAM File

SAM Library Change Log

Read & Write BAM/SAM Executable

When the pipeline is compiled, the sam/bam executable, "bam" is generated in the pipeline/bam/ directory.

This executable takes 2 arguments. The first argument is the input file. The second argument is the output file. The executable converts the first file into the format of the second file. So if you want to convert a Bam file to a SAM file, from the pipeline/bam/ directory you just call:

./bam <bamFile>.bam <newSamFile>.sam

Don't forget to put in the paths to the executable and your test files.

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


Read & Write BAM/SAM Library

The software for reading/writing/parsing/validating SAM/BAM files is also available in library format. The library is also found in pipeline/bam, and is called libbam.a.

This library is dependent on two other libraries, so be sure to include them all in the proper order:

<path to base pipeline directory>/libbam.a <path to base pipeline directory>/libcsg/libcsg.a <path to base pipeline directory>/thirdParty/samtools/libbam.a

Classes in the BAM/SAM Library

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.
SamRecord Class used for storing a SAM/BAM Record. Allows access for getting and setting record values when both reading & writing SAM/BAM files.


Suggested Improvements/Features