看到一个大师级综述:Jeremy Leipzig, A review of bioinformatic pipeline frameworks, Briefings in Bioinformatics, Volume 18, Issue 3, May 2017, Pages 530–536, https://doi.org/10.1093/bib/bbw020 值得推荐,非常好的整理了目前生物信息学界的各个NGS数据处理的流程搭建策略。主要是下面的4种:
第一个是基于通配符
比如Nextflow、Snakemake等等,这方面的各种教程多如牛毛,我这里就不赘述了,大家根据关键词搜索即可自行学习。
第二个是基于步骤衔接
比如Ruffus和bpipe,参考我们《生信菜鸟团》的:Bpipe | 教你轻松搭建分析流程
其实就是在原有的shell脚本的基础上,将每个分析步骤进行包装,然后利用Bpipe的语法进行串联,就能高效地利用计算机资源以及进行断点重新运行。比如下面的这个bpipe流程,下载即可使用它:
- https://github.com/fun-science-club-ntu/PET
第三个是基于配置文件
配置文件的格式是XML、YAML、TOML等,然后用对应的格式解释器以及执行步骤就能完成流程的分析。常见的流程有Galaxy等。
第四个是基于封装/打包
差不多是自己造轮子了,而不仅仅是流程串起来各种各样的工具,比如GATK等等,一个软件就包含了全部流程的各个步骤。
其实更多的流程框架是简单的shell脚本
比如你看我的B站免费的NGS组学视频课程,已经组建了微信交流群的有下面这些:
- 免费视频课程《RNA-seq数据分析》
- 免费视频课程《WES数据分析》
- 免费视频课程《ChIP-seq数据分析》
- 免费视频课程《ATAC-seq数据分析》
- 免费视频课程《TCGA数据库分析实战》
- 免费视频课程《甲基化芯片数据分析》
- 免费视频课程《影像组学教学》
- 免费视频课程《LncRNA-seq数据》
- 免费视频课程《GEO数据挖掘》
- 肿瘤基因测序
就会发现,我并没有使用过任何一种流程框架。
主要是因为如果并不是公司的项目环境需求,实际上绝大部分人根本就没有这个必要去研究流程框架,因为ngs上游分析本来就是低频需求。另外,流程框架很有可能会被docker取代
docker镜像封装好的流程,大家下载即可使用,然后一句话就可以完成之前本来是需要花费好几天的环境配置。我在生信技能树上面写过部分docker教程, 目录如下:
- 用集成了anaconda的docker快速布置生信分析平台
- 我学会docker啦!希望你也可以学会
- 跟着jimmy学docker系列之第2讲:一个软件一个容器
- 跟着jimmy学docker系列之第3讲:为何不创建自己的docker容器呢?
- 跟着jimmy学docker系列之第4讲:docker容器资源调度问题(MAC版本)
- 使用阿里云+Docker分析RNA-Seq与ChIP-Seq
- Docker应用之一键化安装Wordpress(无需代码基础)
- 如何从看不懂Dockerfile到创建自己的镜像
感兴趣的可以简单浏览即可,如果要完全掌握docker的方方面面仍然是推荐大家看文档,多练习。比如gistic2就有docker镜像,一句话解决战斗:docker pull cheungatm/gistic2:v2
你完全不用耗费心神就解决各个软件那些错综复杂的依赖关系。
但是,docker又何尝不会被其它新技术取代呢?