如何让多个用户在 snakemake 中运行相同的管道 - 元数据权限问题

问题描述 投票:0回答:1

我有一个管道,我们希望将其存储在一个共享空间中,以便我们所有的分析师都可以访问它并使用它,而无需复制 repo / singularity 容器。问题是当一个人运行管道时,.snakemake/metadata 中的文件属于该用户。当下一个用户尝试运行管道时,会访问此元数据并导致错误。

我知道我可以在流程结束时删除元数据中的数据,但理想情况下我们希望用户能够并行运行管道(在不同的输入/输出上)。所有用户都在同一组中,但这无济于事

有什么建议吗?

python permissions snakemake directed-acyclic-graphs collaboration
1个回答
0
投票

在这里回答的一个解决方案是使用

-d
--directory
选项为每个用户指定自定义工作目录。这样每个用户都有自己的
.snakemake
目录。

要自动执行此操作,可以使用专用的 shell 脚本或将自动指定用户特定路径的别名:

snakemake -d ".snakemake_$(whoami)"

(对于 Windows,可以引用合适的环境变量而不是

whoami

在适当的情况下,使用更柔和的溶液可能会更好。具体来说,早期的方法仍然将整个工作流程暴露给每个用户,由于一个用户做出了另一个用户不知道的更改,可能会造成冲突。

为避免这种情况,最好将工作流(snakefiles)托管在中央(编辑保护)位置,但要求用户在自己的文件夹中运行代码,使用

-s
--snakefile
引用公共工作流位置争论。这样,中心位置的更改只有在指定用户进行更改时才会发生,因此任何需要的工作流调整都是明确进行的。

© www.soinside.com 2019 - 2024. All rights reserved.