我有两个蛇文件A和B。 A生成的最后一个文件是一个包含一系列文件的目录,该文件将在蛇文件B中用于第一条规则。我可以先按snakefile_A然后按snakefile_B的顺序分别运行工作流,这没有问题。
我尝试使用子工作流将这两个工作流结合在一起,但是我收到FileNotFoundError消息:[Errno 2]没有这样的文件或目录:'Analysis / output /'
snakefile如下:
Snakefile_A:
rule last:
input:
'Analysis/out.paf'
output:
directory('Analysis/output/')
shell:
'script that splits files in the output folder'
Snakefile_B:
subworkflow otherworkflow:
workdir:
'.'
snakefile:
'Snakefile_A'
rule a:
input:
otherworkflow('Analysis/output')
output:
'Analysis/dummy.txt'
shell:
'touch {input}
bc_dir='Analysis/output/'
bc_samples=[y for y in os.listdir(bc_dir) if '.fq' in y]
bc_files = [bc_filename.split('.', 1) for bc_filename in bc_samples]
bc_file_dict = {bc_filename[0]: bc_filename[1] if len(bc_filename) == 2 else '' for bc_filename in bc_files}
rule all:
input:
'Analysis/result.txt'
rule b:
input:
expand('Analysis/output/{bc_seqid}.fq', bc_seqid=bc_file_dict.keys())
output:
'Analysis/result.txt'
shell:
' scripts {input} {output}'
根据说明:“执行时,snakemake首先尝试通过执行子工作流来创建(或更新,如有必要)test.txt(以及所有其他可能提到的依赖项。)然后执行当前工作流。” >
我希望将首先创建蛇文件_A的分析/输出中的文件,然后将其用于Snakefile_B。
我做错了什么?以及如何解决?
谢谢