1

我们需要创建一个由来自多个包的命令组成的工作流,最终让研究所的其他成员(顺便说一下,他们不是计算机科学家)能够下载和使用它。

在线搜索,有一些用于创建工作流的包(https://www.biostars.org/p/91301/),其中有 Snakemake(https://snakemake.readthedocs.io/en/v3.9.1/snakefiles/deployment .html ) 似乎是一个很好的候选者。

我们想知道这是否真的是为此目的的最佳软件包,是否有更好的选择?

4

1 回答 1

2

这在很大程度上取决于所使用的计算机知识以及可用的预算。真正了解谁将使用您的软件//程序。一切都取决于此,它将减少可供选择的语言库。

也可以查看这篇论文: https ://www.ncbi.nlm.nih.gov/pmc/articles/PMC5429012/

我们小组在对景观进行了大约 6 周的调查后选择了 Snakemake(2017 年 2 月至 3 月)

就恰到好处的易用性而言,同时仍然允许经验丰富的编码人员进行足够的定制,Snakemake 恰到好处。很多功能,绰绰有余。伟大的集群集成。Wrappers 真的很酷,而且易于使用。我们想要更多的粒度和控制,所以我们实际上是在编写我们自己的所有模块(复制当前用 GNU Make 编写的模块)。

对于分发,Snakemake 有这个,很方便。 https://snakemake.readthedocs.io/en/latest/snakefiles/deployment.html

Snakemake 在 conda (Anaconda.org) 中也得到了很好的维护,这进一步支持了可移植性。当我在 CentOS5(旧操作系统)上运行时,这对我来说是一个重大问题。Johannes 为向后兼容所做的努力非常出色。 https://anaconda.org/bioconda/snakemake

Snakemake 很好地利用了 python。Python 和 R 是我认为与生物计算社区相关的两种语言,因此在寻找学生或雇用有经验的人方面,你的候选人池更大。我使用 python 脚本来构建模块化管道。我所有的管道(依赖项)都是用 Snakemake 编写的,我的任务的执行是在 Python 中完成的(带有一点 Bash)。固体缩放。通配符可能很棘手,但借助正则表达式的强大功能,人们可以预料到会遇到困难。

作者仍然非常活跃,这对我们来说是一个巨大的考虑,在 StackOverflow、BitBucket 和 Google Groups 中。

除了功能之外,我们还考虑向前发展。Snakemake 似乎是由深陷生物界的人编写的。BDS的作者也遵循类似的心态。其他一些较大的语言是由公司运行的。并不是说公司不好,但我认为可能存在潜在的动机差异。

我们考虑的其他语言是:

  1. Nextflow:https ://www.nextflow.io/ 这并不是说这不是一门伟大的语言,该语言极大地赋予了编码人员权力,但是,作为开发人员,他们决定基于“数据流编程范式”发明新的术语。在尝试使用该语言进行开发时,它大大增加了学习曲线。 https://www.nextflow.io/docs/latest/basic.html#processes-and-channels

  2. BigDataScript:https ://pcingola.github.io/BigDataScript/bigDataScript_manual.html 我真的很喜欢这种语言,它更类似于你在学校学习的编码语言(Java、C),并且使用了很多相同的术语. 这将是我们的第二选择,如果我们的团队还没有非常熟悉 GNU Make 的编码风格,我们可能最终会使用 BDS。此外,该语言的作者是 snpEff 的作者。

还有很多其他语言。我们小组真的只是详细检查了这三个。我在 Snakemake 和 BDS 上有幻灯片(PPTX 中的 20 多张幻灯片),突出了我们在每个方面都重视的功能,如果有兴趣,我可以主持供您阅读。没什么特别的,主要是阅读每种语言手册的片段。

您拥有的 biostars 链接我们也非常重视。

这篇文章反映了我对 Snakemake 和 Nextflow 的感受:https ://jmazz.me/blog/NGS-Workflows

于 2017-05-26T16:19:03.107 回答