作者 | Heng Li |
---|---|
開発元 | ジョン・マーシャル、ペトル・ダネセクなど[1] |
初版 | 2009 |
最新版 |
1.9
/ 2018年7月18日 |
リポジトリ | |
プログラミング 言語 | C |
対応OS | Unix-like |
サポート状況 | Active |
種別 | Bioinformatics |
ライセンス | BSD, MIT |
公式サイト |
www |
SAMtoolsは、DNAシークエンシングのショートリードシーケンスアラインメント後の処理に用いられるソフトウェアで、扱えるファイル形式はSAMとBAMフォーマットである。Heng Liによって開発された。SAM/BAM形式のファイルはBWA等のショートリードアライナーから出力される。主な機能としては、多型の検出やアライメントの表示、インデクシング、データ抽出、ファイル形式の変換などがある。一般的にSAM形式のファイルは非常に巨大(数十ギガバイト)になることが多いので、このソフトウェアを利用してBAM形式のファイルに変換してから解析に利用することになる。BAMファイルはSAMファイルの圧縮版と考えて良い。SAMtoolsはBAMファイルを圧縮したままの状態で直接扱うことができるので、毎回ファイルを展開する必要はない。また、SAM/BAM形式のファイルは複雑な構造をしておりファイル内には塩基配列やそのクオリティ情報、リファレンスゲノムの情報、アライメント、ユーザー定義情報などが含まれているが、SAMtoolsを使えばこれらの形式に関する詳細な知識がなくても簡単な操作で扱うことができる。
一般的なUNIXのコマンドと同様にSAMtoolsはストリームの入出力に対応しているので、コマンドからコマンドにパイプを利用してデータを渡して処理させることができる。この性質を利用するとデータ処理をパイプライン状につなげることができる。最終的に出力されるファイルは複雑な構造のものにはなるが、SAMtoolsでは何個かの簡単なコマンドの組み合わせ方を覚えるだけでよい。入力ファイル、出力ファイルが指定されなかった場合は、SAMtoolsは標準ストリーム(stdin、stdout、stderr)が既定で使用される。stdout(標準出力)に出力されたデータは画面に出力されるので、ファイルに保存したい場合はUNIXのリダイレクト(>)の仕組みを利用してファイルに保存したり、別のコマンドに出力を渡す場合にはパイプ(|)を利用する。
SAMtoolsのコマンドは基本的にはsamtools [サブコマンド]
の形式で使用される。
view
- SAM/BAM形式のファイルの表示や、フィルタリングに使用される。sort
- アライメントのデータをリファレンス配列上の位置順に並び替える際に利用する。この場合の位置順というのは、ゲノムの場合には染色体、アライメントの先頭の塩基の位置の二つのキーによるソートである。出力はデフォルトでは新規ファイルに出力される。ソートはメモリを多く使用すればするほど速くなるので、-mオプションによって利用可能最大メモリ量を指定することが多い。index
- ソート済みのSAM/BAMファイルに対して索引ファイルを生成する。tview
- 狭い領域ではあるが、リファレンス配列にアライメントされたショートリードのアライメントを表示できる。表示はASCII文字だが、対話的に操作できるユーザインタフェースとなっている。