SAMtools は、 Heng Liによって作成された、SAM (Sequence Alignment/Map)、BAM (Binary Alignment/Map)、およびCRAM形式の短い DNA 配列リードのアライメントを操作および後処理するためのユーティリティのセットです。これらのファイルは、 BWAなどの短いリードのアライナーによって出力として生成されます。バリアントの呼び出しやアライメントの表示、ソート、インデックス作成、データ抽出、およびフォーマット変換などの複雑なタスクをサポートする、シンプルおよび高度なツールの両方が提供されています。[ 3 ] SAM ファイルは非常に大きくなる可能性があり (数十ギガバイトが一般的)、スペースを節約するために圧縮が使用されます。SAM ファイルは人間が読めるテキスト ファイルであり、BAM ファイルは単にそのバイナリ版であり、CRAM ファイルは再構築された列指向のバイナリ コンテナ フォーマットです。BAM ファイルは一般的に圧縮されており、ソフトウェアが SAM よりも効率的に処理できます。SAMtools を使用すると、ファイル全体を解凍することなく、圧縮された BAM ファイルを直接操作できます。さらに、SAM/BAMファイルのフォーマットは、リード、参照、アライメント、品質情報、ユーザー指定の注釈などを含むため、やや複雑です。SAMtoolsは、低レベルの詳細を隠すことで、SAM/BAMファイルを使用するために必要な労力を軽減します。
サードパーティのプロジェクトが、SAMtools のコードをそのように組み込むように設計されていないにもかかわらず使用しようとしていたため、2014 年 8 月に SAMtools パッケージを、明確に定義されたAPIを備えたスタンドアロン ソフトウェア ライブラリ(HTSlib) [ 4 ] 、バリアント コールとバリアント データの操作のためのプロジェクト (BCFtools)、およびシーケンス アライメントデータを扱うためのスタンドアロン SAMtools パッケージ[ 5 ]に分割するという決定がなされました。
使用方法とコマンド
多くのUnixコマンドと同様に、SAMtool コマンドはストリームモデルに従います。データは、コンベア ベルトで運ばれるように各コマンドを通過します。これにより、複数のコマンドをデータ処理パイプラインに組み合わせることができます。最終的な出力は非常に複雑になる可能性がありますが、それを生成するために必要なコマンドは限られた数だけです。指定しない場合は、標準ストリーム(stdin、stdout、stderr) が使用されます。stdout に送信されたデータは、デフォルトでは画面に表示されますが、通常の Unix リダイレクタ (> と >>) を使用して別のファイルに、またはパイプ (|) を介して別のコマンドに簡単にリダイレクトできます。
SAMtools は以下のコマンドを提供しており、それぞれ次のように呼び出されますsamtools <subcommand>。
- ビュー
- viewコマンドは、 SAMまたはBAM形式のデータをフィルタリングします。オプションと引数を使用して、選択するデータ(場合によってはすべてのデータ)を認識し、そのデータのみを通過させます。入力は通常、引数として指定されたsamまたはbamファイルですが、他のコマンドからパイプで渡されたsamまたはbamデータでも構いません。用途としては、データのサブセットを新しいファイルに抽出したり、BAM形式とSAM形式の間で変換したり、生のファイル内容を確認したりすることが挙げられます。抽出されたリードの順序は保持されます。
- 選別
- sortコマンドは、アライメントによって決定される参照内の位置に基づいて BAM ファイルをソートします。リード内の最初に一致した塩基がアラインメントする参照内の要素 + 座標が、ソートのキーとして使用されます。[TODO: 検証]。ソートされた出力はデフォルトでは新しいファイルにダンプされますが、標準出力にリダイレクトすることもできます (-o オプションを使用)。ソートはメモリを大量に消費し、BAM ファイルは大きくなる可能性があるため、このコマンドはセクションモード (-m オプションを使用) をサポートし、最大で指定された量のメモリを使用して複数の出力ファイルを生成できます。これらのファイルをマージして、完全なソート済み BAM ファイルを作成できます。 [TODO - この詳細についてさらに詳しく調査する]。
- 索引
- indexコマンドは、 (ソート済みの)SAMまたはBAMファイル内のデータを高速に検索できる新しいインデックスファイルを作成します。データベースのインデックスと同様に、生成された*.sam.saiまたは*.bam.baiファイルは、それを読み取ることができるプログラムが、関連ファイル内のデータをより効率的に処理できるようにします。
- tview
- tviewコマンドは、参照ゲノムの指定された小さな領域にリードがどのようにアラインされているかを視覚化するために使用できる対話型の ASCII ベースのビューアを起動します。IGV のようなグラフィックベースのビューアと比較すると、[ 6 ]機能は少ないです。ビュー内では、参照要素に沿って異なる位置にジャンプしたり ('g' を使用)、ヘルプ情報を表示したり ('?') することができます。
- mpileup
- mpileupコマンドは、入力BAMファイル内の各ゲノム座標について、その位置における重複するリード塩基と挿入・欠失(インデル)を示すパイルアップフォーマット(BCF)ファイルを生成します 。これは、例えばSNPコールなどに使用できます。
- フラグスタット
参考文献
- ↑ "SAMツール" . SourceForge .
- ↑ "リリース · samtools/samtools" . github.com . 2024-09-12に取得.
- ↑ Li H 、Handsaker B、Wysoker A、Fennell T、Ruan J、Homer N、et al. (2009年8月)。「配列アライメント/マップ形式と SAMtools」 ( PDF)。Bioinformatics。25 ( 16 ): 2078–9。doi : 10.1093 /bioinformatics/ btp352。PMC 2723002。PMID 19505943。
- ↑ Bonfield JK、Marshall J、Danecek P、Li H、Ohan V、Whitwham A、et al. (2021 年 2 月)。「HTSlib : 高スループットシーケンスデータの読み書きのための C ライブラリ」。GigaScience。10 ( 2)。doi : 10.1093 / gigascience / giab007。PMC 7931820。PMID 33594436。
- ↑ Danecek P、Bonfield JK、Liddle J、Marshall J、Ohan V、Pollard MO、他。 (2021年2月)。「SAMtools と BCFtools の 12 年間」。ギガサイエンス。10 (2)。土井:10.1093/gigascience/giab008。PMC 7931819。PMID 33590861。
- ↑ IGV