次世代シーケンシング(NGS)の開発により、ゲノムシーケンシングは多くの研究分野、特にがん研究に関連する分野(Shen et al。、2015)に適用可能となった。異なるスケールで変化を検出するため多くのツールが開発されている。例えば、GATK(McKenna et al、2010)は主に1塩基変異(SNV)とsmall indelを検出できるが、Pindel(Ye et al、2009)のようなツールは、より大きな構造変化(SV)を検出することを目的としてい る。異なるコーラーの出力は、シーケンシングエラーや反復領域にあるバリアントなどで複数コーラーでの不一致につながるため、注意して処理する必要がある(Hwang et al、2016、Sandmann et al、2017)。誤ったバリエーションが解析結果を歪ませないようにするため、結果として、専門家に基づくレビューと潜在的なバリエーションの実験的検証が、特に臨床的状況においてしばしば採用される。バリアントのレビューには、通常、Integrative Genomics Viewer(IGV)(Robinson et al、2011;Thorvaldsdóttiret al、2013)などの視覚化ツールを使用して、バリアントのブレイクポイントを囲むゲノム領域を可視化することが含まれる。
しかし、現代のシーケンシング技術のスループットとコストの低下に伴い、ゲノムシーケンシングの速度もまた増加し、より多くのゲノムおよびより多くの潜在的なバリアントが検査されるようになる。その結果、どのコーラーが真の陽性であるかを手動で調査し決定することは、面倒で時間のかかるプロセスになってきている。たとえば、IGVで調べるには、各サンプルをロードし、各ブレイクポイントの場所に移動し、バリアントコールの決定を記述する必要がある。これにより、バリアントコールのエキスパートレビューの時間が長くなり、ゲノム解析の妨げになるだけでなく、新しい検出アルゴリズムの開発が妨げられる。
著者らは、バリアントコールの調査と意思決定プロセスを合理化するため、Variant InsPector and Expert Rating tool (VIPER) を提示する。 VIPERはJavaおよびJavascriptで実装されたWebアプリケーションで、バリアントコールをCSVまたはVCFファイルで受け取り、アライメントファイルをBAMファイルとして受け入れる。 補足資料で詳細に説明されているように、SNVとsmall indelsだけでなく、large SVもインポートすることができる。バリアントのメタデータ、 例えばカバレッジまたはクオリティ情報なども入力に提供できる。 VIPERはIGVを使用してブレイクポイント領域のイメージを生成し、ブラウザに表示する。 ユーザーは、論文図1(リンク)に示すように、表示されるイメージに基づいてバリアントコールを承認または却下することができる。さらに、バリアント入力ファイルによって提供されるメタデータとユーザーの決定に基づいて、コールをフィルタリングできる。 フィルタリング基準としてのユーザーの判断は、単一の複雑なフィルタリングステップを指定する必要なしに複雑な増分フィルタリングを可能にする。
Tutorial · MarWoes/viper Wiki · GitHub
VIPERに関するツイート
インストール
依存
- Java version of at least 1.8 is required.
本体 Github
テストラン
example .bam files and variant calls.からbamとCSVファイルをダウンロードし、以下のように、VIPERプログラムのディレクトリ中に配置した。
#このディレクトリに移動しておく
cd viper-v1/
config.jsonを以下のように修正した。
> cat config.json
$ cat config.json
{
"analysisFile": "viper-example/example-variant-calls.csv",
"workDir": "workdir",
"bamDir": "viper-example/bam"
}
working_dirは作業ディレクトリ。存在してなければスタート時に作られる。
起動する。
java -jar VIPER.jar
$ java -jar VIPER.jar
[INFO] Loading variants...
[INFO] Loaded 226 calls.
[INFO] Starting IGV on port 9090, logging to igv.log
[INFO] IGV started.
[main] INFO spark.staticfiles.StaticFilesConfiguration - StaticResourceHandler configured with folder = public
[Thread-2] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - == Spark has ignited ...
[Thread-2] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - >> Listening on 127.0.0.1:8090
[INFO] VIPER started, listening in port 8090
IGVが起動するのを待つ。
IGVはそのまま置いておいて、http://localhost:8090 にアクセスする。
VIPER webインターフェース。テストデータの2つのbamファイルそれぞれがビジュアル化されている。
一番最初のバリアントコールを承認するか、拒絶するか左上のボタンを押して判定する。
ボタンを押すと、自動的に次のバリアントコールに飛ぶ。
可視化パラメータも変更できる。
変更できるパラメータはIGVに準拠している。
上のメニューからFilteringのタブに切り替えれば、パラメータを指定してapprovd/declinedを一括適用することもできる。
空欄をクリックして選択する。例えば特定のtoolのコールだけapprovdにする。
設定をリセットしたければ、右端のボタンから行う。
結果はCSVかxlsxで出力できる。
xlsxで出力し、EXcelで開いた。
approvd/declinedの列が2列目に追加されている。
引用
VIPER: a web application for rapid expert review of variant calls
Marius Wöste Martin Dugas
Bioinformatics. 2018 Jun 1;34(11):1928-1929
気づいたこと
リファレンスはhg19に固定されているが、ソースコードを見る限り、fastaは変更できるように見える。ただし、簡単に変更する方法が指南していない点を考慮するに、このツールはヒトゲノム解析以外は対象にしていない(よくあること)。