アメリエフのブログ

Amelieff Staff Blog

bcftools簡単説明

bcftoolsは、NGSを用いた変異解析で用いられる、変異を記述するVCF(variant call format)形式のファイルを扱うためのユーティリティです。

私は日常の解析に用いており、特に

  • ファイルサイズが大きいVCF(WGSやWES)
  • 複数サンプル数が含まれるVCF

を扱う際には非常に便利です。多機能かつ結構速い。
もうこれがなかったら解析できない。それくらい(私は)使っているのですが、日本語でbcftoolsの使い方を解説しているページがあまりありません。
もしかしたら、私が知らないもっと便利なツールがあるのかもしれない。親切な人にぜひ教えてほしいところです。

今のところはその便利なツールを知らないので、せっせとbcftoolsを使用して解析を進めております。
ユーティリティというだけあって様々な機能があるのですが、bcftoolsを使って何をするにも下記2つの機能は基本となります。

  • index
    VCF、bgzipされたVCF、BCFのインデックス(目次)ファイルを作成する機能です。インデックスを作成することで、ファイルが高速に扱えるようになります。bcftoolsの一部機能は、インデックスを作成しておかないと使えません。
  • view
    VCF、BCF、bgzipされたVCFの変換を行います。オプションを指定することで、VCFの一部変異だけを抽出して扱うことも可能です。特定のゲノム領域、ジェノタイプやFILTERなどを抽出の条件に設定することが可能です。

そのほか、ちょっとした操作をしたいときにこの機能があって助かった!と思うことが多い機能は

  • concat
    「同じサンプル」の「異なるVCF(またはそれを変換した)ファイル」を1つのファイルにまとめてくれます。
  • merge
    「異なる複数サンプル」の「異なるVCFファイル」を1つのファイルにまとめてくれます。あらかじめbgzipしてインデックスを作成したVCFが必要です。トリオなど、関連づけて扱いたいサンプル同士の解析で便利な機能です。
  • query
    VCFをユーザー規定の形式に変換。多様な使い方があるので、簡単には説明できませんが、たとえば、あるファイルに含まれる変異のジェノタイプ情報だけを抜き出したりできます。
  • reheader
    VCFのヘッダ部分を、あらかじめ用意しておいた別のヘッダと入れ替えることが可能です。VCFのヘッダだけを書き出すことができるbcftools view--header-onlyオプションと組み合わせて使うのだと思います。私の主な使い方では、--samplesオプションで、VCFに書かれたサンプル名をちょっと編集したいときなどに使います。

一部機能は、やろうと思えば、grepコマンドを2~3回程度使えば同じことができますが、bcftoolsを通すことでフォーマットチェックが入ったり、ちょっとしたファイル間の書式の差異も吸収してくれて助かります。
また、上記は私自身の日常業務で使用頻度が高い機能だけをご紹介しました。他にもいろいろな使い方があります。
でも、「bcftoolsもいいけどこっちのツールも便利!」というご意見もお待ちしております!

最後になりましたが、bcftoolsのインストール方法はこちらをご参照ください。