微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Snakemake子工作流程可以使用目录作为输入吗?

如何解决Snakemake子工作流程可以使用目录作为输入吗?

我有两个蛇文件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。

我做错了什么?以及如何解决

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。