一键完成比较基因组中的基因共线性分析
写在前面
近年来,高通量测序费用持续走低。大多数课题组完全有经费可以支撑起自己所研究材料的基因组测序更或者可以非常容易地从网络上获取基因组序列与基因结构注释信息。于是会开始存在这样那样的,关于比较基因组的工作开展。其中最基本的操作,即是跑跑所谓的共线性分析。大体应用可见图:
查看自己感兴趣的基因在物种演化过程中是否保守存在,还是发生过一些位置变换,这当然是最基本的应用。更多的,做共线性分析,主要是为了做核心演化等分析,更详细地去探明物种的演化过程和演化时间。
于是,其实存在不下十个软件被开发并被使用,其中常见的是两个:
MCscanX (或JCVI)
i-ADHoRe
事实上,这两个软件正好对应的是两个比较早就开始做基因组进化的研究组。可能是由于软件的易用性,当然或许是在高分文章上出现的次数多少,我们更多时候可以看到的是MCscanX。
MCscanX的使用,需要用户准备好两个文件:
蛋白质比对结果
基因位置信息
获得这两个文件,本身就是一个麻烦的事情,需要的步骤包括:
基于基因结构注释信息,从基因组序列中提取cds序列
将cds序列翻译成蛋白序列
多数基因结构注释文件中包括一个基因的多个转录本,所以需要取蛋白序列中的一个为该基因的代表(主要是BlastP)
以上三步分别对两个物种应用并得到两个蛋白序列文件,将一个比对到另一个(BlastP,耗计算资源),终于得到蛋白质比对结果
基于基因结构注释信息,提取基因位置信息
跑MCscanX
搞定。说起来简单,其实做起来是非常繁琐的。无论是用脚本,还是直接使用TBtools(TBtools完全可以任何主流操作系统如windows, MacOS, Linux下使用界面,鼠标点点点成上述工作)
但是,步骤还是过于繁琐
一键完成 - MCscanX
课题组近期有在做基因组相关的工作(我仍然是千年辅助),需要做一些共线性分析。当然,我是一个非常Lazy的人。于是我写了这么一个界面,
用户需要做的是两件大事情:
设置输入文件,点击开始
睡一觉(BlastP需要时间),醒来看结果
具体输入内容,从网上下载下来就可以直接用:
第一个物种的基因组序列信息,.fa,注意,是 基因组序列,不是基因序列
第一个物种的基因结构注释信息,支持非诡异的gff3和gtf
第二个物种的基因组序列信息
第二个物种的基因结构注释信息
给一个输出目录,注意,是输出目录,不是输出文件!
设置CPU数目,如果你的电脑优秀,那么高肯定是快,比如我的电脑上述比对大概用了20分钟
其他两个参数,一般不动
OK,从上图可以看出,一定能得到结果。
也可以看出,其实内部逻辑我确实做了一些工作。如果你要写一个类似的工具,你可能需要注意的是:
gff3 和 gtf 文件你如何同时支持?
不是每个文件都是CDS,有可能是cds
不是每个gff3文件都是Parent,或许是parent,也不是每个gtf文件都是transcript_id,可能是Transcript_id
最长转录本,你如何确定清楚,注意是cds features的集合,不是mRNA feature
文件如何命名,才能保证后续一定没问题
最后是....你真的需要写一个吗?
写在最后
祝大家科研顺利了。