在不修改规则的情况下指定本地输入和S3输入的最佳方法?

时间:2018-04-11 16:13:05

标签: snakemake

我有一个在本地HPC上运行的snakemake工作流程。我还想在AWS上使用此工作流程,使用boto根据需要将文件推送到S3或从S3推送文件。当与--no-shared-fs一起使用时,这可以避免IO问题。我认为最好的方法就是使用--default-remote-provider S3& --default-remote-prefix指定存储桶名称。但是,当调用此选项时,它会附加S3.remote&所有输入的桶前缀。这包括可执行程序,如:bwa,samtools,bedtools等。当boto尝试使用boto下载这些程序时,它不会保留可执行权限。

有没有一种很好的方法来指定" local"输入vs S3输入而不必修改规则?这样,如果我需要更改/改进它,我只能保留1个版本的工作流程。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用本地(...)包含本地文件,类似于标记临时文件的方式。这样,它们将被排除在默认远程应用程序之外。

请注意,工具通常不应该是输入或输出文件。考虑使用snakemake conda集成和bioconda进行软件部署和规范: http://snakemake.readthedocs.io/en/stable/snakefiles/deployment.html#integrated-package-management