【发布时间】:2020-09-26 02:19:41
【问题描述】:
这是一个很奇怪的问题。
当我在rule 部分中指定的{input} 是{input} 有超过500 个文件时,snakemake 就退出了消息(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)。完整的日志没有提供任何错误消息。
日志请见:https://github.com/snakemake/snakemake/files/5285271/2020-09-25T151835.613199.snakemake.log
有效的规则是(注意input 限制为 200 个文件):
rule combine_fastq:
input:
lambda wildcards: samples.loc[(wildcards.sample), ["fq"]].dropna()[0].split(',')[:200]
output:
"combined.fastq/{sample}.fastq.gz"
group: "minion_assemble"
shell:
"""
echo {input} > {output}
"""
失败的规则是:
rule combine_fastq:
input:
lambda wildcards: samples.loc[(wildcards.sample), ["fq"]].dropna()[0].split(',')
output:
"combined.fastq/{sample}.fastq.gz"
group: "minion_assemble"
shell:
"""
echo {input} > {output}
"""
我的问题也发布在 GitHub 上:https://github.com/snakemake/snakemake/issues/643。
【问题讨论】:
-
我觉得可能和这个有关:stackoverflow.com/questions/19354870/…
-
我认为shell中的命令行长度不是问题。我跑了
getconf ARG_MAX,得到了4611686018427387903。 -
你找到解决方案了吗?
-
@Maarten-vd-Sande 我还没想到。我写了一个不同的脚本来绕过snakemake中的这个问题。
标签: snakemake