SAMtools

SAMtoolsは、DNAシークエンシングのショートリードシーケンスアラインメント後の処理に用いられるソフトウェアで、扱えるファイル形式はとBAMフォーマットである。によって開発された。SAM/BAM形式のファイルはBWA等のショートリードアライナーから出力される。主な機能としては、多型の検出やアライメントの表示、インデクシング、データ抽出、ファイル形式の変換などがある。一般的にSAM形式のファイルは非常に巨大（数十ギガバイト）になることが多いので、このソフトウェアを利用してBAM形式のファイルに変換してから解析に利用することになる。BAMファイルはSAMファイルの圧縮版と考えて良い。SAMtoolsはBAMファイルを圧縮したままの状態で直接扱うことができるので、毎回ファイルを展開する必要はない。また、SAM/BAM形式のファイルは複雑な構造をしておりファイル内には塩基配列やそのクオリティ情報、リファレンスゲノムの情報、アライメント、ユーザー定義情報などが含まれているが、SAMtoolsを使えばこれらの形式に関する詳細な知識がなくても簡単な操作で扱うことができる。

使用方法 
一般的なUNIXのコマンドと同様にSAMtoolsはストリームの入出力に対応しているので、コマンドからコマンドにパイプを利用してデータを渡して処理させることができる。この性質を利用するとデータ処理をパイプライン状につなげることができる。最終的に出力されるファイルは複雑な構造のものにはなるが、SAMtoolsでは何個かの簡単なコマンドの組み合わせ方を覚えるだけでよい。入力ファイル、出力ファイルが指定されなかった場合は、SAMtoolsは標準ストリーム（stdin、stdout、stderr）が既定で使用される。stdout(標準出力)に出力されたデータは画面に出力されるので、ファイルに保存したい場合はUNIXのリダイレクト(>)の仕組みを利用してファイルに保存したり、別のコマンドに出力を渡す場合にはパイプ(|)を利用する。

SAMtoolsのコマンド形式 
SAMtoolsのコマンドは基本的にはsamtools [サブコマンド]の形式で使用される。

サブコマンド 
 view - SAM/BAM形式のファイルの表示や、フィルタリングに使用される。
 sort - アライメントのデータをリファレンス配列上の位置順に並び替える際に利用する。この場合の位置順というのは、ゲノムの場合には染色体、アライメントの先頭の塩基の位置の二つのキーによるソートである。出力はデフォルトでは新規ファイルに出力される。ソートはメモリを多く使用すればするほど速くなるので、-mオプションによって利用可能最大メモリ量を指定することが多い。
 index - ソート済みのSAM/BAMファイルに対して索引ファイルを生成する。
 tview - 狭い領域ではあるが、リファレンス配列にアライメントされたショートリードのアライメントを表示できる。表示はASCII文字だが、対話的に操作できるユーザインタフェースとなっている。

脚注 

バイオインフォマティクス・アルゴリズム
UNIXのソフトウェア
DNAシークエンシング