跳到主要内容
访问密钥 NCBI主页 MyNCBI主页 主要内容 主导航
BMC生物信息学。2005; 6: 269.
2005年11月9日在线发布。 数字对象标识:10.1186/1471-2105-6-269
预防性维修识别码:PMC1310606型
采购管理信息:16280084

ErmineJ:基因表达数据集的功能分析工具

摘要

背景

微阵列研究的结果通常在生物驱动的基因组(如通路或基因本体类别)的背景下进行分析。这种分析最常见的方法是使用超几何分布(或相关技术)来寻找在基因间分析的基础上被选为差异表达或其他感兴趣的基因中的组的“过度表示”。然而,这种方法有一些局限性,而且实现替代方案的生物学家友好工具还没有报道。

结果

我们介绍了ErmineJ,这是一个多平台用户友好的独立软件工具,用于在微阵列基因表达数据的背景下分析功能相关的基因集。ErmineJ为基因集分析实现了多种算法,包括基于过度表示和重采样的方法,这些方法侧重于基因得分或基因表达谱的相关性。除了图形用户界面之外,ErmineJ还有一个命令行界面和一个应用程序编程界面,可用于自动化分析。图形用户界面包括用于创建和修改基因集的工具,将基因本体可视化为表或树,以及可视化基因表达数据。ErmineJ附带完整的用户手册,是根据Gnu公共许可证授权的开源软件。

结论

多种分析算法的可用性,以及丰富的功能集和简单的图形界面,应该会使ErmineJ成为生物学家信息学工具箱的有用补充。ErmineJ可从http://microray.cu.genome.org.

背景

许多(如果不是全部)基因表达微阵列用户遇到的一个困难是如何理解复杂的结果。在分析了数据集中的每个基因后,实验者往往只能在没有任何帮助的情况下总结结果。实验者通常会在分子途径或其他功能相关的基因分组层面提出问题。虽然数据集的“特别”手动注释是一种常见的方法,但使用计算和统计方法分析基因组有许多优点。

执行此分析的最常见方法是询问特定基因本体(GO)[1]术语在通过倍数变化或统计学驱动的方法(如t检验)选择的一组基因中“过度代表”。这很容易通过使用超几何分布的特性(通常称为两类Fisher精确检验)或其二项式近似来实现。在我们的工作中,这些方法通常被称为“过度代表性分析”或ORA。此外,由于GO只是组织基因的一种方式,我们将这些方法的总体目标称为“基因集分析”,其中基因集是非数据本身衍生的任何基因分组,通常基于生物学动机的标准。

执行ORA的需要导致了各种工具的出现。基因本体联盟提供了许多此类工具的列表[2],最近对其中许多进行了审查[]. 然而,据我们所知,这些工具都实现了ORA方法;除Perl脚本Catmap外,其他方法或算法不可用[4]. 因此,这些工具主要通过用户界面功能、易用性、支持的数据类型和速度来区分自己[]. 调查的大多数工具[]据报道,有一个或多个显著的局限性,包括性能缓慢、无法分析除直接注释外的其他基因注释(也就是说,不考虑GO层次结构的其他级别)、需要web访问才能使用、难以安装(限制生物学家使用它们)、,或缺乏可视化GO层次结构的能力[].

本文描述了ermineJ,它是一个独立的工具,实现了[5]和[4]除了ORA之外,它还具有丰富的功能集,并且不具备上述限制。其中一种提供的分析方法是对ORA分析的补充,我们现在称之为基因集重采样或GSR(Pavlidis等人(2002)中的“实验”分数)。在GSR中,逐基因评分(例如,t检验p值)没有阈值。相反,对于每个基因集,计算一个总得分,例如该类别中基因的p值的几何平均值,以及通过数据随机抽样确定的该得分的显著性。我们最近提出了一些证据,证明在某些情况下,GSR可以提供比ORA更好的结果[6].

