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

Snakemake bash执行失败,但打印规则工作正常

如何解决Snakemake bash执行失败,但打印规则工作正常

我在Stackoverflow上看到了与此类似的问题,但是抱歉,我无法解决它。

我正在使用一条蛇形管道中的规则之一对fasta文件进行一些操作:

rule prep_headers:
        input:
                "reads_prepped/{sample}_good.fasta"
        output:
                "reads_prepped/{sample}_prepped.fasta"
        shell:
                "source bin/functions.sh; trimheaders {input} 50 | makeidsuniq > {output}"

其中functions.sh文件包含以下两个功能

function trimheaders() {
        cat $1 | awk -v max=${2} "{if(\$0~\">\"){printf(\"%s\n\",substr(\$1,1,max))}else{print \$0}}";
}
function makeidsuniq() {
        perl -pe 's/$/_$seen{$_}/ if ++$seen{$_}>1 and /^>/; ' $1 ;
}

Snakemake但是此规则有误:

Error in rule prep_headers:
    jobid: 0
    output: reads_prepped/Horizontal_prepped.fasta
    shell:
        source bin/functions.sh; trimheaders reads_prepped/Horizontal_good.fasta 50 | makeidsuniq > reads_prepped/Horizontal_prepped.fasta
        (one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)

Removing output files of Failed job prep_headers since they might be corrupted:
reads_prepped/Horizontal_prepped.fasta
Shutting down,this might take some time.
Exiting because a job execution Failed. Look above for error message

奇怪的是,如果我接着将上面显示的命令直接复制并粘贴到终端中,它就可以正常工作...

我已经尝试按照其他帖子的建议设置+ o pipefail,但这并不能解决问题。

有什么想法吗?

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