问题描述
我因为一个简单的规则而出错。我必须为另一个程序编写一个任务文件,并且需要一个tsv文件。我从配置文件中读取了一定数量的参数,然后使用shell命令将它们写入文件。
代码:
rule create_tasks:
output:
temp("tasks_{sample}.tsv")
params:
ID="{sample}",file=lambda wc: samples["path"][wc.sample],bigwig=lambda wc: samples["bigwig"][wc.sample],ambig=lambda wc: samples["ambig"][wc.sample]
shell:
'echo -e "{params.ID}\t{params.file}" > {output}'
执行工作流程时,出现以下错误:
Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cluster nodes: 1
Job counts:
count jobs
1 create_tasks
1
[Mon Oct 12 14:48:15 2020]
rule create_tasks:
output: tasks_sampleA.tsv
jobid: 0
wildcards: sample=sampleA
echo -e "sampleA /Path/To/sampleA.bed " > tasks_sampleA.tsv
WorkflowError in line 23 of /path/to/workflow.snakefile:
'Wildcards' object has no attribute 'output'
File "/path/to/miniconda/envs/snakemake_submit/lib/python3.8/site-packages/snakemake/executors/__init__.py",line 111,in run_jobs
File "/path/to/miniconda/envs/snakemake_submit/lib/python3.8/site-packages/snakemake/executors/__init__.py",line 1233,in run
我应该提到,其中两个变量为空,并且我希望echo命令中的制表符/空格。
有人有解释吗,为什么snakemake试图在通配符中查找输出?我特别感到困惑,因为它正在打印正确的命令。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)