ErmineJ也有基于排名的基因分析方法(接收器操作员特征或ROC)[4]. ROC可以被认为是ORA的一个版本,其中同时考虑了所有可能的阈值。与GSR一样,ROC方法使用非阈值基因得分,但只考虑其排名,这可能被认为比使用原始基因得分更稳健。最后,ErmineJ提供了基于基因表达谱相关性的分析,即基因组相关性分析(GCA)[5]. GCA可以作为ORA的替代方法,用于确定特定功能类别中的基因是否“聚集在一起”。

第一版ermineJ于2003年推出。最近,我们彻底更新了用户界面并更新了功能集,分别于2004年10月和2005年6月发布了ermineJ 2.0和2.1。

实施

ErmineJ完全用Java编程语言实现[7]. 它使用JavaSwing库创建一个可以在许多不同平台上运行的图形用户界面。在体系结构上,已经努力将分析和算法关注点从用户表示关注点中分离出来。除了作为设计最佳实践之外,该体系结构还受到支持命令行接口以及方法的应用程序编程接口的需求的驱动。ermineJ的结构还具有相当容易的扩展性,因此可以随着需求的变化向软件中添加新的算法。前面描述了ermineJ中的分析算法[4,5].

除了使用Java SDK之外,ermineJ还依赖于许多免费的第三方库,最显著的是Colt库[8]. Colt是一个高性能数值计算库,它包括许多线性代数和统计方法的实现,以及我们在软件中严重依赖的有用数据结构。ermineJ使用的其他库包括各种Jakarta Commons库[9],以及Xerces XML解析引擎[10],用于解析基因本体XML描述。许多低级数值和实用程序例程(例如,用于文件解析和字符串操作)都是在一个广泛的单元测试套件中测试的。

结果和讨论

输入

ermineJ的所有接口都使用相同的基本输入。第一个是XML格式的基因本体描述,从GO联盟网站获得[11]. 第二个是微阵列平台的描述(“阵列注释文件”,其中包含tab分隔的文本),它将探针标识符与基因本体术语相关联,并将每个探针与一个基因相关联(在统计分析中用于解释重复的基因,如下所述)以及对在结果的上下文中查看有用的描述。第三个必需的输入是用户自己的数据。对于ORA、GSR和ROC应用程序,这采用基因得分列表的形式,每个探针在阵列设计上设置一个。或者(对于表达式配置文件相关性分析),输入可以是表达式配置文件矩阵,可以用作聚类工具的输入。基因得分可以是p值或其他得分,如fold-change。ErmineJ有意在很大程度上不知道基因分数的含义,并且专注于分数的分布特性。

我们为不同平台维护了30个不同的鼠标、人类和老鼠数组注释文件,以及RefSeq的通用文件[12]可用于为其他平台构建注释文件的基因(可从我们的网站获得[13]). 本地注释文件格式非常简单,使用少量的生物信息学技能可以轻松构建新文件。ErmineJ还可以阅读制造商网站上提供的Affymetrix“CSV”(逗号分隔值)注释文件。我们很乐意接受添加对其他阵列的支持的请求。读入注释文件时,软件会自动将每个探针与每个直接注释术语的所有父术语相关联。例如,所有标有“细胞大小调节”一词的基因也与更高级的术语“细胞形态发生”和“形态发生”相关。此功能仅由以下审阅的一些工具支持[].

为了运行软件,用户必须设置许多参数和作出决定。分析方法的选择是最明显的,每个方法都有一些用户可以选择更改的其他设置。例如,对于ORA分析,必须定义阈值分数。这与大多数ORA软件包不同,后者将“感兴趣的基因”列表作为输入;相反,ermineJ将实验的所有基因得分作为输入。这让ermineJ避免了选择正确的“空”基因集的问题[]:它严格由实验中分析的基因定义,但不符合用户定义的得分阈值。

对于GSR,用于计算基因集得分的方法是一个关键参数。目前支持的两个选项是平均值和中位数。在分析过程中,GSR使用选定的方法计算每个重采样或实际基因集的基因得分摘要,该总得分用于表示基因集。选择中位数往往会产生稍微保守的结果,因为分数很高的单个基因没有平均值计算中的权重大。

