不同物种的同一个基因的对应关系

不同物种的同一个基因的对应关系

我们都知道不同的物种在进化过程中其实共享很多基因的,尤其是哺乳动物,同一个基因虽然在不同的物种序列不完全一样,位于的染色体也不一样,发挥的功能可能也稍微有点区别,但是他们的相似性非常高!根据相似性就可以在不同的物种里面找到同一个基因。

比如在人类疾病研究领域非常出名的TP53基因,在人类参考基因组的17号染色体上面,但是在mouse里面不仅仅是改名了,叫做Trp53,而且位于11号染色体,在其它物种就更加多元化了。

所以通过研究生的辛辛苦苦查询文献,数据库,终于得到了下面这张表格:

mouse, Trp53 Chr11 cM Chr11:-(+)
human TP53 Chr17 p13.1 Chr17:-(-)
chimpanzee TP53 Chr17
macaque,rhesus TP53 Chr16
dog,domestic TP53 Chr5
cattle TP53 Chr19 q15
rat Tp53 Chr10 q24
frog, tp53 ChrUN
zebrafish tp53 Chr5

我们不可能每做一次研究就搜索一下,其实是有专门的数据库,在 http://www.informatics.jax.org/homology.shtml 里面专门收集了这些信息,我们要做的就是写脚本解析它!

wget http://www.informatics.jax.org/downloads/reports/HOM_AllOrganism.rpt
## 17M Nov 20 21:00 HOM_AllOrganism.rpt

脚本趣事

如果这个文件大家有打开看的话,很容易理解为,每9行是一个同源基因的ID在不同的9个物种的基因信息,列也是很整齐的,虽然很多基因的在某些物种里面的好多信息都是缺失的,但是不影响我们很容易写出代码来把这个长型数据转换为宽型数据!对的,你想到了什么呢?是R,就是R,我们的小英雄。

a=read.table('~/HOM_AllOrganism.rpt',header = T,fill = T,sep = '\t',quote = "")
## 这个 read.table 的参数我用的有点多,希望你喜欢
head(a)
dim(a)
library(tidyr)
?spread()

所以我写出了上面的代码,结果很显然,报错了,因为同源基因的ID并不是只出现9次,不是我想当然的那种数据库格式,很多基因在单独物种里面都没有搞明白,多个家族基因混在一起,在跨物种间,怎么可能那么容易就牵一根线对应起来呢?

同源关系不明确的

简单写了个脚本,发现有 4061 个基因,都在很清楚在9个物种里面对应好了,但是该数据库总共记录了 25998 ,意味着几乎大部分的基因特别含糊,看样子人类的认知边界还是很狭窄呀!详细的统计指标如下图:

hom_gene

那,接下来让我们仔细瞧瞧看,这些不明确的基因都是咋回事吧。

当然,基因实在是有点多,就随便挑选几个看看。

发现有锌指蛋白,vomeronasal type-2 receptor(extracellular calcium-sensing receptor-like),bloodthirsty-related gene family , 果然不出所料,都是哪些本身就在一个物种就有一堆亲戚的基因家族系列。

另外值得注意的是,那些小于9个的基因,是不是所谓的物种特异性基因呢?

布置作业:

题目一:那 4061 个在9个物种里面对应好的基因,在人类的背景里面做一下富集分析,看看都是集中在哪些通路。

题目二:把那些出现少于9个物种的基因探究一下,比如只出现在一个物种的那些是不是物种特异性基因呢?出现在2~5个的,是不是跟这9个物种的进化关系有联系呢?

Comments are closed.