眼到手到-IGV的高级实操
在使用高通量数据进行变异分析时,经常使用IGV对变异进行可视化展示,可常常是眼到手不到,明明文章中有类似结果,自己却做不出来,这里为大家整理一些IGV的高级操作,供大家参考。
既然是高级操作,那些常规的操作,我们这里直接忽略。如果在实际使用中,遇到了以下问题,请继续阅读。
网络不给力,不能加载在线参考基因组;
比对文件bam过大,电脑打不开,直接卡死;
查看的样本数目过多或者覆盖深度较大,不能全部展示截取;
多个变异需要查看,能否批量产出。
01
无法加载在线参考基因组
在实际使用IGV中,经常需要在线下载相应基因组版本的信息,例如人的参考基因组hg19版本的下载地址为:http://s3.amazonaws.com/igv.broadinstitute.org/genomes/hg19.genome,而这个网站又经常不给力,导致加载失败,无法使用IGV。
当然如果使用始终使用同一套基因组版本,只要成功加载一次,后续一般就不需要每次都下载了。但凡中间更换过一次,就又需要重新下载。
有没有一劳永逸的方法,不用每次都等待加载?
方法1:保存下载文件并手动加载
在网络好的情况下,或者通过其他途径获得genome文件(例如hg19.genome),然后保存下来,每次启动IGV后,取消在线加载,变为手动加载已经下载的genome文件。
方法2:构建本地参考基因组
如果网络实在不给力,下载不到genome文件,那就构建自己的参考基因组。
01
选择构建基因组
选择菜单栏“Genome”下拉菜单中“Create .genome File”。
02
准备文件
在弹出的对话框中填写命名信息
Unique identifier:名称,自己随意定义一个名称即可,该名称会显示在菜单栏下的框中表示当前的基因组版本。
Description name:描述信息,自己定义即可
FASTA file:参考基因组的fasta文件,要求排序过,并且在同一路径下有对应的fai文件。
例如参考基因组为ucsc.hg19.fasta,对应的fai文件为ucsc.hg19.fasta.fai。该fai文件的构建方法为samtools faidx input.fa。
Cytoband file:染色体核型文件,与ANNOVAR输入文件相同,可以直接引用,可以从ucsc下载得到。格式为:
chr1 0 2300000 p36.33 gneg
chr1 2300000 5400000 p36.32 gpos25
chr1 5400000 7200000 p36.31 gneg
Gene file:基因信息文件,与ANNOVAR的输入文件相同,可以直接引用。格式为:
chr1 stdin transcript 11874 14409 . + . gene_id "DDX11L1"; transcript_id "NR_046018"; gene_name "DDX11L1"; gene_biotype "lncRNA";
chr1 stdin exon 11874 12227 . + . gene_id "DDX11L1"; transcript_id "NR_046018"; exon_number "1"; exon_id "NR_046018.1"; gene_name "DDX11L1"; gene_biotype "lncRNA";
Alias file:别名文件,可以不提供
03
保存构建的文件
填写后保存为genome文件,之后再用IGV的时候就可以直接使用了,不用加载在线的文件了。
04
测试bam查看结果
将bam或者tdf文件拖入或者导入IGV查看,与在线加载的genome结果相同(上图为自建基因组文件结果,下图为在线基因组文件结果),完成。
02
文件太大无法加载
在使用IGV时,有时文件过大,例如长度超过10kb乃至1Mb以上的SV,使用自己的电脑打不开,主要原因是内存不足。怎么办?总不至于为了一个变异位点,买个内存条吧!这里我们可以换个思路,我们使用IGV的主要目标是直观的确认变异,即使在文件时,我们参考的主要指标也是bam文件的coverage信息,所以这里我们可以直接提取coverage的信息,然后进行IGV查看。
包括coverage信息的文件格式为tdf文件,这个文件可以由以下命令获得(Linux命令):
igvtools count -z 7 -w 10 test.target.bam test.tdf hg19.chrom.sizes
文件说明:
test.target.bam,为输入的目标区域的bam文件;
test.tdf,为输出目标区域tdf文件;
hg19.chrom.sizes,为参考基因组的各染色体长度,如果安装的igvtools的参考基因组自带该文件,可以用hg19代替。
参数说明:
-z 最大压缩级别,数字越大,得到的文件越小;
-w 窗口大小,以窗口为单位计算覆盖度,数值越大,分辨率越大,得到的文件越小。
文件大小前后也发生了很大改变,例如67M的bam文件转换为tdf后大小为1.8M,此时再用IGV就可以轻松查看了。
03
截取完整变异图谱
此外,使用IGV经常遇到的另外一个问题是,截取完整的reads图,而IGV的本身另存为的图像只能截取当前视图中的图像,当前隐藏看不到的,保存的图像里面也没有。当然,老司机也可以使用右击菜单中Squished功能,但是这里说的是即使压缩后依然不能显示全的情况,怎么办?
解决方法
选择“Tools”中的“Run Batch Script”,这里就需要我们编写一个脚本,然后通过调用这个脚本实现。
脚本很简单,两行命令,两个参数。maxPanelHeight,调整图形大小,根据实际需要调整,数值越大,截取的图形越高;snapshot,截图图形命名。注意,保存的图形默认保存着IGV的安装路径下。
maxPanelHeight 10000
snapshot test.png
运行后,这次得到的变异结果图形是不是够全。
04
批量制图
有时候变异位点比较多,单个的加载查看,耗时耗钱耗视力,怎么办?
可以使用脚本半自动批量实现呀,具体操作如下。
01
提取目标区域的比对结果
这里我们建议将目标区域的比对结果提取到一个bam文件中,手动加载到IGV,就可以批量定位目标区域并截图,提取比对结果的命令如下(Linux命令):
samtools view -hb -L target_region.bed sample.sort.bam > target_region.sort.bam
samtools index target_region.sort.bam
02
生成目标区域的bedGraph
通常情况下,为了指示目标区域的变异,我们会按照目标区域的bed文件生成一个bedGraph文件,该文件可以用来提示目标变异的位置,在浏览变异截图时便于快速锁定目标变异,bedGraph文件示例如下。
track type=bedGraph name=Variant_info description=Variant_info maxHeightPixels=128:30:32 visibility=full autoScale=off viewLimits=0:10 color=0,0,255 altColor=255,0,0
chr9 114014318 114014318 10
chr7 96894731 96894973 10
03
加载bedGraph文件和bam文件
将文件直接拖进reads区域即可。
04
运行批量脚本
批量脚本在Windows系统中以.bat结尾,其内容如下:
maxPanelHeight 5000
goto chr7:96894700-96894998
sort position
snapshot chr7_96894733_96894970_DEL.png
goto chr9:114014278-114014357
sort position
snapshot chr9_114014317_114014317_INS.png
加载完bam和bedGraph文件后,选择“Tools”中“Run Batch Scripts”,选择编写的批量脚本。05
查看截图结果
截图结果,默认保存在IGV的安装的目录,例如C:\Program Files\IGV_2.8.7路径下。
截图中最上面蓝色的横条表示目标区域的变异,高低无意义,主要看左右两端的位置。
参考资料
IGV官网:http://www.igv.org/
IGV使用说明:https://software.broadinstitute.org/software/igv/book/export/html/37
作者:大行山
审稿:童蒙
编辑:amethyst
往期回顾
2、浅谈全基因组复制