天天看点

基因数据处理的Pipeline框架

应用上云,怎能没有容器!关注微信公众号容器魔方关注我

基因数据处理科学中的分析工具

昨天我从学校回家经过高速公路时,Sapugaskanda公司的炼油厂引起了我的注意,看到炼油厂的塔楼在运行时会向天空发出巨大的火焰。炼油厂的这番景象让我想起了许多制造业和运输业用于改造或者运输材料的管道,管道的最后端将会得到最终的货物。一个常见的例子是用于长途运输的输油管道,它会在中间环节进行精炼油处理,并在最后生成各种石油产品。

同样的,基因数据也可以通过各种软件处理Pipeline方式进行传递,根据特定目的进行各种数据处理和数据分析,并最终生成所需要的可视化结果和对应的解释。

基因组学中的Pipeline

随着第二测序技术(NGS)的进步,海量的基因组数据正以前所未有的速度生成。NGS技术包括序列比对和基因组注释等步骤,这些步骤由非常多的变量作为输入,并且是计算密集型的。由于在进行基因组分析时,所面临的这些大量数据处理问题,使得目前有一些比较有效的解决方案,用来加快处理和分析速度。

Pipeline模型就是科学家用于处理各种分析数据的一种解决方案。在本文中,我将向您介绍Pipeline工具以及它们如何随着时间的推移逐步发展,并形成目前基于云的Pipeline框架以及未来趋势。

什么是Pipeline流程

根据维基百科

一个Pipeline是一组串联方式的数据处理过程,其中一个步骤的输出是下一个步骤的输入。Pipeline的步骤通常以并行或时间切片的方式执行; 在这种情况下,通常在步骤之间插入一些用于缓冲的共享存储。

可以将多个分析工具连接在一起,以逐步执行的方式分析基因组数据。这就是基因数据处理Pipeline开始运作的地方。Pipeline管道是由不同工具组成的步骤来处理数据的,其中一步产生的输出会作为输入传递到下一步。

Pipeline脚本

Pipeline处理流程一般会使用称为“Pipeline脚本”的代码来实现,这种脚本包含用于处理数据和跟踪所有步骤中的信息,这样的各种指令。在大多数Pipeline实现的基本形式中,都可以看到用Unix shell或其他脚本语言(如Perl和Python)编写的脚本。用户可以根据应用场景自定义这些脚本,并整合所需的各类分析工具。

然而随着Pipeline流程越来越复杂,管理这些脚本就变得困难了。需要精确地控制各个步骤之间的依赖关系,并且稍稍地手动更新这些依赖关系就可能导致错误的结果。此外,如果Pipeline流程在执行过程中失败,则很难从停止的位置恢复。面对不同的项目中的各种场景及大量的样本数量,手动的执行Pipeline流程中的每个步骤是非常不方便且容易出错的。

Pipeline框架

为了自动化地创建和控制脚本执行Pipeline流程,于是有了Pipeline框架。这种系统减轻了科学家手动设置Pipeline流程的负担,并可以在不同的项目中分别运行Pipeline流程来处理TB级的数据。Pipeline框架还引入了新功能,比如可重现的执行过程,版本控制和报告工具。

1. 基于类的框架

基于类的框架由现有的已有代码库组成,不同的代码库提供不同的功能。这类框架提供了抽象类的方式来实现Pipeline流程。Genome Analysis Toolkit(GATK)就是由美国BROAD研究所开发的基于类的Pipeline框架。

2. 基于服务器的工作台

这些工作台由预先配置好的各种工具组成,科学家们可以控制这些工具来创建Pipeline流程、并执行数据分析动作。通常,这些框架会提供一个图形化的用户界面,各种工具可以直接拖拽组合生成Pipeline流程。最流行的服务器基础工作台比如Taverna和Galaxy。

3. 基于云的平台

云计算的进步,为可大规模扩展且极具吸引力的大数据分析能力铺平了道路。目前各种基于云计算的Pipeline流程管理平台纷纷涌现,利用云计算的可扩展性来提供高性能,快捷的流水线创建、执行,及更好的用户体验。它们还提供API接口使得可以自动化地分析大批量的数据,而不是需要使用Web界面来点击将数据提供给工具处理。

当前一些商业化的基于云的平台包括:DNAnexus, Illumina’s BaseSpace 及 SevenBridges

注:华为云基于容器的测序云服务已开放内测

想优先吃鸡小伙伴请在下方评论或后台回复

未来的趋势

许多公司正致力于打造支持在不同框架中运行的基因数据分析工具,并使之标准化。此外,使用像Docker容器这样的技术,可以将Pipeline处理工具容器化,使得Pipeline框架可以处理各种复杂依赖关系的基因数据处理流程。

Pipeline框架的未来发展可以极大地影响基因组数据,药物数据处理和药物测试的分析过程,同时还可以提高最终结果的质量。这可以带来更好的人类生活,并帮助整个世界。

原文链接:

https://medium.com/the-bioinformatics-press/pipeline-frameworks-for-genomic-data-af390b163ed

推荐阅读

如何实现云上编排系统

为什么云上需要自动化???

欢迎添加微信号monicka,加入容器技术交流群

继续阅读