【发布时间】:2021-07-08 04:25:07
【问题描述】:
我有以下(简化的)nextflow 模块。它有一个进程,在 fasta 文件上运行多序列比对,以及运行该进程的工作流(最终它也会运行其他进程):
process clustal_omega_msa {
input:
path fastas
output:
path 'clustal.sto'
script:
"""
cat ${fastas} > merged.fa
clustalo -infile merged.fa --outfmt=stockholm
"""
container "https://depot.galaxyproject.org/singularity/clustalo:1.2.4--h1b792b2_4"
}
workflow msa {
take:
path fastas
main:
clustal_omega_msa(fastas)
}
我希望这个工作流程既可以作为子工作流程导入,也可以直接执行。出于这个原因,我没有指定任何参数,而只使用了输入(因为我认为在调用子工作流时无法指定参数)。
但是,我看不到直接在命令行上运行此子工作流的方法。
如果我运行nextflow run msa.nf -entry msa,我会收到以下错误:
No such variable: fastas
-- Check script 'msa.nf' at line: 1 or see '.nextflow.log' file for more details
这是有道理的——我没有指定这些文件的来源。但我怎么能?如果我遵循文档的config 部分并创建一个具有以下内容的nextflow.config:
fastas = "/some/path/to/*.fasta"
我仍然收到此错误。我也知道有一个-params-file 选项,但我相信它只适用于参数,而不是输入。
【问题讨论】:
标签: nextflow