分享

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

 翌然生物 2021-03-19

在前面的两节内容中我们介绍了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 1DSL 2在语法上更为简洁,推荐小伙伴们使用DSL 2,估计DSL 1 后面也不会更新了。

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

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

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

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

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

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

   nextflow   run   example.nf       

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多