1 简介

Nextflow是数据驱动的pipeline,使用软件容器实现可扩展、可复写,适应于大多数常见脚本语言,流畅的领域特定语言(DLS)简化了在云和集群上的部署和复杂并行工作流程的开发。

2 安装

依赖:java1.8 可通过 java -version 查看Java版本
安装: curl -s https://get.nextflow.io | bash``
或者从GitHub下载:https://github.com/nextflow-io/nextflow/releases

3 示例

vi tutorial.nf

  1. #!/usr/bin/env nextflow
  2. params.str = 'Hello world!'
  3. process splitLetters {
  4. output:
  5. file 'chunk_*' into letters mode flatten
  6. """
  7. printf '${params.str}' | split -b 6 - chunk_
  8. """
  9. }
  10. process convertToUpper {
  11. input:
  12. file x from letters
  13. output:
  14. stdout result
  15. """
  16. cat $x | tr '[a-z]' '[A-Z]'
  17. """
  18. }
  19. result.subscribe {
  20. println it.trim()
  21. }

运行 nextflow run tutorial.nf``
Nextflow学习(一) [简介] - 图1
默认会在运行目录生成work目录,用于保存中间临时文件
Nextflow学习(一) [简介] - 图2
还会生成.nextflow目录,保存缓存文件和历史
Nextflow学习(一) [简介] - 图3
以及.nextflow.log日志文件,记录详细的运行日志

使用缓存,重新运行脚本 nextflow run tutorial.nf -resume``