一些设置用于多种方法。例如,当一个基因在数据集中被多次表示时,必须决定如何处理这些“重复”(可能不是重复)就其本身而言但代表不同的抄本)。支持的选项是使用复制品中的“最佳”分数来将其表示为一个组;使用平均值;或将其视为单独的实体。使用“最佳”选项有点反保守,但当大多数“复制品”实际上是在分析不同的生物实体时,这是合理的。相比之下,通常不建议完全单独处理重复,因为在真实重复的情况下,这可能会导致假阳性结果,因为基因集被同一高分基因的多个拷贝“掺杂”。由于这个原因,最后一个选项在GUI中不可用,尽管它可以从其他界面访问。另一个重要的设置是要分析的基因集大小的范围。非常小的基因集不太可能提供非常丰富的信息,因为分析的目标是分组研究基因,而大的基因集可能过于非特异性,无法提供有用的信息。此外,由于多重测试成本,分析过多的基因集会降低分析的能力。实际上,我们经常使用5-100或5-200的范围。

除了基因本体定义的预定义基因集外,用户还可以自由输入自己的基因集。这些是在简单的文本文件中定义的,这些文件放在ermineJ在启动时检查的目录中。这些文本文件可以“离线”或在ermineJ GUI中创建。此外,用户可以在ermineJ中修改基因集。此功能可用于纠正基因本体注释中的错误或遗漏,但必须小心避免在结果中引入偏见。

分析的类型

基于基因核的方法

ORA、GSR和ROC方法密切相关,因为它们基于逐个基因的得分,目的是找到在高得分基因(通常可能是“差异表达基因”)中有某种意义上“丰富”的基因集。ORA有时用于分析通过聚类而不是连续得分选择的基因。在这种情况下,GSR和ROC是不合适的。然而,相关方法是专门为解决这种情况而设计的。GSR和ROC的优点是不需要阈值来将基因分为“选择的”和“非选择的”基因。ORA阈值的选择会对获得的结果产生重大影响,因为“选定的基因”会发生变化[4].

相关性分析

基因组相关分析(GCA)基于基因集中基因表达谱的相似性:大致来说,是指它们“聚集在一起”的程度。因此,我们建议使用GCA来替代ORA来分析集群。需要注意的是,ORA在集群中的典型应用与ermineJ相关分析之间存在一些差异。GCA是以群体为中心的,而不是以集群为中心的。因此,我们问的是成员之间的相关性是否高于偶然预期,而不是给定的一组相关基因是否丰富了组中的基因;GCA不涉及聚类。这不是一个微不足道的区别,因为虽然所有成员之间具有一致且高度相关性的基因组得分最高,但具有两个或多个“子簇”的组也可以获得高分。在GCA的当前实施中,始终使用相关性的绝对值,这是允许的。在未来的版本中,我们可能会将其作为一个用户可设置的选项,并实现除当前皮尔逊相关性以外的其他可能的相关性指标。

在所有方法中,对于分析的每个基因集,ermineJ计算一个分数,并基于该分数和基因集大小,计算一个代表该基因集相对于原假设的“显著性”的p值。原始分数和零假设的定义取决于使用的方法。请注意,原始分数用途有限,因为在缺乏有关基因集大小的信息的情况下无法对其进行评估。然而,它们可以为用户提供有用的结果强度指示,而不仅仅是统计意义。

