最近接到一个任务要搭建一个pipline,以往都是使用bash加上python,R搭建一个就好了,但是最近想要规范一点写,所以便研究一下nextflow,方便以后的维护
其实关于pipeline的搭建,起码有四种框架
pipeline大全
[review of bioinformatic pipeline frameworks | Briefings in Bioinformatics | Oxford Academic (oup.com)]
框架搭建的三个关键: 使用隐式或显式语法,使用配置、约定或基于类的设计范例,以及提供命令行或工作台接口。(using an implicit or explicit syntax, using a configuration, convention or class-based design paradigm and offering a command line or workbench interface.)
(https://academic.oup.com/bib/article/18/3/530/2562749?login=false)
Implicit convention frameworks(隐式约定框架)
隐式框架在扩展其功能时保留 Make 引入的隐式通配符习惯用法,通常是利用 Python 等功能齐全的脚本语言来实现规则内外的逻辑。
image.png
Snakemake 构建在 Make 的隐式或基于通配符的逻辑之上,同时通过允许 Python 与 DSL 一起穿过管道来扩展其功能。一些隐式框架,比如 Nextflow ( http://Nextflow.io ) ,提供了一些工具来抽象和管理文件名到全局变量中,以减少模糊性。BigDataScript 是一个独立的 DSL,它为实现管道逻辑提供了自己的独立于语言的语法。
Explicit frameworks(明确的框架)
基于步骤衔接
image.png
Configuration frameworks(配置框架)
根据配置文件的格式比如XML,然后使用一系列的文本解析器来
image.png
Class-based frameworks(基于类的框架)
一些高性能的工作流语言是以基于类的纯语言方式实现的。尽管这些框架表面上可能类似于基于 dsl (domain-specific language)的框架,但基于类的实现通常紧密地绑定到现有的代码库,而不是各种可执行文件。比如gatk
工作台
最流行的生物信息学服务器工作台是 Galaxy 和 Taverna
网友评论