在IGV中使用脚本批量截图

在IGV中,如果需要查看大量的基因位置,一个一个手动查找是极其耗时费力的,简便的方法是通过运行脚本对所有基因位置进行截图,然后直接查看,免去输入基因名称的工作。

根据IGV官网的说明,脚本可以是TXT文件,每行一个命令,参数由空格来分隔(不可使用TAB),可以使用#或//来进行注释,例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
new
genome hg18
load myfile.bam
snapshotDirectory mySnapshotDirectory
goto chr1:65,289,335-65,309,335
sort position
collapse
snapshot
goto chr1:113,144,120-113,164,120
sort base
collapse
snapshot
goto chr4:68,457,006-68,467,006
sort strand
collapse
snapshot

脚本保存为TXT文件,执行Tools>Run Batch Script即可。脚本的编写与运行都是简便易行的,难点在于,当我们要对大量位点进行截图时,需要通过简单的方式进行脚本编写。这个教程是在R中来编写脚本,假设我们有一个包含1216个基因的GENELIST,以及准备好的hg19的BED文件(BED文件的准备见前面的教程)

1
2
3
4
5
6
7
8
9
10
11
> length(AD)
[1] 1216

> head(hg19)
V1 V2 V3 V4
1 chr1 66999275 67216822 SGIP1
5 chr1 8378144 8404227 SLC45A1
6 chr1 16767166 16786585 NECAP2
9 chr1 25071937 25170812 CLIC4
10 chr1 33546753 33589093 AZIN2
24 chr1 48998525 50489626 AGBL4

下面,将对这1216个基因编写脚本,在R中运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
> hg19.AD <- hg19[hg19$V4 %in% AD,] # 提取AD中的基因

> hg19.AD$V2 <- hg19.AD$V2 - 5000 # 起始位置前移5K,目的是保留基因的调控区域,根据需要保留
> hg19.AD$V3 <- hg19.AD$V3 + 5000 # 终止位置后移5K

> m1 <- paste("goto ",paste(paste(hg19.AD$V1,hg19.AD$V2,sep=":"),hg19.AD$V3,sep="-"),sep="") # goto
> head(m1)
[1] "goto chr1:8373144-8409227" "goto chr1:226413849-226502204"
[3] "goto chr1:26205669-26237910" "goto chr1:212854758-212878182"
[5] "goto chr1:215791232-216601790" "goto chr1:23827929-23862725"
> m2 <- paste(paste("snapshot",hg19.AD$V4,sep=" "),".png",sep="") # snapshot
> head(m2)
[1] "snapshot SLC45A1.png" "snapshot LIN9.png" "snapshot STMN1.png"
[4] "snapshot BATF3.png" "snapshot USH2A.png" "snapshot E2F2.png"

> n <- length(m1)*2 # 由于要将goto与snapshot进行合并,故产生两位行数的data.frame
> m3 <- data.frame(rep(0,n),rep(0,n))

> m3[seq(1,nrow(m4),2),] <- m1 # 单行赋予m1
> m3[seq(0,nrow(m4),2),] <- m2 # 双行赋予m2

> head(m3) # 得到我们需要的格式,单行goto,双行snapshot
rep.0..n. rep.0..n..1
1 goto chr1:8373144-8409227 goto chr1:8373144-8409227
2 snapshot SLC45A1.png snapshot SLC45A1.png
3 goto chr1:226413849-226502204 goto chr1:226413849-226502204
4 snapshot LIN9.png snapshot LIN9.png
5 goto chr1:26205669-26237910 goto chr1:26205669-26237910
6 snapshot STMN1.png snapshot STMN1.png

> write.table(m3$v1,"./ADtext.txt",quote=FALSE,row.names = FALSE,col.names = FALSE) # 写进TXT文件,注意:去掉引号,去掉行号,去掉列号

注意:在运行脚本大量截图时,最好设定命令间的间隔时间,否则,若电脑性能不够强,会出现截图指令发出时图像还未调整完毕的情况,可以让指令之间加一个间隔时间,经测试800毫秒的延迟可以达到很好的效果,加在截图指令前

1
setSleepInterval 800
  • 本文作者:括囊无誉
  • 本文链接: R/igvScript/
  • 版权声明: 本博客所有文章均为原创作品,转载请注明出处!
------ 本文结束 ------
坚持原创文章分享,您的支持将鼓励我继续创作!