以前書いたIGVのtipsという記事に時々アクセスがあるようなので、今日は再びゲノムブラウザIGVのtipsの紹介をします。
(自分のNGS講習資料(2023・フィリピン大のラボ)より)
1、JSONファイルでの読み書き
IGVはゲノムファイルやアノテーションをGenomeメニューから読み込むことよりもJSON形式でゲノムを指定する事を推奨しています。以下の形式になります。
https://github.com/igvteam/igv/wiki/JSON-Genome-Format
(manualより転載)
アノテーション、cytobandなどのファイルはホストされているURLまたはローカルマシンのパス(絶対パスまたは相対パス)を指定します。必須プロパティはid、name、fastaURLのみで、あとはオプションです。JSONはVScodeなどで見やすく編集できます(VScodeで"command + K" & M => JSONを選択)。
1つIGVで開いてみます。IGVは代表的なゲノムのJSONファイルとアノテーションをホストしているのでこれを使います。
https://github.com/igvteam/igv/wiki/Downloading-Hosted-Genomes-for-Offline-Use
wget https://s3.amazonaws.com/igv.org.genomes/ASM985889v3/ASM985889v3.json
> cat ASM985889v3.json
#-g (--genome)でjsonファイルを指定。
igv -g ASM985889v3.json
配列とアノテーションが読み込まれました。自分たちでアセンブルしたゲノムをIGVに読み込む時も、配列とアノテーションのパスを書いたJSONをオフラインで読み込んだり、自前のサーバーに置いて読み込むことができます(公式の解説)。
2、バッチ処理
IGVは処理内容をテキストに記載することで様々な作業を自動化できます。
バッチコマンド一覧
https://github.com/igvteam/igv/wiki/Batch-commands
使うには処理内容をテキストに書き、そのテキストファイルを指定します。6行だけの簡単な処理を書いてみます。
new
genome ./genome.json
load ./sample1.bam,sample2.bam
goto chr:1000-3000
snapshot ./picture1.png
exit
1、newで新しいセッション(IGVが起動する)
2、genomeでgenomeのfastaやアノテーション、jsonファイルのパスを指定
3、loadでbamファイル2つを指定
4、gotoで指定した染色体の領域に移動
5、snapshotでpicture1.pngとして画像をカレントに保存
6、exitでIGVをシャットダウン(最後にIGVを終了したい時に使用)
- new Create a new session. Unloads all tracks except the default genome annotations.
- genome selects a genome by id, or loads a genome (or indexed fasta) from the supplied path.
- load Loads a data or session file by specifying a full path to a local file or a URL. To explicitly specify a path to an index file use the optional "index=" parameter. For examples load foo.bam index=bar.bai
- snapshot Saves a snapshot of the IGV window to an image file. If filename is omitted, writes a PNG file with a filename generated based on the locus. If filename is specified, the filename extension determines the image file format, which must be either .png or .svg.
- exit Exit (close) the IGV application.
という流れです。画像フォーマットはPNGかSVGを選べます。
バッチファイルはTools => Run batch scriptで読み込んで実行するか、
もしくはコマンドラインから実行します。
igv -b igv.batch
- --batch | -b Path or url to a batch command file
実行すると、IGVが起動して指定したゲノムが読み込まれ、指定した領域にジャンプして画像が保存されてからシャットダウンします。
picture1.png
- 命令を繰り返すことで処理を自動化できる。
- snapshotでSVG形式の画像を撮れば(イラストレーターなどを使って)余計なフレームを除く編集も簡単に行える。
- バッチ処理コマンドは細かい操作に対応しているので、細い指示にも対応可能(例えばリードをstrandでソート&カラーリングし、関心のあるバリアント部位の画像を順番に撮る)。
関連