マッピングを利用したSNPsの検出: samtools, bcftools
UB3/informatics/bioinformatics/bowtie2_snp
このページの最終更新日: 2025/05/19広告
解析の準備
NCBI から 次世代シークエンス のデータをダウンロードし、SNP を探索するときの手順を示したページです。
Mac でバイオインフォマティクスを行う環境が整っていることが前提となります。具体的には、ターミナルを使うための知識があり、マッピングのソフト (ここでは bowtie2 を使います)、Homebrew および Samtools がインストールされている状態です。
準備が整っていない方は、以下のページを先に読むことをお勧めします。
bcftools のインストール
マッピングが完了しており、.bam の拡張子をもつ結果ファイルがある状態からスタートする。
Samtools および bcftools というパッケージが必要である。Samtools は bowtie2 のインストール のページですでにインストールしてある。Homebrew がある状態で、
|
でよい。bcftools も同様に brew install bcftools でインストールできた気がする。
最初にやったときは、このページ1 に従うと bcftools 1.7 をダウンロードし、そのフォルダで
|
を実行した。本来は ./configure でパス指定をしなければならないのだが、忘れてもフォルダがごちゃごちゃして汚くなるだけで、動かすことは可能。make install には sudo 権限が必要だった。
which bcftools で確認すると、/usr/local/bin/bcftools にインストールされたことがわかる。

SNPs の探索
sam から bam への変換
参考サイト (Ref. 2) ではマッピングに bwa を使っているが、たぶん .bam か .sam があれば何でも良い。
解析は基本的に .bam で行うので、.sam しかない場合は、まず samtools で変換する。
|
-S は、Samtools のヘルプに "Ignored for compatibility with previous samtools versions. Previously this option was required if input was in SAM format, but now the correct format is automatically detected by examining the first few characters of input." とあるので、もしかすると不要かもしれない。
-b は .bam をアウトプットにするためのオプションなので、これは必要。
このほか、-F オプションをつけてマップされた配列のみを選抜しても良いだろう。
bam ファイルのソート
次に生成した .bam file をソートする。解析に含めたい .bam file が複数ある場合には、最初に merge する。merge のときは、output の名前が最初に来る。
sort には、インプットはオプション不要、アウトプットに -o オプションが必要である。
|
SNPs の抽出
とりあえず、以下のコマンドで動くには動く。それぞれのオプションについて勉強していきたい。
|
これで variants.vcf というファイルが出力される。このファイルの中身は、bcftools view で見ることができる。
|
IGV に vcf ファイルと bam ファイルを読み込めば、マッピングと SNP を可視化することが可能である。
SNP のみを抽出して、quality score の順にソートする。Quality score は、10 ならば 1/10 の確率でその SNP が偽であることを意味するスコア。20 ならば 1/100 の確率、30 ならば 1/1000 である。数百という値が出てくることもあるので、その場合は非常に確かな SNP であると言える。
|
かつては samtools mpileup が使えたが、現在は上記の bfctool
|
samtools のオプションは このページ。-aa で全ての塩基について出力、-f は fasta ファイルの使用、-u は bcttools にパイプするときにはほぼ必須の非圧縮オプション (3)。
bcftools のオプションは ここ に。call が SNP をコールするコマンド。かつては view だった。-c は consensus caller で、もともとの calling method らしい。-m で multiallelic and rare-variant calling を選ぶことができ、こっちの方がいいかもしれない。無論、-c と -m は同時に指定できない。
広告