英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
用于树探索的python环境。
由Jaime Huerta-Cepas,对应的作者Joaquin Dopazo,2和Toni gabaldon相应的author1。
文摘
许多生物信息学分析,从基因聚类到系统遗传学,都以层次树为主要结果。它们被用来表示不同生物实体之间的关系,从而促进他们的分析和解释。一些独立的程序可以集中在树的可视化上,或者对它们进行具体的分析。然而,这样的应用程序很少适合进行大规模的调查,因为需要更高的自动化程度。目前,许多全基因组的分析都依赖于树状的数据表示,因此,对于可伸缩的工具在很大程度上处理树结构的需求越来越大。
关键词:Python, spiking神经元,模拟,整合与火,教学,神经网络,计算神经科学,软件。
背景
这里我们介绍了树探索的环境(ETE),这是一个python编程工具包,它帮助自动操作、分析和可视化层次树。ETE库提供了一套广泛的树处理选项,以及分析系统和集群树的具体方法。在其他特性中,ETE允许对树分区进行独立分析,支持扩展的newick格式,提供一个完整的节点注释系统,并允许将树链接到外部数据,例如多个序列对齐或数字数组。此外,ETE还实现了许多内置的分析工具,包括基于系统的标准预测和集群验证技术。最后,ETE的可编程树绘图引擎可以用来自动实现树的图形化渲染,并具有定制的节点特定的可视化效果。
结论
ETE提供了一套完整的方法来操作树数据结构,它扩展了其他生物信息学工具箱中的当前功能。研讨会是免费软件,可以从http://ete.cgenomics.org下载。
树木通常用来表示许多生物信息学分析的结果。特别是,这种类型的二进制图是描述各种生物实体之间的层次关系的理想方法。一些常见的例子是分子序列的进化分析,或者是根据它们的性质对基因和蛋白质的集群化。除了在树的拓扑结构中编码的信息之外,分支长度也可以被缩放以提供关于不同分区之间的距离的信息。例如,在系统遗传学中,树木被用来说明物种或分子序列之间的进化关系,将终端节点看作现存的可操作的分类单元(OTU)和内部节点作为其相应的祖先。在这种系统进化树中,枝长通常与序列之间的进化距离成正比。其他应用,如基因表达分析,根据其表达模式的相似性,对基因或实验条件进行层次聚类分析。同样地,树木也被许多蛋白质分类方法和对系统发育特征的分析所使用。因此,对树状数据结构的分析是生物信息学许多领域的共同任务,需要分析和可视化工具。在这方面,有一些生物信息学项目确实存在,有助于对等级树的探索。然而,它们中的大多数都是独立的应用程序,这些应用程序集中于可视化,偶尔还会执行特定的测试。一些著名的例子是TreeView[1],这是一种广泛使用的用于检测系统发育树的程序;集群Treeview[2],一种可视化微阵列聚类结果的应用;ATV[3],一个用于探索系统的java程序,它提供了一些编辑选项;MEGA[4],一个进化遗传学分析套件,包含一个内置的树查看器;还有许多其他最近的应用[5-8]。虽然这些程序对于管理单一的树非常有用,但是它们很难自动化或适应特定的需求。因此,当需要对数百或数千棵树进行分析时,独立程序的使用就变得非常严格,因为需要更高的自动化水平。在这种情况下,编程工具包代表了一个更充分的框架,因为它们提供了在较低层次处理数据的工具和方法。使用工具包,生物信息专家可以很容易地创建他们自己的分析管道和程序定制任务,而不是大量的数据集合[9]。有几种通用的生物信息学工具包,涵盖范围广泛的编程语言和范围,其中BioPerl[10]和BioPython[11]是最广泛开发的。这些工具箱与其他许多特性一起,允许与树数据结构进行一定程度的交互。但是,目前只支持基本操作。或者,PyCogent[12]和P4 http://bmnh.org/~pf/ P4 .html python工具包可以用来扩展这个功能,尽管它们主要集中在系统的重建上。R[13]是一个通用的统计框架,它包含几个用于对集群和系统树进行统计测试的包。不过,这些包的重点是执行特定的分析,而不是提供树处理和操作特性。最后,与大量独立的树查看器相比,编程工具包几乎没有提供任何图形化的呈现可能性。独立查看器和编程树呈现之间的中间选择是TreeDyn程序[14],它支持一些脚本选项,可以用来创建完全注释的树图像。
为了应对这些限制,我们在这里介绍了树探测(ETE)的环境,这是一个python编程工具包,用于分析、操作或可视化任何一种层次结构树。它扩展了其他工具包中的功能,并允许高级定制。ETE的绘图功能虽然不如独立编辑器那么详尽,但依赖于Python脚本语言,这使得将高级树分析和树可视化结合成一个程序成为可能。该工具包包括浏览和操作树拓扑的方法,提供对新罕布什尔州扩展(NHX)格式的支持,并允许高级操作,如节点注释、自动根、剪切和粘贴分区、树连接、节点搜索和分支距离相关操作。此外,ETE还实现了两个特定的模块,用于处理系统遗传和集群树。系统发育的扩展允许树与相应的多重序列对齐相关联,包括两种正学和paralogy预测算法,实现[15]中描述的重复测定方法,并提供对PhylomeDB数据库的访问[16]。类似地,集群树可以链接到它们的源数据,这使得树分区可以通过几种验证技术进行分析。此外,ETE实现了一个完全可编程的绘图引擎,可用于以PDF或PNG格式生成、动态、自定义树表示。这个绘图引擎与内置的扩展完全集成,从而为集群树和系统提供预先定义的可视化布局。还包括一个图形用户界面,它允许与树进行动态交互。
目前,ETE工具包用于各种项目,包括GEPAS[17]、Phylemon[18]和[15]。可以通过http://ete.cgenomics.org访问ETE包和文档。
实现
ETE完全是用Python[19]编写的,这是一种编程语言,为与其他语言和工具的集成提供了强大的支持,并且在生物信息学社区中流行起来[20]。ETE的理念是促进与其他工具包的集成,并提供一个可伸缩的程序架构。因此,通过合并自定义方法和属性,可以轻松地导入和扩展ETE树对象。ETE工具包的功能分为几个python模块,可以在方便的时候导入。表中显示了不同模块的特性。
树处理模块
ETE的主要模块允许使用两种最常见的格式阅读和渲染树:新罕布什尔州(NH)和新罕布什尔州(NHX)。此外,它还允许生成随机树或从头创建自定义树结构。为了增加与其他工具的兼容性,目前ETE支持一些newick格式标准,用于阅读和编写树(参阅ETE的扩展文档)。ETE的树在内部编码为一系列树节点实例,这些节点连接在父子关系之后。每个节点都被编码为一个独立的Python对象,它提供了许多方法来操作其连接(例如,添加、删除、删除或分离节点),并轻松浏览其拓扑(即树遍历和get终端、子节点、姐妹节点或后代节点)。因此,每个内部节点都被视为一个完整的子树,因此可以分别分析树的不同部分。ETE的树对象实现支持多分支,可以用来处理非常大的结构。作为参考,NCBI分类法newick树文件,有超过450.000个节点,可以在40秒内作为ETE树对象加载(Intel Xeon CPU 2.33 GHz)。
与其他工具包相比,ETE的一个主要优点是,节点可以包含除了拓扑和分支距离以外的其他信息。用户可以自由地将任何外部数据关联到不同的树节点,然后在随后的分析中使用这些数据,将它们集成为树映像的一部分,或者使用NHX格式保存它们。这个功能提供了创建完全注释的树的可能性。
最后,一套完整的操作可用于浏览、分析或修改树:例如)预处理和后序遍历策略,搜索匹配特定条件的节点或分区,中点和species-guided自动树生根,计算分支之间的距离,发现共同的祖先,随机树构建拓扑操作,树修剪,树连接,剪切和粘贴分区等。
树呈现和可视化
可视化模块提供了一个可编程绘图系统,将层次树结构呈现为dendrograms。这个扩展的核心是一个图像绘制算法,它可以由一组用户定义的规则控制。这些规则可以编写为小python函数,并用于动态地确定每个树节点的各个方面。例如,这允许根据其内部属性改变每个节点的各个方面。此外,呈现引擎不仅允许绘制树拓扑,还允许将外部图形信息合并到每个节点。因此,可以将外部图像、图形或自定义文本标签添加到节点中,作为普通树图像的一部分。树图模块的程序使用允许用户控制树的呈现方式以及不同节点显示的信息。图像可以呈现为PNG或PDF文件。
除了绘图引擎之外,树还可以使用内置的图形用户界面(GUI)来交互地可视化,这允许对树进行操纵。因此,每个树节点都有自己的显示方法,可以用来启动其特定拓扑的可视化。GUI与其他ETE的特性完全集成,并允许以图形方式与树节点及其属性进行交互。GUI和渲染引擎都使用最后的Qt4编程库来提高大型图像可视化的性能。Qt4适用于GNU/Linux、MacOS和Windows,它是作为自由软件发布的。使用这个模块的完整描述,以及例子,在高频教程在http://ete.cgenomics.org上可以找到。
系统扩展
系统进化树是大多数进化分析的结果。ETE的系统扩展实现了一种特殊类型的树实例,其重点是对进化树的分析。因此,树叶被认为是OTUs,而内部节点被认为是它们的祖先。通过应用不同的策略,ETE可以自动地将内部节点分配给特定的和重复的事件,从而建立OTUs[21]之间的同源关系和逻辑关系。有两个内置的方法可以预测物种的形成和复制事件:一种物种重叠算法,它独立于物种树[15]和经典的基因树[22]。这两种方法都返回了一列正学和对联的预测,并根据检测到的进化事件对原始树节点进行注释。另外,利用[15]中描述的拓扑扫描方法可以预测基因复制事件的节点。此外,分子系统可与相应的多序列比对相关联,从而在每棵树叶与序列之间建立联系。这允许将对齐的序列与树拓扑一起可视化,这有助于检测,例如,特定于linage的更改、特定的域组合或保守区域。由于序列被认为是树叶的附加属性,因此它们可以与树浏览功能结合起来,以进行程序分析,例如在一定级别的序列保护或组合中检测clades。这个扩展与绘图模块完全集成,包括一个预先定义的可视化布局,以探索树及其预测的进化事件和与节点相关的序列(图(图1).1)。还有其他特征,例如检查节点的单一性,对物种名称的自动检测,或者引导选择的外群。
PhylomeDB API
PhylomeDB [16]http://phylomedb.org是一个完整的基因库(phylomes)的数据库。它目前储存了超过42万棵树和12万多个序列的序列,利用高质量的系统遗传管道进行重建,其中包括最大似然或贝叶斯树推断,对齐修剪和进化模型测试。
ETE为访问phylomeDB提供了一个完整的应用程序用户界面(API)。在这个API中,用户可以连接到phylomeDB数据库,并搜索预先计算的基因系统,下载完整的phylomes,或者获得数据库提供的正学和对联预测。phylomeDB API与ETE软件完全集成,树可以被自动下载为系统树实例。
微阵列聚类树
微阵列表达数据通常被编码为矩阵,其中行代表不同条件下基因的表达谱(列)。不同的聚类分析被用于对特定条件或相反地根据其基因表达谱进行分组的基因进行分组。在这种情况下,基因通常由终端树节点表示,而内部节点代表了分组基因的表达谱之间的不同程度的相似性。
ETE的聚类扩展可用于导入微阵列聚类结果,并将其与相应的基因表达模式联系起来。因此,任何内部树节点(簇)的表达谱都可以计算为分组叶片的平均表达模式(通常代表基因)。例如,这允许在大型数据集中自动检测共同表达的基因,或者找到匹配特定表达式模式的节点。此外,还实现了几种聚类验证技术,以评估不同树分区的适合度。目前,集群间距离、聚类标准偏差、Dunn指数[23]和聚类剪影指数[24]都可以计算。与系统扩展类似,还提供了一些可视化布局,以显示集群及其相关配置文件。
这种扩展可以进一步用于处理与数值矩阵相关的任何其他类型的树,如系统发育特征或蛋白质分类结果。
讨论
目前大多数用于树分析的工具都是独立应用程序,主要用于对树进行可视化检查。然而,基因组学研究通常需要特定测试的设计,或者对大量数据的定制任务进行编程。树探索的环境提供了一个编程框架,以帮助实现特定的分析或可视化任务。ETE的库可以与其他python工具包一起导入,以扩展树处理操作的功能。此外,使用适当的python模块,ETE可以连接到其他环境,如R(使用Rpy[25])或BioPerl[26]。
迄今为止,ETE已被应用于用于重建和分析完整的系统的自动化系统管道[15,16,27]。特别地,ETE的使用使基于系统的方法在全基因组范围内预测骨科关系成为可能[15]。这种方法更接近于原始的骨科的定义,它被认为比经典的、基于两翼的骨科预测方法更准确[28]。此外,ETE还被用于实现一个功能推理管道,该管道可以对新测序的豌豆蚜虫基因组的4000个基因进行注释[29]。这是第一个这样一个可靠的功能注释管道已经被应用到一个新序列的基因组。此外,在系统发育扩展中,ETE允许利用系统发育树来检测和更新基因复制事件,这一方法克服了许多已知的仅基于序列比较的方法的缺陷。此外,ETE被用于在PhylomeDB[16]和Phylemon[18]等项目中提供系统发育树的交互图像[1],并帮助解释基因表达模式分析套件(GEPAS)中实现的微阵列聚类结果[17]。因此,ETE在许多不同的应用程序中已经被证明是一种有用的资源。通过使这个工具公开可用,我们期望其他项目能够从中受益,并且ETE通过实现其他方法和特性继续扩展。ETE正在不断开发中,新的模块和功能将在未来发布。我们还对包括来自开源社区的扩展的可能性持开放态度。
结论
ETE满足了对层次树数据结构进行大规模分析的需要。它已经被设计成一个高度可扩展和可编程的工具包,它已经被用于许多不同的基因组和后基因组项目。
全文共9865字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[12792],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。