Samtools is a set of utilities that manipulate alignments in the BAM format. It imports from and exports to the SAM (Sequence Alignment/Map) format, does sorting, merging and indexing, and allows to retrieve reads in any regions swiftly. Samtools is designed to work on a stream. It regards an input file `-' as the standard input (stdin) and an output file `-' as the standard output (stdout). Several commands can thus be combined with Unix pipes. Samtools always output warning and error messages to the standard error output (stderr). Samtools is also able to open a BAM (not SAM) file on a remote FTP or HTTP server if the BAM file name starts with `ftp://' or `http://'. Samtools checks the current working directory for the index file and will download the index upon absence. Samtools does not retrieve the entire alignment file unless it is asked to do so.
- HLHeng Li
wrote most of the initial source codes of SAMtools and various converters.
- BHBob Handsaker
A major contributor to the SAM/BAM specification. He designed and implemented the BGZF format, the underlying indexable compression format for the BAM format. BGZF does not support arithmetic between file offsets.
- JRJue Ruan
Designed and implemented the RAZF format, an alternative indexable compression format. RAZF is no longer used by or provided with SAMtools. Source code remains available in older SAMtools 0.1.x releases and from the standalone branch in the repository.
- CHColin Hercus
updated novo2sam.pl to support gapped alignment by novoalign.
- PDPetr Danecek
contributed the header parsing library sam_header.c and sam2vcf.pl script.