对于ORA,无效假设是基因集中的基因在“选定”基因和“非选定”基因之间随机分布。ErmineJ报告的原始分数是集合中超过基因选择阈值的基因数。对于GSR,无效假设是平均(或中位数)基因得分(形成基因集得分;对于p值,使用负对数转换值)是从可能的基因集平均(或中值)基因得分的全球(数据范围)分布中得出的,这是通过重采样确定的[5]. 对于ROC分析,零假设是基因集中的基因在排名中随机分布;p值是根据ROC等于Wilcoxon秩和检验这一事实来计算的[4]. 原始基因集得分只是接收器-操作员特征曲线下的面积[14],范围从0.5(随机排名)到1.0(基因集中的所有基因都位于排名的顶部)。最后,对于相关性分析,零假设是,基因集中图谱的平均成对相关性是从基因集相关性得分的全局分布中得出的,这是通过重新采样确定的[5]. 原始分数是集合中基因的成对相关性的平均绝对值(探针与自身或同一基因的其他探针的比较总是被忽略)。

ErmineJ包括三种多重测试校正方法的实现(尽管目前只有其中一种,即Benjamini-Hochberg错误发现率(FDR))[15],通过GUI可用)。命令行提供的其他选项包括Bonferroni校正和基于重采样的系列错误率校正[16]. FDR在GUI中被用作快速合理的指南,以指导哪些基因集可能最受关注。

ermineJ GUI

ermineJ的大多数用户将通过其图形界面访问它。ermineJ的GUI设计为易于使用,并提供“向导”来指导用户完成常见任务,如运行分析。例如,在会话之间会记住用户在软件操作期间所做的许多设置,以便于重复分析相同的数据文件,并保持用户首选的窗口大小。我们提供了一份完整的手册,可以通过在线帮助功能、我们网站上的网页或便携式文档格式(PDF)访问。

ermineJ图形用户界面的一些方面如图所示图1,1,,2,2,,3.软件的主面板可以被视为基因集表(图(图1A)1安培)或在分层(树)视图中(图(图1B)。1B年). 这些视图是链接的,因此其中一个视图中的更改会反映在另一个视图上。为了方便这些显示的导航,可以通过基因集的名称或它们包含的基因的名称来搜索基因集。用户定义的基因集以对比色显示。图中未显示用户选择用于会话的基因注释文件的初始启动屏幕。

保存图片、插图等的外部文件。对象名为1471-2105-6-269-1.jpg

答:执行了几次分析后,ErmineJ的主面板。低FDR水平下选择的基因集用颜色表示。B类:ErmineJ的树视图面板,说明了浏览GO层次结构中的基因集的能力。每个节点上的图标都有特定的含义。例如,黄色的“靶心”图标表示以0.05或更低的FDR选择的基因集。紫色菱形表示具有“重要”子节点的节点。

保存图片、插图等的外部文件。对象名为1471-2105-6-269-2.jpg

基因集详细信息视图。顶部的控件允许调整热图的大小和对比度。基因得分(在本例中为p值)显示在第二个文本列中。灰色和蓝色图表仅用于使用p值的实验,显示了基因集中p值的预期(灰色)和实际(蓝色)分布。该显示被提供作为对结果的评估的附加辅助。最后两列提供每个基因的信息。超链接的目标可由用户配置。

保存图片、插图等的外部文件。对象名为1471-2105-6-269-3.jpg

ErmineJ Wizards的屏幕示例。答:分析向导。这说明了设置要分析的基因集大小范围的选项,以及处理基因“重复”的方法。有关后者的详细信息,请参阅文本。B类:基因集修改向导。在此屏幕中,用户选择要从基因集中删除的基因。平台上可用的所有探针列表位于左侧面板中。“查找”功能简化了基因和探针的位置。

双击主面板中的基因集会打开一个新窗口,其中显示基因集中的基因,以及“热图”视图中的表达式配置文件(如果用户提供了配置文件数据;图图2)。2). 热图的外观可以通过菜单和工具栏控件进行配置。可以使用其他菜单选项将表中显示的数据以及矩阵图像保存到磁盘。用户可以配置指向外部网站的超链接,再次通过菜单选项指向他们选择的网站。即使用户没有进行任何分析,所有这些功能都是可用的,因此ErmineJ可以用作“基因集浏览器”和分析。

