在snakemake上运行管道所需的裸露骨头?

时间:2019-08-08 18:16:13

标签: linux bash ubuntu snakemake

我必须执行遗传信息的估算,但是脚本和文件位于不同的位置。也可能涉及一些并行工作。要完成工作,需要太多的手动运行等待。

为了简化混乱,我想将这些bash脚本放入Snakemake管道中。预期结果将是一个Snakefile,其中的规则仅由shell脚本组成,因为已经指定了输入/输出文件。

为此,我基本上必须运行以下简单示例:

比方说,我们输入了名为test.txt的包含列表:

13 234 34 4

还有用于订购的bash脚本,称为test.sh:

sort -n test.txt > test1.txt

为了通过Snakemake运行此脚本,我制作了Snakefile:

rule sort:
    shell:
            "path/to/test.sh"

当我使用命令

运行它时
snakemake Snakefile 

我收到以下错误:

/usr/bin/bash: path/to/test.sh: Permission denied

你们能指出为什么为什么这种语法不适用于snakemake吗?

1 个答案:

答案 0 :(得分:2)

因此,注释中暗示了该问题。

有两个可能的问题。一种是文件路径不正确,另一种是路径正确,但文件“不可执行”。

如果该文件不可执行,则与snakemake无关。解决方案很简单。只需使用@CharlesDuffy提出的命令:

chmod +x path/to/test.sh