ゲノム比較してえなあ、そんなあなたにIGV
Integrative Genomics Viewer (IGV) は視覚的なゲノムビューアです。ゲノムビューアってなんぞやって話ですが、ゲノムを比較して遺伝子変異を視覚的に解析できるツールです。IGVを使いこなせれば、サンプル間の遺伝子変異(挿入・欠失・増幅などなど)を効率的に探すことができます。
よくある用途として、一塩基多型(SNP)の探索があげられます。遺伝子を比較したいサンプルAとBがあるとすると、AのFASTAファイルにBのシーケンスデータをマッピングし、そのマッピング結果を以下の写真のように表示させます。遺伝子の位置と(青い帯)SNPの場所を見ながら、変異を探せるわけです。マッピングのやり方は別記事で話すとして、今回はその結果の表示方法を説明したいと思います。
流れ
- レファレンスの登録
- マッピングの表示
レファレンスの登録
レファレンスの用意
まずは、レファレンスゲノムを用意しましょう。必要な形式は、FASTAとGenbank(GFF形式)になります。NCBIからダウンロードするか、もしくはローカルでアノテーションしましょう。今回は、緑膿菌PAO1のゲノムファイルを用います。
レファレンスFASTAをindex化しよう
レファレンスのFASTAはそのままの形式ではIGVで読めません。まずは、SNP解析に用いたリファレンスのFASTAファイルをindex化します。index化によって、FASTAはIGVに対応した形式に変換され、きちんと読み込まれるようになります。
index化にはsamtools
を使います。samtools
のインストール方法はこちらです。ちなみに筆者はcondaで使ってます。
samtoolsのコマンドは以下のとおりです。。
# samtoolsによるindex化
samtools faidx PAO1.fasta
index化すると、reference.fasta.fai
というファイルが生成されます。正しく生成されれば成功です。
Genbankの編集
Genbankファイルも編集が必要です。やることはgffファイルのFASTA部分を切り取ることです。
gffは遺伝子情報(塩基番号や転写方向、遺伝子名など)が行で記載されている形式ですが、遺伝子情報の下に、FASTAが書かれていることがあります。このFASTAはgffをIGVで読む時には必要ないので、削除しましょう。
筆者はVim
で開いて、コマンド/FASTA
を入力してFASTAを検索後、キーボードでV
→G
→dd
で削除しました。
JSONファイルの作成
ここが少し山場です。ここまで編集したFASTAやGenbankをIGVに読み込ませて表示させるためには、JSON形式のファイルを作成します。フォーマットに則って作ればOKです。注意点として、contigの名前と数をFASTAとgffで一致させることがあります。一致していない場合、JSONをIGVで読み込んでも遺伝子情報(青い帯)が出てくれません。
以下のテキストは筆者が書いたJSONファイルです。参考になれば幸いです。
{
"id": "PAO1",
"name": "Pseudomonas aeruginosa PAO1",
"fastaURL": "/YOUR/DIRECTORY/PAO1.fna",
"indexURL": "/YOUR/DIRECTORY/PAO1.fna.fai",
"chromosomeOrder": [
"NC_002516.2"
],
"tracks": [
{
"name": "PAO1 genes",
"format": "gff",
"url": "/YOUR/DIRECTORY/PAO1.gff"
}
]
}
JSONファイルをIGVに読み込み
最後に、JSONファイルをLoadします。Loadはメニューバー[Genomes -> Load Genome from File...]をクリックし、jsonファイルを選択します。画面が遷移して、左上のタブにJSONファイルで書いたname
が出てきて、下部に遺伝子の青い帯が出てくれば成功です。
JSON読ませてもうまくいかない時
筆者の経験ですが、原因は以下の可能性があります。
- gff内に書かれてるFASTAを消してない
- JSONに書いたFASTAやGenbankのパスがおかしい
- JSONに書いた
chromosomeOrder
のコンティグ名や数がFASTA及びgffと一致してない
失敗した時は見てみてください。
マッピングの表示
リファレンスの登録が済んだら、マッピング結果を表示させます。
マッピング結果なバイナリファイル(BAMファイル
)をindex化します。
index化はsamtools
で行います。
samtools index mapping_result.bam
これによって、mapping_result.bam.bai
ができます。
index化できたら、IGVで読み込みます。メニューバー[File -> Load from File]をクリックし、mapping_result.bam
を選択します。bam.bai
ではないです。
すると、マッピング結果が出てきます。あとはみたい箇所をズームして、変異をみていくだけです。
終わりに
今回はIGVによるSNP解析を紹介しました。今回は、表示させるまでを解説しましたが、IGVにはマッピングを信頼値によってフィルタリングしたり、マッピングされたリードを見やすくしたりといった、解析面及び視覚面で有用な機能があります。今後も紹介していきたいと思います!