gpt4 book ai didi

nextflow - 使用命令行参数覆盖 Nextflow 参数

转载 作者:行者123 更新时间:2023-12-04 08:03:00 27 4
gpt4 key购买 nike

鉴于以下 nextflow.config :

google {
project = "cool-project"
region = "europe-west4"

lifeSciences {
bootDiskSize = "200 GB"
debug = true
preemptible = true
}
}
是否可以使用命令行参数覆盖这些设置中的一项或多项。例如,如果我想指定不应使用抢占式机器,我可以执行以下操作:
nextflow run main.nf -c nextflow.config --google.lifeSciences.preemptible false
?

最佳答案

可以使用 Nextflow 的 command line interface 覆盖管道参数。通过在参数名称前加上双破折号。例如,将以下内容放入名为“test.nf”的文件中:

#!/usr/bin/env nextflow

params.greeting = 'Hello'

names = Channel.of( "foo", "bar", "baz" )

process greet {

input:
val name from names

output:
stdout result

"""
echo "${params.greeting} ${name}"
"""
}

result.view { it.trim() }
并使用以下命令运行它:
nextflow run -ansi-log false test.nf --greeting 'Bonjour'
结果:
N E X T F L O W  ~  version 20.10.0
Launching `test.nf` [backstabbing_cajal] - revision: 431ef92cef
[46/22b4f0] Submitted process > greet (1)
[ca/32992c] Submitted process > greet (3)
[6e/5880b0] Submitted process > greet (2)
Bonjour bar
Bonjour foo
Bonjour baz
这适用于管道参数,但 AFAIK 无法像您在命令行中描述的那样直接覆盖执行程序配置。但是,您可以只参数化这些值并像上面描述的那样在命令行上设置它们。例如,在你的 nextflow.config 中:
params {

gc_region = false
gc_preemptible = true

...
}

profiles {

'test' {
includeConfig 'conf/test.config'
}

'google' {
includeConfig 'conf/google.config'
}

...
}
在一个名为“conf/google.config”的文件中:
google {
project = "cool-project"
region = params.gc_region

lifeSciences {
bootDiskSize = "200 GB"
debug = true
preemptible = params.gc_preemptible
}
}
然后你应该能够以通常的方式覆盖这些:
nextflow run main.nf -profile google --gc_region "europe-west4" --gc_preemptible false
请注意,您也可以指定多个 configuration profiles通过用逗号分隔配置文件名称:
nextflow run main.nf -profile google,test ...

关于nextflow - 使用命令行参数覆盖 Nextflow 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66356045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com