GUI的一个重要功能是能够快速定义和编辑基因集,这是在一个“向导”中完成的,该向导将引导用户完成一步一步的过程。或者,用户可以简单地使用从其他来源获得的文件填充基因集目录,例如使用Python脚本批量创建的文件或从其他用户获得的文件。据我们所知[]使用户能够定义或修改类别。ErmineJ还允许用户选择分析中要使用的GO方面(生物过程等)。

ermineJ的GUI版本可以安装在用户的计算机上,也可以通过Java WebStart运行。后一个选项只需单击用户web浏览器中的链接,并确保用户拥有最新版本的软件。使用WebStart的缺点是用户必须连接到internet才能使用该软件。使用本地安装,无需互联网连接。

运行分析

使用ErmineJ GUI运行分析需要使用“向导”来设置参数(图(图3)。). 要求用户选择分析方法,选择要分析的数据文件,选择要包含在分析中的任何用户定义的基因集,并设置特定分析所需的各种参数。所有设置都通过“工具提示”和手册进行记录。

启动分析后,用户会通过状态栏了解其进度。分析可以随时取消。完成后,结果将添加到表视图和树视图中(图(图1)。1). 可以在表格视图中同时显示多个结果,从而可以轻松比较不同的运行。树状视图一次只能显示单个分析结果集,但提供了一个下拉菜单,以便在要显示的结果集中进行选择。在树视图和表格视图中,高得分(即显著)基因集以彩色突出显示。树视图为每个节点使用一个简单的图标系统来指示某个重要节点是否包含在给定的更高级别节点中。最后,分析结果可以保存到以制表符分隔的文件中,以供其他软件使用,或者稍后由ermineJ重新加载。

其他接口

除了GUI之外,ermineJ还提供了命令行界面(CLI)和简单的应用程序编程接口(API)。CLI公开了一些在GUI中不可用的ermineJ功能,例如用于多个测试更正的不同方法。CLI适用于编写运行ermineJ的脚本。例如,可以使用一个简单的Perl脚本自动运行具有不同设置或不同数据集的ermineJ。相反,引入API是为了让程序员将ermineJ中可用的分析包含在他们自己的软件中。与命令行版本相比,API目前对软件功能的访问更为有限,但将在未来版本中进行扩展。

性能

我们使用HG-U133_Plus_2 Affymetrix阵列设计测试了ermineJ的性能。这是一种特别大的阵列设计,有超过54000个探针集,在性能方面表现出某种最坏的情况。在我们当前的注释集中,4844个不同的GO类别(基因集)可用于此阵列设计中的分析。我们将分析局限于5到100个基因的基因集,剩下约2700个基因集。以下报告的时间用于分析1.7 GHz Pentium笔记本电脑上这2700个基因集的54000多个完整探针集。

有了这个阵列,ermineJ有一个初始启动阶段,持续15到20秒,其中大部分时间被读取和处理基因注释文件进行分析所花费的时间消耗掉。启动完成后的分析时间取决于使用的方法。对于ORA,完整的分析在8秒内完成(平均运行3次;时间是软件内计时的挂钟秒数)。虽然很难直接将我们的基准与之前发布的基准进行比较,因为没有报告所分析的基因集数量和“空”基因集的大小,而且报告的时间在某些情况下可能包括初始启动时间[],在测试的最大数据集上报告的最快方法在10秒内完成了ORA分析。这表明,ErmineJ至少与之前报告的最快工具相比具有竞争力,而且速度可能更快。

如果进行完整的重采样,GSR分析需要大约370秒(在我们的测试中,每个基因集大小需要100000次重采样试验)。然而,ermineJ实现了一种近似,其中有限的重采样用于估计正态分布的参数。此正常值用于计算每个基因集的p值。它还利用了这样一个优点:尤其是对于较大的类大小,对于相似的类大小来说,重采样分布的形状非常相似,因此不需要计算所有重采样分布。在此模式下,分析大约需要80秒。ROC分析花费了大约100秒,该分析不涉及重采样。相关分析是计算量最大的重采样方法;即使启用了近似,目前在测试数据集(包含12个微阵列)上运行也需要大约400秒。这是因为与使用预先计算的基因得分(例如p值)的方法相比,计算相关性需要大量的计算。

