在前面的两节内容中我们介绍了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文件。 |
|