标杆管理
在为基准测试做准备的过程中,我们汇编了最近两次审查中提到的17个第三方峰值呼叫者的名单[8,25]加上几个最近发布的包(请参阅其他文件1). 我们尝试在测试数据集上安装和运行每个峰值调用程序,并丢弃了七个可能无法安装、在测试运行期间崩溃或测试数据集中没有产生峰值的调用程序。这将峰值调用者的数量减少到11个,包括PeakRanger。
敏感性基准
为了评估11种算法的敏感性,我们使用两个独立的ChIP-seq数据集对其进行了评估,这些数据集的结合位点已经过qPCR验证[2,19]. 每个峰值调用者调用的峰值根据其置信度得分进行排序,然后与验证站点列表进行比较。根据验证场址的平均回收比例衡量,PeakRanger排名第一,所有这些场址的敏感性都非常相似(图2安培).
特异性基准
评估峰值召唤的特异性比评估灵敏度更困难,因为没有足够大小的真正阴性结合位点的黄金标准来自信地评估特异性。为了部分解决这个问题,我们使用以前发布的合成数据集进行了特异性分析[21]. 该数据集是从真实世界的对照(无抗体)实验中生成的,该实验不包含结合事件,然后用模拟的结合位点峰掺入。由于所有的峰都是作者生成的,所以所有模拟结合位点的位置都是已知的,因此可以定义假阳性峰。
图三将每个峰值呼叫者在固定的FDR率为0.01时的真阳性率与假阳性率进行比较,如图所示三在顶级组中,PeakRanger、PeakSeq、GPS和MACS具有几乎相同的良好特异性和敏感性。SPP与顶级集团关系密切。虽然SISSR具有更高的灵敏度,但它会遭受更高的假阳性。相比之下,尽管CisGenome只调用了几个假阳性峰值,但它恢复的峰值比顶级组少。F-Seq、Erange和FindPeaks在这项测试中的假阳性率都非常高。
空间精度基准
空间准确性衡量峰值调用者正确识别点状峰下生物结合位点的能力。为了评估空间准确性,我们再次使用了GABP和NSRF转录因子靶点的ChIP-seq数据集。为了确定最可能的生物结合位点,我们使用MAST[26]以及标准靶结合位点基序和相应的位置特异性评分矩阵(PSSM),以找到200 bp周围区域中的所有匹配项。
我们在数据集上运行每个峰值调用器,并测量结合位点基序和最近重叠峰值调用中心之间的距离。如图所示4,将峰值报告为单个bp坐标的算法比报告更大区域的算法要好得多。特别是,SPP、FindPeaks、GPS和QuEST并列第一,紧随其后的是PeakRanger。然而,排名靠前的峰值呼叫者之间的空间准确性差异很小。
峰间分辨率基准
该基准测量峰值呼叫者区分两个紧密间隔的峰值的能力。对于区域报告算法来说,这是一项特别困难的任务,因为它们往往会合并接近的峰值,从而可能会丢失生物上重要的二聚体。PeakRanger通过在平滑覆盖模型中识别局部最大值,来识别富集区域内的近空间顶点。
没有真实世界的黄金标准数据集用于评估峰间分辨率,因此我们将之前使用的半合成数据集用于特异性基准。我们创建了一系列衍生数据集,通过在每个合成结合位点附近生成一个峰来模拟紧密间隔的结合位点。在13个导出的数据集中,每个数据集的峰间距从200到500 bp不等。为了补偿此修改引入的覆盖范围更改,我们向控件添加了相同的读取次数。包括PeakRanger在内的一些峰值调用者提供了一种“分辨率模式”,旨在发现富集区域内的所有峰值。对于这个基准测试,我们将每个算法设置为使用分辨率模式或等效模式(如果可用),或使用默认设置(如果不可用)。
如图所示5A级当峰值间隔小于250bp时,没有峰值调用者能够解析此数据集中的近间隔峰值。在250-350 bp的范围内,FindPeaks和PeakRanger在敏感性方面领先,但FindPeaks产生了过多的假阳性,如图所示5亿。其他算法在此范围内的灵敏度较低,一些算法的假阳性率也很高。MACS在200 bp、400 bp和500 bp数据集上崩溃,因此这些数据点丢失。
可用性设计和性能调整
已发布的算法有时在研究原型阶段发布,不具备在高容量、高可用性环境中工作所需的软件工程。理想情况下,应解决许多软件工程问题(表1). 首先,软件应该尽可能快。我们在大型项目(如modENCODE项目)方面的经验[27]支持更快的峰值调用者将显著减少分析和解释ChIP-seq数据的时间这一概念,因为所有下游分析都依赖于准确的峰值调用,并且通常存在一个循环,在该循环中,下游分析的结果使用不同的参数集通知其他轮的峰值调用。其次,该软件应支持多种通用数据格式。转换文件格式需要额外的时间和计算资源,并且引入了一个可能会导致编程错误的步骤。第三,软件应该易于使用,并且需要较少的用户计算专业知识。最后,考虑到下一代测序能力的快速增长,该软件应该能够处理非常大的ChIP-seq数据集。
我们用编译的C++编程语言实现了PeakRanger,以优化性能。通过将所有工作数据保存在内存中而不是临时文件中,我们避免了磁盘I/O带来的性能损失;这会以更大的内存占用量换取更高的执行速度。为了利用现代多核处理器,我们还将PeakRanger设计为使用并行处理。
为了对照其他峰值调用者对PeakRanger的性能进行基准测试,我们记录了它们处理典型数据集所需的运行时间。如表所示2,PeakRanger的速度是测试的第二快峰值调用程序的两倍多,同时消耗了可接受的内存量。
为了支持多种输入数据格式,我们采用了SPP和MACS共享的设计,将数据加载与数据处理分离开来。我们为特定的数据格式编写了单独的模块,并让用户选择他们需要的模块。PeakRanger目前支持Bowtie[28]、Eland、SAM[29]和BAM[29]格式。可以通过编写其他导入模块来添加其他文件格式。PeakRanger还能够以适合数据可视化的格式导出其结果,包括UCSC基因组浏览器“摆动”格式的压缩和未压缩版本。
为了支持多个物种,峰值调用包需要基本的基因组构建信息,例如染色体的名称和大小。为了用户的方便,PeakRanger可以直接从输入文件中获取此信息,也可以提供预先计算的基因组表。虽然前一种模式很方便,但它确实给执行时间增加了少量开销。
虽然很难量化,但我们注意到在基准测试期间安装和配置各种峰值调用程序包的难度有很大差异。例如,一些包要求用户更改源代码,以更改硬编码文件路径和运行时参数的位置。PeakRanger将其所有运行时配置参数作为命令行选项提供,还为常见分析任务提供了一组合理的预设。例如,PeakRanger提供了“分辨率模式”和“区域模式”,这两种模式一方面适用于分析转录因子结合位点和其他点状数据,另一方面也适用于组蛋白修饰等广泛区域。所有运行时参数也可以从外部配置文件中读取,允许参数集由源代码控制管理、版本控制和在实验室之间共享。
PeakRanger不提供CisGenome、USeq和Sole-Search提供的图形用户界面(GUI)[10]. 虽然GUI对于普通用户来说很方便,但它们很难将软件集成到高通量实验室所需的自动工作流中,这些实验室是PeakRanger的目标用户。
支持MapReduce
随着测序行业快速增长的能力,产生更多更长的测序读取[30]峰值呼叫算法面临着指数级增长的计算资源需求。云计算[31]为对计算资源具有高度可变需求的组提供了一个经济高效的解决方案。
当前的云计算基础设施提供了一种称为MapReduce的高度可扩展的并行计算模型[32]它最初由谷歌设计用于处理超大容量数据集。因此,我们还在Hadoop库的基础上实现了PeakRanger的MapReduce版本[33],MapReduce的免费开源实现。
PeakRanger的Hadoop版本支持通过染色体分割作业,以利用ChIP-seq数据集的染色体级别独立性(CLI)。其他划分基因组的方法也是可能的,但需要用户进行额外的准备。
在Hadoop框架中,PeakRanger作业可以表示为一系列“map-then-reduce”子作业(图6). PeakRanger首先启动一系列映射器,将输入数据集映射到一组键。然后,Hadoop分区器将密钥分配给一组reducer。每个单独的reducer都根据它接收到的键来获取数据并处理这些数据。在CLI案例中,“map-then-reduce”变为“split-by-chromosome-then-call-peaks”,其中染色体被用作键。也就是说,我们将数据加载/预处理委托给映射器,将峰值调用委托给还原器。映射器完成对染色体上的数据的拆分后,分区器根据可用的还原器和还原器的数量分配作业,然后执行实际的峰值调用。
为了评估Hadoop-PeakRanger的性能,我们进行了两个基准测试:1)使用固定数量的节点和不断增加的数据集进行测试;2) 使用越来越多的节点和固定大小的数据集进行测试。
图第7章演示了在数据集大小不断增加的固定数量的节点上,与常规单处理器版本相比,PeakRanger的Hadoop版本的执行时间显著缩短,并且增长速度较慢。例如,云版本在不到5分钟的时间内处理了1.92亿次读取的14 Gb数据集,比原来的PeakRanger快了10倍多。
在第二个测试中,我们测试了运行时间如何随着节点数量的增加而变化(图7亿). 正如预期的那样,运行时会迅速减少,直到节点数等于染色体数(25),之后再添加额外的节点不会带来更多好处。未来版本的PeakRanger将提供另一种分裂基因组的方法,以克服这种并行化瓶颈。
我们计划在AmazonEC2和其他云服务提供商中提供PeakRanger的常规版本和Hadoop版本作为公共机器映像,以方便研究社区使用。
PeakRanger的实际使用
在本节中,我们提供了两个在生物研究环境中使用PeakRanger的示例。
宽富集区特征
对组蛋白修饰的研究通常是确定富含感兴趣修饰的宽区域,然后将这些宽区域与其他生物注释(如基因)关联起来。尽管这类分析很简单,但它忽略了富集剖面的详细内部结构,其中可能包含与样品内改性效率和/或异质性的数量差异有关的峰谷。
最近有几篇出版物报道了基于组蛋白修饰富集区内部结构的生物学显著现象[34–36]. 因此,峰值调用者最好能够检索这两个广泛的富集区域,同时确定这些区域内的详细峰值。在这里,我们使用PeakRanger演示了这样一个示例。
He等人最近发表的论文[34]作者发现,暴露于5-α-二氢睾酮(DHT)后,中央核小体从雄激素受体(AR)结合位点亚群中耗尽,留下一对侧翼核小体。如果事先不知道区域结构,仅从读取覆盖信号就很难识别成对核小体,He等人建立了额外的模型来识别和量化成对结合位点。
我们将PeakRanger直接应用于He数据集,使用的配置允许它找到广泛的富集区域和区域内的顶点。然后,我们比较了DHT暴露前后每个富集区的峰数,以直接确定耗尽中央核小体的AR结合位点的亚群。为了实现这一目标,我们配置了PeakRanger以检测具有可比高度的顶点。如图所示8安,剖面图与原始出版物中的报告极为相似,平均双峰间距为360bp,接近出版物估计的370bp。作为比较,我们使用QuEST重复了相同的过程。由此得到的估计峰值距离为240 bp,剖面图偏离了原始曲线(图8B类). 对于其他峰值呼叫者,由于没有关于富集区峰值数量的信息,我们无法进行相同的分析。
处理modENCODE蠕虫数据集
ModENCODE是一个多中心协作组织,用于编目秀丽线虫和黑腹线虫的功能元素[27,37],并且包括100多个ChIP-seq数据集。modENCODE使用PeakRanger作为29个ChIP-seq实验的标准ChIP-seq峰值调用者,涉及23个不同发育阶段的秀丽线虫转录因子[37]. PeakRanger能够在一个8G ram和四核CPU的常规工作站上运行不到2小时的时间内处理整个数据集。这说明了PeakRanger集成到高吞吐量环境中的能力。超高透过率使不同实验室之间能够进行良好的协作分析。一些内部分析表明,PeakRanger产生的峰质量很高(数据未显示)。