IRscope是一款将叶绿体基因组四个区域连接位点可视化的软件,可以本地化,也可以在线服务,具体可移驾这篇文章: IRscope:可视化叶绿体基因组四个区连接位点
  我之前用的是本地化的软件,会遇到genbank文件格式的问题,导致程序报错,或者图片生成的很奇怪,又或者文件太多,运行的太久(可能是我的配置问题)。。。正常情况下图片是好的,而且生成的是pdf格式的图片,修改起来很方便(在线服务给的图片是gpg,修改起来可能会麻烦些)。
  下图是在线服务中给的两个genbank文件做的图。
叶绿体基因组四个区连接位点可视化(IRscope+另一个画图脚本)
  emm…看着这个图感觉不是很复杂,就是方块、文本、线条构成。于是学了一年perl的我决定用SVG模块实现下。
思路如下:

  • 读入genbank格式文件
  • 获取信息:序列、物种名、gene信息等信息
  • 计算反向重复区的位置(后来反向重复区由用户输入)
  • 根据交界,向左和向右各寻找一个基因(IRscope中用的是聚类算法?不一定左边一个基因,有的时候是两个,无奈本人实在看不懂太多R…)
  • 绘图
      先看下生成的图片~ 用的物种和上述的相同。
    叶绿体基因组四个区连接位点可视化(IRscope+另一个画图脚本)
      虽然不难,但是实现后还是满满的成就感(Hahaha……),乍一看,是不是觉得下面的图更加小清新一些(自恋中)~
      比较一下:
    • 第一个图JLB处,左边多了一个rpl22,上面说过了,我这里只向左寻找一个基因就终止了。
    • 第一个图JSB和JLA处,多了ycf1和rps19,这两个基因是pseudo基因,我设置默认是不显示的,可以加-p选项显示。叶绿体由于反向重复区的存在,经常会出现较短的ycf1和pseudo rps19,而且每个物种里的注释是不统一的,有的把ycf1注释成CDS有的注释成pseudo,这个挺让人头疼的。个人觉得这两个基因完全可以从另一个IR区看出来。比如JSA处的ycf1横跨IRa 1122 bp,对应的IRa中也应该有那么长度属于ycf1。
    • 基因方向问题,IRscope中应该是正链基因位于下方,负链基因位于上方(这似乎会导致基因重叠?),我是直接使用箭头来表示基因的方向。
    • 间距问题,IRscope中有的位置是没有标距离的,如JLB处的rpl2(可能是前一个基因跨区域了,所以这个没必要标),我是标了所有的(毕竟我的显示基因数量比较少)。
    • 配色,个人感觉IRscope的配色有的地方不太好,如四个区域的名称,和背景色相同,看起来不是很清楚。
    • 其他:关于字体的斜体正体问题-基因名和物种名应该斜体,其他的用正体比较好;关于布局问题-我的图比较胖些?

虽然上述两个图是差不多的,但是你以为这样就对了?

  其实这两个图中的 Solanum lycopersicum 物种的反向重复区(IR)是有点问题的(我的脚本是自己输入的反向重复区,附带一个计算反向重复区的脚本,为了和IRscope的结果一样,所以修改了下反向重复区),实际上我计算出来的反向重复区是:

  • LSC:2-85875
  • IRb:85876-111487
  • SSC:111488-129850
  • IRa:129851-155461,1-1
    即第一个碱基应该属于IRa,所以我算出来的反向重复区要比IRscope算出来的长1 bp,LSC短了2bp。新的图片如下:
    叶绿体基因组四个区连接位点可视化(IRscope+另一个画图脚本)

和之前差异的地方用红色箭头表示了(相应交界处的基因也会改变1bp)。出现这种情况主要是由于叶绿体是环形的,我们通常以LSC作为起点,但是不排除其他的起点。这里只是差了1bp,影响似乎不大?但是如果我从IRa的最后末尾20bp作为起点,那么这里影响就很明显了,IRscope似乎不能跨首尾识别反向重复区,这里我又测试了下,同样的序列,不同的起点,见下图(用在线服务做的,似乎gb文件格式有问题,所以颜色上有点问题。),上面一条是我算出来正确的反向重复区的序列,下面一条是我从IRa的末尾20 bp作为起点的序列,这次差异很明显吧。其他的情况,比如起点落在IRb中,或者SSC中,都可能导致结果有问题。所以,我们在做边界可视化之前要检查下反向重复区是否正确,找到正确的起点。这个很重要!此外,涉及到比对的时候也要检查起点是否一致,比如在用全基因组序列构建进化树的时候。这里多提一点,由于反向重复区的存在,用短的reads做组装的时候LSC和SSC的方向是确定不了的,做进化树前需要调整下SSC方向,使所有物种都同向,不然做出来的进化树分支可能和你预期的不一样,同一物种的可能不在一个分支上。所以推荐使用CDS来做。
叶绿体基因组四个区连接位点可视化(IRscope+另一个画图脚本)

  总结下写脚本的感受,这个脚本前前后后改了好多次,目前算是3.1版本,但是仍有些问题,比如:代码比较乱、变量没有统一设定,想要改字体大小和格式需要改好多地方、参数设置不太好,想要修改颜色需要修改源码。不过,对于自己的工作已经够用了 (^ _ ^),再接再厉~
  最后,想要源码的小伙伴可以发邮件到我邮箱哦~

邮箱:
[email protected]
[email protected]
(免费获取)

相关文章: