一个用python编写的序列比对可视化工具 -- LINKVIEW

简介

LINKVIEW 是一个将序列比对结果(或其它任何适合的数据)进行可视化作图的工具。 本工具设计灵感来源于circos软件,因为在日常工作中需要对blast比对结果进行可视化显示,但是找不到合适的软件(circos仅能作环状的图),所以开发了这款工具。 使用LINKVIEW可以绘制出整体或局部的比对情况,支持自定义高亮、导入gff文件以绘制基因结构、有多种风格供选择。请看效果图:一个用python编写的序列比对可视化工具 -- LINKVIEW_第1张图片
一个用python编写的序列比对可视化工具 -- LINKVIEW_第2张图片
github仓库传送门

使用方法

注意:以下操作是基于最早版本的LINKVIEW,新版的作图风格已经发生变化。但是基本操作类似,以下内容仍然可供参考!

首先需要准备一个文件link.txt,内容如下(和circos软件的配置文件大致相同呢)

chr1 1 10000 chr2 5000 15000
chr3 10000 1 chr2 1 10000

第一列和第四列分别是染色体(或片段)的名称,第2,3,5,6列是分别是对应的start和end位点,现在直接运行程序:

$ ./LINKVIEW.py link.txt 

一个用python编写的序列比对可视化工具 -- LINKVIEW_第3张图片
就得到一个共线性的连线图了。图中各个染色体的排列位置和比例尺图例的大小都是自动计算的比较合适的。当然我们可以修改参数作出更复杂的图。
修改link.txt文件内容:

chr1 1 10000 chr2 5000 15000 blue:0.3
chr3 10000 1 chr2 1 10000 :1

我在第一行最后加了一个字段,表示将chr1和chr2的这一个对应关系绘制成蓝色,不透明度为0.3(默认颜色是绿色,不透明度为0.5)
再次运行程序时候,我还把比例尺大小改为4k:

$ ./LINKVIEW.py link.txt  --scale 4k

一个用python编写的序列比对可视化工具 -- LINKVIEW_第4张图片
可以看到图片发生了变化。

另外highlight功能,能高亮显示染色体上某些区域,比如我们准备一个文件highlight.txt:

chr2 5000 10000 yellow
#表示对chr2上面5000-1000的位置标为黄色(不写最后的颜色,默认为红色)

运行程序的时候加上如下参数:

$ ./LINKVIEW.py link.txt --highlight highlight.txt

一个用python编写的序列比对可视化工具 -- LINKVIEW_第5张图片

我们如何修改染色体在图上的排布位置呢?默认的排布位置保证了每一个对应关系都能绘制出来,并且不会有染色体排布在连线块中,但染色体在图上的排布位置其实是可以自由调整的,我们创建一个文件karyotype.txt

chr3:1:15000 chr1
chr2:1:20000
#它的意思是将chr3和chr1放在第一行,将chr2放在第二行,并且指定了chr3显示的起始终止位置分别为1和15000,之前只有link.txt的时候,所有显示到图上的区段都是在比对范围内的,不会超出比对范围,这里通过karyotype.txt文件不仅可以指定染色体排布的位置,也能指定其显示的范围。chr2也是将其范围延长了。

运行程序如下:

$ ./LINKVIEW.py link.txt  --karyotype karyotype.txt

一个用python编写的序列比对可视化工具 -- LINKVIEW_第6张图片

此外,还可以可以直接对blast结果进行作图。
这里有两个片段的blast结果文件:

#Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
contig11 scaffoldC09 99.02 33160 20 212 28090 60946 50962736 50929579 0.0 5.915e+04
contig11 scaffoldC09 99.09 21784 5 128 1 21593 50994773 50972993 0.0 3.895e+04
……

对blast结果进行作图时,记得把–type参数设置为1

$ ./LINKVIEW.py blast.out --type 1 --show_pos_with_label

一个用python编写的序列比对可视化工具 -- LINKVIEW_第7张图片
默认参数保留的是identity>95、alignment_length>200、evalue<1e-5、bit_score>5000的hits,当然,这些参数都可以修改,比如,我想看长度大于5k的比对:

$ ./LINKVIEW.py blast.out --type 1 --show_pos_with_label --min_alignment_length 5000

一个用python编写的序列比对可视化工具 -- LINKVIEW_第8张图片
这里显示的都是比对上的区段,那我们试着看一下全长的比对情况,创建文件karyotype1.txt:

contig11:1:81368
scaffoldC09:1:68416614
#表示contig11在上,scaffoldC09在下,并且contig11和scaffoldC09的总长分别为81368 bp 和68416614 bp

创建文件highlight1.txt

scaffoldC09 50905492 50994774
#表示对这个区域进行highlight

$ ./LINKVIEW.py blast.out --type 1 --min_alignment_length 5000 -k karyotype1.txt -hl highlight1.txt

一个用python编写的序列比对可视化工具 -- LINKVIEW_第9张图片

最新版支持更改作图风格,显示刻度等,功能更强大!欢迎尝试使用和提出宝贵意见~ 传送门

你可能感兴趣的:(python,生物信息相关)