スクリプト -igv_batchスクリプト-

Howto イメージ自動保存

IGVを起動し、下記スクリプトで作成したbatchファイルを読み込むだけ!!
「tools」→「Run Batch Script」より、例ファイル「new_testigv.bat」を読み込むと、
”〇〇○_〇〇○-〇〇○.svg”というイメージが勝手に保存されていきます。

igv_batch.py

## conda install -c bioconda igvtools
## conda install -c bioconda igv
## http://kazumaxneo.hatenablog.com/entry/2017/07/05/132019
## http://software.broadinstitute.org/software/igv/automation

import os
import re
import sys

species = 'hg38'
genome_dir = '/Users/user/ws/ref/genome/'
genomeFastaFile = os.path.join(genome_dir,species)

root_dir = '/Users/user/Downloads/test_igv/output/'
igv_dir = os.path.join(root_dir,'igv_dir')

bed_file = 'your_bedfile_name'


with open('new_testigv.bat', 'w') as f:
    f.write(os.path.join("new\ngenome "+genomeFastaFile+"\n"+"snapshotDirectory "+igv_dir+"\n"))


sample_f = open(os.path.join(root_dir,'SRR_Acc_List.txt'))
for line in sample_f:
	sample = line.strip()
	bam_f = "load %s/{}.Aligned.out.sorted.bam\n" %(igv_dir)
	bam_f = bam_f.format(sample)
	with open('new_testigv.bat','a') as f:
		for bam in bam_f :
			f.write(os.path.join(bam))

bed_f = open(os.path.join(igv_dir,bed_file+'.bed'))
for line in bed_f:
	chrom,start,end,Class,_,strand,_ = line.strip().split()
	text = "goto {}:{}-{}\nsort\ncollapse\nsnapshot {}_{}-{}.svg"
	text = text.format(chrom, start, end, chrom, start, end)
	with open('new_testigv.bat','a') as f:
		for goto in text, :
			f.write(os.path.join(goto+'\n'))
            

memo

bedファイルはこんなんですよ。

最初の3列(クロモソームの名前・スタートポジション・エンドポジション)が必要。
http://kazumaxneo.hatenablog.com/entry/2017/07/26/000453

chr1	10000	20000	ABC	.	+	1
chr2	20000	30000	ABC	.	+	2
chr3	50000	70000	ABC	.	-	3

batchスクリプトはこんなんできますよ。

・new_testigv.bat

new
genome /Users/user/ws/ref/genome/hg38
snapshotDirectory /Users/user/Downloads/test_igv/output/igv_dir
load /Users/user/Downloads/test_igv/output/igv_dir/SRR0000.Aligned.out.sorted.bam
load /Users/petadimensionlab/Downloads/test_igv/output/igv_dir/SRR0000.Aligned.out.sorted.bam
goto chr1:10000-20000
sort
collapse
snapshot chr1_10000-20000.svg
goto chr2:20000-30000
sort
collapse
snapshot chr2_20000-30000.svg
goto chr3:50000-70000
sort
collapse
snapshot chr3_50000-70000.svg

svg to png

出来上がった画像の仕様を変更。
svg→拡大してもきれい
png→拡大したら昔のファミコンみたい

svgって綺麗やけど扱いにくい!って方は下記コマンドを実行してpngに変換。

#ソフトをインストール
$ brew install imagemagick

#画像の表示サイズを設定
$ sed -e 's/^<svg/<svg width="1275" height="710"/' chr1_10000-20000.svg > chr1_10000-20000_2.svg

#svgをpngに変換
$ convert chr1_10000-20000_2.svg chr1_10000-20000_2.png

Q.最初からpngで保存でいいのでは?
A.めっちゃ荒いよ。svg→pngだとまあまあ綺麗!

参考URL:
コマンドで画像を一括処理! ImageMagickの便利な使い方
画像フォーマット「SVG」を使いこなすために知っておきたいこと

Select a repo