python - Snakemake:如何强制创建所有 conda 环境

标签 python conda snakemake

我知道通过添加选项 --conda-create-envs-only 您可以为工作流程创建 conda 环境。但是,是否可以在事先不知道工作流 DAG 的情况下强制创建 workflow/envs/ 下的所有 conda 环境?

原因是我计划在 HPC 上运行 Snakemake,并且计算节点没有互联网。因此,我必须在具有互联网的构建节点中设置环境。问题是我只能访问计算节点中的输入数据。

最佳答案

也许将 conda 环境的创建本身作为目标?类似的东西,未经测试:

localrules: all, make_envs

rule all:
    input:
        # Maybe not needed:
        expand('{env}.done', env= ['env1', 'env2'])


rule make_envs:
    conda:
        'workflow/envs/{env}.yaml',
    output:
        touch('{env}.done'),


rule one:
    input:
        'env1.done',
    conda:
        'workflow/envs/env1.yaml',
    output: ...
    shell: ...

规则 one 将找到创建的 conda env,因为它需要 env1.done 作为输入

关于python - Snakemake:如何强制创建所有 conda 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71345313/

相关文章:

azure - 托管私有(private) Conda 包 - URL 包含查询字符串

python - 通过 Snakemake 进行符号链接(symbolic link)(自动生成)目录

Python - 如何摆脱 sql 查询执行中的转义序列

python - 系统参数无法识别

python - 将 pandas 样式应用于数据框的任意(非产品)子集

conda 使用较新版本的 glibc

蛇形临时()导致不必要的规则重新运行

Snakemake 显式处理内存不足 (OOM) 故障

python - 如何在多种不同类型的拟合分类器(如 SVM、决策树、神经网络等)上使用 AdaBoost?

python - 汉明距离Python改进