bcbio-nextgen:一个为全自动高通量测序分析提供最佳实践管道的工具

bcbio-nextgen

bcbio-nextgen是一个Python工具,它为全自动高通量测序分析提供了最佳的实践管道。当用户编写一个高级配置文件指定输入和分析参数后,该用户的输入可以驱动处理分布式运算、幂等进程重启以及安全事务步骤的并行管道。bcbio的目标是提供一个能够进行数据测序分析处理组件的资源共享社区,以此能够让研究人员更专注于下游生物科学的研究。

目标

bcbio-nextgen实现全自动高通量测序数据分析的目标主要包含以下方面:

  • 可量化性:优秀的科学研究需要能够准确地评估结果的质量,新的算法和软件成为可用。
  • 可分析性:将结果导入工具使得查询结果与可视化结果更加容易。
  • 可扩展性:在分布式异构计算环境中处理大数据集以及样本数据。
  • 可复用性:跟踪配置,版本,来源以及命令行以便对结果的调试、扩展以及复用。
  • 社区开发:开发过程是完全开放的并且由来自多个社区的贡献者来共同维护。通过在共享框架上的协作,我们可以克服在迅速变化的研究领域维护复杂管道的挑战。
  • 易理解性:生物信息学家、生物学家和公众能够将研究材料、个人基因组的临床样本数据等各种数据作为输入来运行整个工具。

用户

目前用bcbio-nextgen来解决生物问题的机构主要有:

如何安装

安装

我们提供了一个安装第三方分析工具的自动化脚本。bcbio应该安装在纯净的Linux系统上。对于使用Mac OSX的用户,我们建议您尝试用在Amazon Web Service上运行bcbio的bcbio-vm,或者可以在Dock容器内部将所有第三方工具分离开来。

更新

工具的更新过程与自动化安装过程相同。由于每个用户有不同的目标,为了避免意外的更新,我们对于每种特定更新方式都有对应的参数。通常情况下,您可以使用一下代码来执行更新:

自定义数据安装

bcbio可以安装做测序分析的相关数据文件,并且用户可以自定义安装到更大的文件中或者改变默认设置。使用--datatarget来自定义和添加新的目标。

其他安装问题

其他安装方式、工具及软件等安装详情及要求见安装页面

管道介绍

bcbio提供了以下几种生物学研究中的专用管道,为生物数据分析提供便捷的处理方法。

开始使用

概览

1.首先为你的项目新建一个配置文件

2.运行分布在8个本地核心上的分析文件:

3.阅读配置文档来查看所有关于样本和系统配置文件的详细配置信息。

项目目录

bcbio建议用户使用以下项目结构:

其中,输入配置内容在config目录下,所有的管道输出结果存储在final目录下,实际代码运行在work目录下。

日志文件

在工作目录下的log目录中一共有三个日志文件。

  • bcbio-nextgen.log记录了关于分析高性能日志信息。这个日志文件为用户评估运行时间提供了一个关于主要步骤和有效断点的概览。
  • bcbio-nextgen-debug.log记录了关于对第三方软件信息的处理及错误追踪的详细信息。
  • bcbio-nextgen-commands.log记录了所有第三方软件工具运行的完整命令行。

管道实例

bcbio-nextgen提供了一些输入配置文件的示例来进行验证,并帮助用户来理解管道的概念。

这个例子调用了来自EdgeBio临床测序管道的NA12878外显子的变量,并将它们与来自NIST的Genome in a Bottle参考材料进行了对比。
这是一个多变量调用大型完整的外显因子的例子,所以使用多核机器进行处理时会超过24小时。
首先获取输入配置文件,测序读取文件,参考材料以及分析模块:

最后运行分布在8个本地核心上的分析文件:

grading-summary.csv文件包含了运行结果与NIST参考材料的详细比较信息。

测试套件

