Nextflow 快速搭建生信分析流程(三)- 实例讲解

在前面的两节内容中我们介绍了Nextflow的安装和流程监控平台Nextflow Tower, 大家如果对软件安装还有疑问可以查阅平台中前面两节的内容。这里我们以nextflow的一个具体运行脚本来进行讲解,脚本代码如下(可以将代码保存到文件example.nf中):

#!/usr/bin/env nextflow

nextflow.enable.dsl=2

process foo {

output:

path 'foo.txt'

script:

"""

      echo 'Hello World’ > foo.txt

      """

}

process bar {

input:

path x

output:

path 'bar.txt'

script:

"""

      cat$x > bar.txt

      """

}

workflow {

data = foo()

bar(data)

}

代码讲解:

nextflow.enable.dsl=2 表示我们将使用DSL的扩展版本2,最早开发版本为DSL 1,DSL 2在语法上更为简洁,推荐小伙伴们使用DSL 2,估计DSL 1 后面也不会更新了。

代码中process表示定义流程,在上面的代码中我们定义了两个流程:

第一个流程foo是将'HelloWorld’字符串输出到一个名称为 foo.txt的文件中,nextflow中的process可以理解为'函数’,process中包含输入和输出,输入在input中加入要使用的参数,output为输出的参数或文件;

第二个流程bar会读入一个文件,并将文件中的内容输出到'bar.txt’中;

Workflow中定义流程该如何执行,你可能会在脚本中写入N多个不同的process,但是只有在workflow中调用的process才会被执行,本例中我们是执行了foo和bar两个process。

data = foo() 表示data会接收foo() 这个process的output,并将输出传递给bar() 这个process。

程序执行,输入下面的命令:

   nextflow   run   example.nf       

运行完成后,会在程序所在的执行目录中生成一个work目录,并且会存在两个文件夹,文件夹中就保存了程序执行过程中生成的foo.txt和bar.txt文件。

(0)

相关推荐

  • 初识Nextflow (系列之一)

    写在前面 每个人的时间都是有限的. 昨夜反思,当我发现博士生活已经过了一年半,而我也需要耗费一定量的时间在实验上的时候,我开始有顾虑.我认知中的 成长是需要时间的,浮沙筑高楼是不可能持久的. 这类观点 ...

  • Nextflow 快速搭建生信分析流程(八)- Combine Operators

    本节我们介绍Nextflow中的Combine Operators类型.Combine-operators-合并操作符合并操作符包含以下类型:joincrosscollectFilecombineco ...

  • Nextflow 快速搭建生信分析流程(七)- Splitting Operators

    本节我们介绍Nextflow中的Splitting operator类型.Splitting operators-分割操作符分割操作符用于将channel中的元素分割成不同的块儿,这些块结构将会下游的 ...

  • Nextflow 快速搭建生信分析流程(六)- Transforming operators

    本节我们介绍Nextflow中Transforming operators类型.Transforming operators-转换操作符转换操作符包括buffer, collate, collect, ...

  • Nextflow 快速搭建生信分析流程(五)- Filtering operators

    本节我们介绍Nextflow中的Operator类型,Operator用户连接不同的Channel或者按照用户指定的规则进行数据的变换操作. Operators分为以下7种类型: Filtering ...

  • Nextflow 快速搭建生信分析流程(四)- Channel

    本节我们介绍Nextflow中的Channel类型,Channel是nextflow中process之间进行数据传递的通道. Channel主要有两个属性: 采用异步操作的方式进行数据传递: 数据接收 ...

  • Nextflow快速搭建生信分析流程(二)-Tower

    在第一节中,我们介绍了nextflow的平台支持和安装方法,这一节我们将介绍流程监控的利器nextflow tower. 相信之前自己搭建过生信流程的小伙伴对流程监控的重要性都非常清楚,俗话说:&qu ...

  • snakemake搭建生信分析流程

    像经常处理生物信息大数据的同学,肯定有自己一套的分析脚本,也就是常说的pipeline了.在我刚开始的时候,也是按照大伙的分析流程,一步一个脚本,后来熟悉了一些,会把经常用到的脚本放在一起,再用变量名 ...

  • 用集成了anaconda的docker快速布置生信分析平台

    前言 众所周知,conda和docker是进行快速软件安装.平台布置的两大神器,通过它们,在终端前敲几个命令.点点鼠标,软件就装好了.出了问题也不会影响到系统配置,能够很轻松的还原和重建. 不过,虽说 ...

  • 生信分析流程构建的几大流派

    导言 构建生信分析流程是生物信息学从业人员必备的技能之一,对该项能力的评估常常是各大公司招录人员的参考项目之一. 在进行ngsjs项目时,我做了一张示意图来表示一些高通量测序数据分析项目重现性的要点( ...