写在前面
高通量测序已然成为qPCR一样普及到几乎每一个实验室。大量的物种被测序,对这些物种的序列信息进行分析,有助于我们更多地认识生物演化,预测更甚至了解基因的功能。
基于我个人的说法,
基因只是一段可以发生转录的染色体区域
做湿实验或者进化分析的时候,我们往往使用的是该区域转录出来的某一个转录本,更或者说是,某一个转录本翻译成的蛋白。基因功能验证,是一个耗时费力的事情,或许目前只会有少数研究,会将一个基因的多个转录本用于超表达来验证其具体功能。同样,当我们进行进化分析也是一个道理。当然,如果将基因的多个转录本纳入进化分析,那么或许影响到的不仅仅数据量的问题,而可能涉及到进化模型是否合适的问题。
于是,解决这个问题的一个直接且有效的方式是,为每一个基因选取代表性转录本。我们可以在植物常用的基因组数据库JGI的Phytozome上看到,其对每一个物种都提供了Representative Transcripts的序列。事实上,这也从一个角度说明,代表性转录本在数据利用上的有用之处。
什么是代表性转录本?
代表性,即挑选出来的这个转录本应该从最大程度上代表这个基因的信息。
说实话,具体我也完全忘记,到底是什么时候在什么期刊,有过一篇报道,大体是评估了不同的筛选代表性转录本的方法,其中可能包括:
- 基于转录本的表达丰度,选最高的
- 基于转录本长度,选最长的
- ?基于转录本的exon个数,选最多的?
大体的评估结果,如果我没有记错的话,那么选取基因的最长转录本为次优。最优的方式,需要参考大量RNAseq数据,事实上,从很多角度来说,几乎不大可能实现。
也就是说,选最长是实践中最合适的做法,或许也是最好的做法。当然,即使我没有这么说,那么选最长早就是被普遍接受的做法。毕竟,最直接的考虑是,基因既然是一段区域,那么覆盖这段区域最多的转录本,至少从base的角度来考虑,就最具有代表性。
获取方式
那么,如何获取基因的最长转录本?
事实上,以我有限的认知,目前并没有常用的工具。可能是因为,这项操作,本身比较简单。我们要实现这个功能,只需要简单地写个脚本,从每个基因中挑选出最长的一条即可。
然而,在实践中,简单的脚本事实上并不具备较好的普适性(或者说鲁棒性),常常只适合某一类甚至是某一个物种的注释或序列文件。
于是,我前后写了两个工具:
- 直接基于序列文件
- 基于基因结构注释信息文件
直接基于序列文件
我们知道,同一个基因的不同转录本的ID,常常是以最后的.1 .2 .3。。。等进行分割,如拟南芥,
当然,有时候,我们也会遇到玉米的 _T01 _T02 T03。。。等。奇葩情况是很多的。更不提Trinity组装的转录本序列文件格式了。无论如何,这些转录本表示前面部分,即表示转录本来源于同一个基因。
于是,在很久以前,我写过这一个工具
大多数情况下,用户只需要:
- 物种对应的转录本序列放进去
- 设置输出文件
- 点击Start即可
当然,如果是像上述说的玉米一样的ID,那么就需要稍微修改下正则表达式,如
(\w+?)\.
修改为
(\w+?)_T
我一度以为,这是一个不错的解法。毕竟,很多情况下,经验丰富的人,看一眼序列文件ID,就大体能够估摸出一个不错的正则表达式。但是我错了。
现实是:
- 相当部分人其实并不熟悉正则表达式
- 当遇到需要处理大量物种时,对出现问题的物种进行逐个查看,并不简单
- 事实上存在部分物种的序列ID,并不是简单的使用一个正则可以概括
于是,我换了一种方式。
基因组已测序的物种
对于基因组已测序且有基因结构注释信息文件(.gff/.gtf)的物种,事实上,我们完全可以通过gff或者gtf文件,从坐标信息上,确定出最长转录本的ID。随后我们使用这些ID,对转录本序列全集进行提取,即可得到我们的文件。
所以有了新的这个工具,
使用起来更为简单,用户只需要:
- 设置输入GFF3/GTF文件
- 设置输出文件
-
点击Start
搞定了,没有正则的输入入口,因为完全没必要。同时,我还保留了一个Feature ID的接口。主要考虑是,有时候,最长转录本似乎有点难以定义。
你到底说的是Exon组合最长还是CDS组合最长。
虽然我个人是支持CDS组合最长,毕竟对应的是蛋白嘛...
但是谁也不能保证,有人想要UTR最长,更或者,,,基因结构注释信息文件里面就完全没有CDS feature.
Done!
写在最后
当然,我写这个功能,其实还是用于命令行操作,最近赶课题,需要做一些物种的共线性分析。我对一个一个看正则,毫无兴趣。顺手花了几分钟打个界面,再花半个小时写了个推文,希望这个功能对其他人也有一定的用处。
顺便
好像还是有很多做生信的朋友,那么就再开一个微信群?
如果你加不了,那么就加我好友,发个红包,说明加群(当然,群有群的规定,发了红包一样会被清理,请慎重)