ErmineJ具有相当大的内存密集性,因为它在内存中保存着描述注释的复杂数据结构,以及关于数千个基因集和数万个基因结果的微阵列数据和信息。对于大型HG-U133_Plus_2设计,启动后ermineJ占用大约85 Mb的RAM(在Windows下使用Java堆分析器确定)。运行相关性分析后,该值增长到105 Mb,反映了完整表达式配置文件集和结果的加载。因此,我们建议在RAM至少为256 Mb的机器上运行ermineJ。

未来计划

在本文中,ermineJ的当前版本是2.1.6。该软件计划的新功能包括扩展API,允许更灵活地创建用户定义的基因集,包括支持其他命名,如植物本体[17]. 我们还计划为更多平台和生物体提供注释文件。

我们对包括其他基于重采样的方法(如GSEA)的可能性感兴趣[18]或Catmap中实现的类似重采样方法[4]在ermineJ中。考虑这些方法的主要原因是,他们通过对样本重新采样来检查基因得分的分布,这比仅仅对基因重新采样更准确。这是因为基因得分分析中的零假设是基因排序中基因随机分布的一些变化。对于包含高度相关基因的基因集(如核糖体蛋白基因),这种假设可能会遭到严重违反;这些基因往往具有相关的排名,在某些情况下(特别是当基因p值分布接近均匀时),可能会出现假阳性[4]. ORA、GSR和ROC方法都容易受到这个问题的影响,尽管我们强调,这只是对显示出与实验设计无关的高相关性的基因集来说的一个严重问题。

提供GSEA或Catmap的通用实现是一项挑战,生物学家的计算能力有限,很容易访问这些实现。这些方法要求用户可以提供数百(如果不是数千)个重采样数据集的基因得分[4]对于ermineJ的目标用户群来说,这是一项很难完成的任务,或者软件难以计算基因得分。由于每个实验设计可能有不同的机制来计算基因得分(折叠式变化、t检验、ANVOA、Cox回归等),因此如果不包括完整的统计分析包,就很难提供一个完全灵活的工具。我们正在考虑的一个可行的解决方案是涵盖最常见的情况(例如,t检验和单向方差分析)。

结论

ErmineJ是一个快速、功能齐全、用户友好的多平台开源应用程序,用于分析基因集。它实现了执行分析的多种算法,并允许轻松修改和创建新的基因集。这些功能为用户测试不同的方法和参数提供了相当大的灵活性。目前对其可用性的最大限制可能是非Affymetrix阵列设计的基因注释文件的可用性,我们很少遇到这种情况。希望为其平台开发注释文件的用户应联系我们寻求帮助。

可用性和要求

项目名称:ErmineJ公司

项目主页:http://microray.cu-genome.org/ermineJ/

操作系统:独立于平台

编程语言:Java语言

其他要求:Java 1.4或更高版本;建议使用256 Mb RAM。

许可证:用于帮助程序库的GNU GPL和LPGL。

非学者使用的任何限制:

缩写词表

ORA:过度表达分析

GSR:基因评分重采样

ROC:接收器操作员特征

GCA:基因组相关性分析

GSEA:基因集富集分析

FDR:错误发现率

GO:基因本体

GUI:图形用户界面

API:应用程序编程接口

CLI:命令行界面

作者的贡献

PP是该软件的项目负责人和首席架构师,并为源代码做出了贡献。HKL、WB和KK都对源代码做出了贡献。

致谢

我们感谢Shahmil Merchant和Edward Chen对早期版本ErmineJ的贡献,感谢William Noble对方法开发的支持,感谢Neil Segal提供屏幕截图中使用的微阵列数据。我们还感谢测试人员和用户,他们提供了错误报告和改进建议。

工具书类


文章来自BMC生物信息学由以下人员提供BMC公司