我有一个像这样(简化)的 Nextflow 工作流程:
params.filter_pass = true
// ... more stuff
process concatenate_vcf {
cpus 6
input:
file(vcf_files) from source_vcf.collect()
file(tabix_files) from source_vcf_tbi.collect()
output:
file("assembled.vcf.gz") into decompose_ch
script:
"""
echo ${vcf_files} | tr " " "\n" > vcflist
bcftools merge \
-l vcflist \
-m none \
-f PASS,. \
--threads ${task.cpus} \
-O z \
-o assembled.vcf.gz
rm -f vcflist
"""
}
现在,我只想在调用中的脚本中添加命令的一部分,-f PASS,.
前提是为真。bcftools merge
params.filter_pass
换句话说,如果params.filter_pass
为真(为清楚起见,删除了其他行),脚本将像这样执行:
bcftools merge \
-l vcflist \
-m none \
-f PASS,. \
--threads ${task.cpus} \
-O z \
-o assembled.vcf.gz
如果它params.filter_pass
是假的:
bcftools merge \
-l vcflist \
-m none \
--threads ${task.cpus} \
-O z \
-o assembled.vcf.gz
我知道我可以使用条件脚本,但这意味着复制整个脚本节只是为了更改一个参数。
Nextflow 是否可以使用此用例?