如何在 Nextflow 中指定临时输出目录?
How to specify a scratch output directory in Nextflow?
我已经开始阅读 Nexflow 的文档和 found that one can specify a scratch
directory for the execution. Once the task is complete, one can use stageOutMode
指令以将输出文件从 scratch
复制到 storeDir
。
要复制的输出文件由output
指令指定。我的问题如下:是否可以将整个目录指定为输出,以便将它们从 scratch
递归复制到 storeDir
?如果是,怎么做?
默认情况下,path output qualifier 将递归地捕获进程输出(文件、目录等)。您需要做的就是在输出声明中指定(顶级)目录,如下例所示:
nextflow.enable.dsl=2
process test {
scratch '/tmp/my/path'
stageOutMode 'copy'
storeDir '/store/results'
input:
val myint
output:
path "outdir-${myint}"
script:
def outdir = "outdir-${myint}/foo/bar/baz"
"""
mkdir -p "${outdir}"
touch "${outdir}/${myint}.txt"
"""
}
workflow {
ch = Channel.of( 1..3 )
test(ch)
}
设置 stageOutMode 指令只会改变输出文件从临时目录转移到 工作目录 的方式。 IE。该指令不会改变处理结果如何进入storeDir目录。
storeDir 指令更改输出声明中列出的文件最终发生的情况,使它们从工作目录移动 到指定的 storeDir 目录。
我已经开始阅读 Nexflow 的文档和 found that one can specify a scratch
directory for the execution. Once the task is complete, one can use stageOutMode
指令以将输出文件从 scratch
复制到 storeDir
。
要复制的输出文件由output
指令指定。我的问题如下:是否可以将整个目录指定为输出,以便将它们从 scratch
递归复制到 storeDir
?如果是,怎么做?
默认情况下,path output qualifier 将递归地捕获进程输出(文件、目录等)。您需要做的就是在输出声明中指定(顶级)目录,如下例所示:
nextflow.enable.dsl=2
process test {
scratch '/tmp/my/path'
stageOutMode 'copy'
storeDir '/store/results'
input:
val myint
output:
path "outdir-${myint}"
script:
def outdir = "outdir-${myint}/foo/bar/baz"
"""
mkdir -p "${outdir}"
touch "${outdir}/${myint}.txt"
"""
}
workflow {
ch = Channel.of( 1..3 )
test(ch)
}
设置 stageOutMode 指令只会改变输出文件从临时目录转移到 工作目录 的方式。 IE。该指令不会改变处理结果如何进入storeDir目录。
storeDir 指令更改输出声明中列出的文件最终发生的情况,使它们从工作目录移动 到指定的 storeDir 目录。