macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

バリアントコール結果を可視化して、素早くバリアントフィルタリングを行うVIPER

 

 次世代シーケンシング(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プログラムのディレクトリ中に配置した。

f:id:kazumaxneo:20181123164609p:plain

#このディレクトリに移動しておく
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が起動するのを待つ。

f:id:kazumaxneo:20181123170143p:plain

 IGVはそのまま置いておいて、http://localhost:8090 にアクセスする。

 

f:id:kazumaxneo:20181123170253p:plain

 VIPER webインターフェース。テストデータの2つのbamファイルそれぞれがビジュアル化されている。

 

一番最初のバリアントコールを承認するか、拒絶するか左上のボタンを押して判定する。 

f:id:kazumaxneo:20181123183017p:plain

ボタンを押すと、自動的に次のバリアントコールに飛ぶ。 

 

可視化パラメータも変更できる。

f:id:kazumaxneo:20181123184145p:plain

変更できるパラメータはIGVに準拠している。 

 

上のメニューからFilteringのタブに切り替えれば、パラメータを指定してapprovd/declinedを一括適用することもできる。

f:id:kazumaxneo:20181123201006p:plain

空欄をクリックして選択する。例えば特定のtoolのコールだけapprovdにする。

f:id:kazumaxneo:20181123201153p:plain

 

設定をリセットしたければ、右端のボタンから行う。

f:id:kazumaxneo:20181123201348p:plain

 

結果はCSVかxlsxで出力できる。

f:id:kazumaxneo:20181123200739p:plain

xlsxで出力し、EXcelで開いた。

f:id:kazumaxneo:20181123184852p:plain

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は変更できるように見える。ただし、簡単に変更する方法が指南していない点を考慮するに、このツールはヒトゲノム解析以外は対象にしていない(よくあること)。