最近接到一個(gè)任務(wù)要搭建一個(gè)pipline些楣,以往都是使用bash加上python脂凶,R搭建一個(gè)就好了,但是最近想要規(guī)范一點(diǎn)寫愁茁,所以便研究一下nextflow蚕钦,方便以后的維護(hù)
其實(shí)關(guān)于pipeline的搭建,起碼有四種框架
pipeline大全
[review of bioinformatic pipeline frameworks | Briefings in Bioinformatics | Oxford Academic (oup.com)]
框架搭建的三個(gè)關(guān)鍵: 使用隱式或顯式語法鹅很,使用配置嘶居、約定或基于類的設(shè)計(jì)范例,以及提供命令行或工作臺(tái)接口促煮。(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(隱式約定框架)
隱式框架在擴(kuò)展其功能時(shí)保留 Make 引入的隱式通配符習(xí)慣用法邮屁,通常是利用 Python 等功能齊全的腳本語言來實(shí)現(xiàn)規(guī)則內(nèi)外的邏輯。
Snakemake 構(gòu)建在 Make 的隱式或基于通配符的邏輯之上菠齿,同時(shí)通過允許 Python 與 DSL 一起穿過管道來擴(kuò)展其功能佑吝。一些隱式框架,比如 Nextflow ( http://Nextflow.io ) 绳匀,提供了一些工具來抽象和管理文件名到全局變量中芋忿,以減少模糊性炸客。BigDataScript 是一個(gè)獨(dú)立的 DSL,它為實(shí)現(xiàn)管道邏輯提供了自己的獨(dú)立于語言的語法戈钢。
Explicit frameworks(明確的框架)
基于步驟銜接
Configuration frameworks(配置框架)
根據(jù)配置文件的格式比如XML,然后使用一系列的文本解析器來
Class-based frameworks(基于類的框架)
一些高性能的工作流語言是以基于類的純語言方式實(shí)現(xiàn)的痹仙。盡管這些框架表面上可能類似于基于 dsl (domain-specific language)的框架,但基于類的實(shí)現(xiàn)通常緊密地綁定到現(xiàn)有的代碼庫殉了,而不是各種可執(zhí)行文件开仰。比如gatk
工作臺(tái)
最流行的生物信息學(xué)服務(wù)器工作臺(tái)是 Galaxy 和 Taverna