如何解决蛇形 - 用检查点替换动态
我有以下蛇形制作工作流程:
rule all:
input:
dynamic(os.path.join(config['out_dir'],'{CHR}','{CHR}.fa'))
output:
config['out_dir'] + '/all.fasta'
shell:
"""
cat {input} > {output}
"""
rule split_genome_to_chr:
"""
Split the input genome fasta to
multiple fastas with one chromosome
in each.
"""
input:
config['input_genome']
output:
dynamic(os.path.join(config['out_dir'],'{CHR}.fa'))
params:
out_dir=config['out_dir'],conda:
CONDA_ENV_DIR + '/faSplit.yml'
shell:
"""
faSplit byname {input} {params.out_dir}/ -outDirDepth=1
"""
这工作正常,但会打印一些关于弃用 dynamic() 以支持检查点的警告。
我浏览了检查点文档,但仍然无法弄清楚如何更改我的代码,因此它使用检查点而不是动态。这是我尝试过的:
def aggregate_input(wildcards):
return checkpoints.split_genome_to_chr.get(chrom=wildcards.CHR).output[0]
rule all:
input:
aggregate_input
output:
config['out_dir'] + '/all.fasta'
shell:
"""
cat {input} > {output}
"""
checkpoint split_genome_to_chr:
"""
Split the input genome fasta to
multiple fastas with one chromosome
in each.
"""
input:
config['input_genome']
output:
os.path.join(config['out_dir'],'{CHR}.fa')
params:
out_dir=config['out_dir'],conda:
CONDA_ENV_DIR + '/faSplit.yml'
shell:
"""
faSplit byname {input} {params.out_dir}/ -outDirDepth=1
"""
但收到错误消息:
InputFunctionException in line 51 of workflow.snakefile:
AttributeError: 'Wildcards' object has no attribute 'CHR'
Wildcards:
任何帮助将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。