脚本运行之后,Nextflow 将存储执行的所有 workflow 的日志在当前文件夹中。
可以使用 nextflow log 命令打印 Nextflow 的执行历史和日志信息。打印如下:
TIMESTAMP DURATION RUN NAME STATUS REVISION ID SESSION ID COMMAND
这将打印所有管道运行的执行日志和运行时信息的摘要。默认情况下,摘要中包括运行的日期、运行时间、运行名称、运行状态、reversion ID、会话 ID 和命令行信息。
如果我们想要得到某次运行的更多信息,可以在nextflow log命令后加上运行名称或会话ID。例如:nextflow log tiny_fermat。
输出如下:
/mnt/dev/ppp/test/workflow/work/25/694210dd0d7945343142a402c65d2f /mnt/dev/ppp/test/workflow/work/5d/b8dd3b859e8f3309143e2e7a1dfb45 /mnt/dev/ppp/test/workflow/work/d8/b8345d59dd4631287118f100b32295 /mnt/dev/ppp/test/workflow/work/46/67fa564a12c272af84a7881502b8ac /mnt/dev/ppp/test/workflow/work/10/8a7f9b0418d87f33ce30648f1ee6cf /mnt/dev/ppp/test/workflow/work/12/7e6e24fda509c33c98d7e829167d64
这将会列出每个process的工作目录。
log域Task ID
task id 是一个32位的十六进制数,例如:7e6e24fda509c33c98d7e829167d64。task id 是唯一的,是从128位的哈希数生成的,这个哈希数是由task的一些属性组合得到的:
- 输入值
- 输入文件
- 命令行字符串
- 容器ID
- conda 环境
- bin目录下的可执行脚本
如果想打印更多的元数据,可以加上-f,后面接上要打印的域。例如:
nextflow log tiny_fermat -f 'process,exit,hash,duration'
打印如下:
index 0 7b/3753ff 2s fastqc 0 c1/56a36d 9.3s fastqc 0 f7/659c65 9.1s quant 0 82/ba67e3 2.7s quant 0 e5/2816b9 3.2s multiqc 0 3b/3485d0 6.3s
完整可用的域可以这样查看:nextflow log -l。
过滤log 的输出可能很长。可以使用-F来过滤出想要的数据。例如:过滤出 process 名字里面包含fastqc的:
$ nextflow log tiny_fermat -F 'process =~ /fastqc/'模板
可以使用-t来使用一个模板。这样可以自定义报告的格式。例如:下面是一个 markdown 格式的模板:my-template.md。
## $name
script:
$script
exist status: $exit
task status: $status
task folder: $workdir
然后,在命令行中可以这样使用:
$ nextflow log elegant_descartes -t my-template.md > execution-report.md
也可以用HTML来定义模板文件。例如:
${name}
Script:${script}
- Exit: ${exit}
- Status: ${status}
- Work dir: ${workdir}
- Container: ${container}