测试套件用来测试脚本驱动分析,也用来测试管道工具是否正确安装。测试工具使用预安装的nose测试运行器进行测试。获取最新的资源代码:

运行标准测试:

运行测试子集:

配置

两个YAML格式配置文件指定了用户系统和样本运行详细信息:

  • bcbio_system.yaml高级别的系统信息,包含了程序安装安装目录,核及内存使用状况等信息。
  • bcbio_sample.yaml关于待执行样本集的详细信息,包括了输入文件和分析选项。

自动化样本配置

bcbio-nextgen提供了一个使用模板创建配置文件的工具。首先选择一个模板,或者定义自己的模板,然后使用工作流模板命令将模板运用到多样本中:

样本的多个文件

用户在拥有多个FASTQ或者BAM文件下,可以使用bcbio_prepare_samples.py,主要参数有:

  • --out: 合并后文件所在的目录
  • --csv: 与之前描述文件相似的CSV文件,但是拥有与待合并文件数一样多的重复行;

用法的例子:
bcbio_prepare_samples.py --out merged --csv project1.csv

样本信息

样本配置文件定义了每个待处理样本的具体信息:

上传

样本配置文件的upload模块定义了管道最终输出文件的存放位置。
最简单的一个上传至本地目录的配置方式:

全局变量

用户可以多次在顶层全局变脸字典的算法部分定义文件,它在配置文件中存储了复制和粘贴内容,使得在输入发生变化时,用户更加方便地手动调整配置:

算法参数

YAML配置文件提供了大量的hooks以实现样本配置文件中自定义分析,并将这些hooks存放在algorithem关键词下。

并发执行

bcbio管道可以以两种不同的方式进行并发执行:

  • 多核 – 在一台机器上使用多核的方式执行分析。这种方式只支持Python的多进程处理库。
  • 并行信息 – 这种方式允许对一台机器可用核的扩展,并且支持共享文件系统的多台机器。机器间的信息交流通过使用IPython并行框架发送信息。

其他并发执行内容见并发执行详细信息

Amazaon Web Service

AWS提供了一个灵活的基于云端的执行分析环境。云方式为执行分析提供了进一步的扩展,它不需要对本地硬件进行投入。AWS同时还提供了对环境的完善编程控制,允许bcbio自动化完成整个安装、运行和卸载过程。
Amazon Web Services配置及操作步骤见AWS使用手册

通用工作流语言(Common workflow language)

bcbio有支持通用工作流语言(CWL)运行兼容的并行化软件。bcbio从样本的YAML描述文件中生成该工作流。任何支持CWL输入的工具可以运行此工作流。CWL型工具处理文件和工作流程管理的工作,bcbio则使用Docker容器或本地安装方式来进行生物分析。 这是一个正在进行中的工作,而不是一个完整的生产实施。文件以帮助开发感兴趣的人。
通用工作流语言使用文档见Common Workflow language

输出

bcbio-nextgen运行在一个包含了大量处理中间件的临时工作目录中。管道执行分析结束后,会将有效文件提取到另一个目录下。当确认提取输出文件后,用户可以删除临时工作目录来节省空间。

通用文件

输出文件目录包含了用样本名称标记的具体输出和一个更加通用化的项目目录。样本目录包含了所有详细的输出文件,而项目目录包含了全局文件,例如项目概要等信息。
查看更多输出细节文件内容请访问teaching documentation

下游分析

下游分析(Downstream)收集有效脚本和工具来进行bcbio输出的下游分析。

底层代码

关于bcbio-nextgen底层代码设计信息请访问code
我们欢迎开发者参与到我们的项目中与我们一同开发更加完善的功能。

开发资源链接

官方网站:http://bcbio-nextgen.readthedocs.io/en/latest/index.html
开源地址:https://github.com/chapmanb/bcbio-nextgen

1 收藏

资源整理者简介:赵叶宇

Python技术学习者,主要集中数据分析领域和机器学习。 个人主页 · 贡献了7个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1438 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer