在自然选择和生物进化的过程,伴随着多种多样的变异,形成了复杂和多样化的生物体。在漫长的进化过程中,为了应对变异产生的有害缺失突变(deleterious mutation),生物体逐渐进化出表达多种相似功能蛋白质的能力来保证生物体功能的正常运行,即功能冗余(functional redundancy)。因而,功能冗余是生物体为了克服突变等功能缺失而衍生出的一种保护机制,由于进化过程中产生的这种保护机制,生物体大量存在功能相似的基因。而事实上,在我们的功能缺失筛选中,功能冗余却是一个很大的干扰。基因功能冗余使得基因间存在着代偿效应,单个基因功能的沉默可能会被其它功能相似的基因补偿,这种代偿效应常常导致沉默单个基因无法观察到表型的变化。而这些基因往往属于同一家族,具有类似的功能,我们将这些基因称为一个功能基因簇。针对功能基因簇的基因沉默,有助于消除基因之间代偿效应,更可能观察到表型的变化,从而发现基因(或基因家族)的新功能,因此,我们决定建立一个靶向基因家族的siRNA组合文库。对基因进行家族分类
我们所购买的小鼠全基因组siRNA文库来自于Dharmacon公司。为了降低脱靶效应并提高沉默效率,针对每个基因的siRNA是4条不同序列的siRNA组合,分别针对目的基因不同靶序列。如果我们要沉默一个基因家族,则需要混合针对这个基因家族所有成员的多条siRNA并进行转染。由于Wnt信号通路以及其他一些典型信号通路的关键组分大部分拥有2个或3个基因家族成员,综合考虑沉默效率问题,我们设定基因家族siRNA组合文库中一个家族最多包含3个基因成员。在我们的这个研究以前并没有我们所定义的这种基因家族数据库,于是,我们根据蛋白质功能和序列的相似性开发了一个计算分析流程对基因进行家族分类。这个流程的大概思路如图2A示。首先,利用Pfam(7)对来自GenBank(8)的蛋白质序列进行解析,根据功能相关性等因素对基因进行家族分类,把基因归类为超家族,每个超家族都拥有共同的结构域。然后,再分别对每一个超家族根据蛋白质序列的相似性进行序列联配和进化树构建(9)。最后,利用进化树反映出的序列相似性关系,将大的超家族划分为小的家族,并使每个家族的成员数至多为3个。图2B将一个激酶超家族拆分为若干成员数至多为3的家族的实例。这个流程的步骤详述如下。
图2.基因家族siRNA组合文库的建立 (A) 基因家族分类流程示意图,首先,根据蛋白质的注释将基因分成超家族,红、绿、黄表示不同的结构域,再分别对每一个超家族进行序列联配,进化树构建并进行进一步的细化分类。(B) Gsk3α/β所在的激酶家族分类举例。在这个分类树中,两个序列最相似的蛋白质被分为一个家族,如果有第三个蛋白质的序列和他们最相近,则被分于同一个基因家族。
第一步,获取Dharmacon Mouse Genome siRNA Library中每条siRNA对应的靶基因的蛋白序列。方法是,对于给定的靶基因GI号,通过NCBI的E-utilities接口 (
http://www.ncbi.nlm.nih.gov/books/NBK25500) 下载相应的基因信息 (xml格式)。E-utilities允许以http协议批量查询和下载数据。然后,解析得到的xml文件,从其中的<IUPACaa>字段中提取相应的蛋白质序列。
第二步,将蛋白质序列批量提交到Pfam网站 (
http://pfam.xfam.org/search) 上进行结构域的注释。Pfam数据库是一个蛋白质家族大集合,基于结构域的多序列比对和隐马尔可夫模型来构建。Pfam网站返回的结果包括蛋白质上比对到的所有结构域的列表和其统计显著性 (e-value)。采用阈值 (1e-4) 对列表进行过滤,只保留具有统计显著性的结构域。对于包含多个结构域的蛋白质,我们只取e-value最小的的结构域,因为该结构域的特征最为显著。最后,把具有相同结构域的蛋白质序列归类到一起,形成蛋白质超家族(fasta格式)。
第三步,一个蛋白质超家族的成员数往往大于3,所以需要对这些大的家族进行拆分。为此,我们先调用ClustalW程序 (
http://www.clustal.org/) 对每一个蛋白质超家族进行多重序列比对 (参数默认)。ClustalW是一种渐进的多序列比对方法,先将多个序列两两比对构建距离矩阵;然后根据距离矩阵计算产生系统进化指导树,对关系密切的序列进行加权;最后从最紧密的两条序列开始,逐步引入临近的序列并不断重新构建比对,直到所有序列都被加入为止。比对好的蛋白质序列以clustal格式保存。
第四步,对成员数大于3的蛋白质超家族,利用Bioperl软件包 (
http://w ww.bioperl.org/wiki/Main_Page) 中的相关模块构建系统发育树。首先,用Bio::AlignIO模块读入clustal格式的序列比对。其次,用Bio::Align::ProteinStatistics模块计算两两序列间的距离,采用Kimura方法来近似 PAM距离。在一些情况下,两个分歧较远的蛋白质可能没有公共区域能比对上,我们将他们之间的距离设置为1。最后,基于距离矩阵用Bio::Tree::DistanceFactory模块构建系统发育树,构树方法选择为非加权组平均法 (UPGMA)。UPGMA是一种较常用的聚类分析方法,可以得到有根树。得到的树用Bio::TreeIO模块保存为newick格式。
第五步,基于系统发育树反应出的序列远近关系,将整个系统树拆分为较小的家族,每个家族的成员数不超过3。系统树拆分为较小家族的步骤详见下一节。