1相关介绍
在介绍基因家族收缩和扩张之前,有一个概念是绕不过去的,就是基因家族。
基因家族(gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物, 同一家族基因可以紧密排列在一起,形成一个基因簇,但多数时候,它们是分散在同一染色体的不同位置,或者存在于不同的染色体上的,各自具有不同的表达调控模式。
在基因组项目中,通常会选择自己要研究的物种和其近缘的物种通过比对来寻找基因家族。通常我们有两种方式来得到基因家族:1 利用orthmcl软件进行blast比对(如果有谁不太清楚,出门左拐->上一篇文档)2将多条物种蛋白muscle比对之后,利用hmmer和pfam数据库比对,如果能比对上同一个蛋白质家族,认为这几条序列是隶属于同一个基因家族。当然也可以两种方法结合起来做。我做项目过程中大多选择第一种,因此今天利用第一种得到的基因家族信息来介绍基因家族收缩和扩张。
基因组文章中大多采用cafe软件来进行该项分析。(各个基因组统计结果)
2软件介绍
cafe是美国xx大学开发的一款xx软件,软件的原理大致如下,通常情况下比较两个物种基因家族数时,只是单纯的比较大小,如5大于2 ,那么认为家族数为5的物种基因家族在扩张,后来加入了统计学,会考虑下5 是否显著大于2。但是科学家们都是处女座的,追求严谨,他们很较真的提出了一个概念,如果有5个基因家族的物种比对A物种,有100万年的历史,而有两个基因家族的物种有10万年的历史,那么将他们两个简单的做一下加减法或者统计检验是非常任性的,因此科学家们引入了一个模型,出生死亡率模型。社会学科的人都知道这个模型,可以用来估计人口的。同样这个模型可以估计出A和B的共同的祖先的基因家族数,然后我们在一个共有的时间尺度下比较A和其祖先,B和其祖先的家族数收缩和扩张情况,可以更好的,更准确的得到物种的状态。示意图如下
3所需数据
首先要对orthmcl的结果进行统计,统计每个家族中每个物种出现的次数,结果格式如下:
GF_1 r5|r5_37273 r5|r5_7773 r5|r5_39887 r5|r5_42220 r5|r5_40330 r5|r5_37989 r5|r5_40295
GF_2 r5|r5_4187 r5|r5_37986 r5|r5_8138 r5|r5_38203 r5|r5_3914 r5|r5_9613 r5|r5_9656 r5
然后要对所研究的物种和其近源物种进行构树,通常是提取单拷贝基因连接在一起构建物种树,得到物种树之后要进行化石时间的校正,也就是要把这个树变成时序树(因为cafe模型需要时序树吗,对于这部分不清楚的,也请出门左拐,看构建系统发生树的方法和软件介绍)。要将最终的树的格式保存为newick格式。(为保证内容的连惯性,这里不懂的,自行百度吧),并且去掉最后的;。树的格式如下:(B:6.0,(A:5.0,C:3.0,E:4.0):5.0,D:11.0);
具体内容参加网址:http://evolution.genetics.washington.edu/phylip/newicktree.html
有这两个输入文件就可以了。
4 程序介绍
cafe目前最新的版本是3.1,最老的版本是java写的,有执行窗口,比较友好,但是模型较为粗糙。我现在用的版本是3.1, linux操作环境。执行命令时,只需敲入cafe即可。
帮助为?,退出交互界面为exit,当然也可以执行脚本,使得程序较为连贯。
在cafe中,我认为较为重要的就是lamda,这个参数就是出生死亡率的速率,一般为0.02。自己可以调整,也可以-s 让程序自己去估计。不过不要让lamda*时间大于1,这样模型跑不出结果来(模型内部限制)。
5输出结果和分析
6讨论和结论
在用cafe计算基因家族收缩和扩张时,经常遇到的问题有如果几个物种分化时间较短的话,模型计算不出来结果。如果有一个家族基因数超级多的话,也会影响模型的精确性,一般如果一个物种上万的收缩和扩张,就是有问题啦。另外,关于家族收缩和扩张树的构建,我建立利用R语言的一个包ape,当然我自己也写了一个脚本(perl 和R)可以直接生成基因家族收缩和扩张树。如果有兴趣的话,可以联系我。其他的问题,我会随时更新的,这些是我在做项目中学到的,肯定有疏忽和理解不对的地方,希望批评改正,大家共同进步。当然,如果你有疑问和质疑可以留言,我会时刻关注。