You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SLURM集群上使用Snakemake时的Conda环境配置问题

在SLURM集群上使用Snakemake调用Conda环境的配置问题

在SLURM集群上运行Snakemake时,若要在作业脚本中使用Conda,必须在#SLURM指令后添加以下环境配置:

# Insert this after any #SLURM commands
export CONDA_ROOT=$HOME/mambaforge
. $CONDA_ROOT/etc/profile.d/conda.sh
export PATH="$CONDA_ROOT/bin:$PATH"
# but naturally before using any python scripts

当前我编写了包含多Conda环境的Snakefile示例:

rule test:
    input:
    output:
    conda:
        "example"
    resources:
    params:
    shell:

但因未配置上述环境变量,执行时出现错误:/bin/bash: conda: command not found。若在每个rule的shell段开头重复添加配置过于繁琐,请问正确的Snakemake全局配置方式是什么?


解决方案

1. 自定义SLURM作业模板(推荐)

创建Snakemake的SLURM配置目录(比如slurm_profile),包含两个文件:

  • config.yaml:指定集群调用命令和并行数
cluster: "sbatch slurm_profile/sbatch_template.sh"
jobs: 10
# 可添加默认资源配置,比如mem、time等
  • sbatch_template.sh:作业模板,嵌入Conda环境配置
#!/bin/bash
#SBATCH --job-name={rule}
#SBATCH --output={log}.out
#SBATCH --error={log}.err
# 此处添加你的SLURM资源默认配置,例如--mem=10G --time=24:00:00

# 嵌入Conda环境初始化代码
export CONDA_ROOT=$HOME/mambaforge
. $CONDA_ROOT/etc/profile.d/conda.sh
export PATH="$CONDA_ROOT/bin:$PATH"

# Snakemake自动填充的执行命令
{snakemake}

运行时调用该配置文件:

snakemake --profile slurm_profile --use-conda

所有SLURM作业脚本会自动包含Conda配置,无需在rule中重复编写。

2. 直接指定Conda可执行文件路径

在启动Snakemake时,通过环境变量指定Conda的绝对路径,跳过环境初始化步骤:

CONDA_EXE=$HOME/mambaforge/bin/conda snakemake --cluster "sbatch" --use-conda

也可以在Snakefile开头全局定义:

import os
os.environ["CONDA_EXE"] = os.path.expanduser("~/mambaforge/bin/conda")

这样Snakemake会直接调用指定的Conda可执行文件,避免conda: command not found错误。

3. 通过集群配置文件添加前置命令

创建cluster_config.yaml,定义全局前置命令:

__default__:
    pre_command: |
        export CONDA_ROOT=$HOME/mambaforge
        . $CONDA_ROOT/etc/profile.d/conda.sh
        export PATH="$CONDA_ROOT/bin:$PATH"

运行时通过--cluster-config加载该配置:

snakemake --cluster-config cluster_config.yaml --cluster "sbatch --wrap '{pre_command} && {snakemake}'" --use-conda

每个SLURM作业会先执行Conda配置,再运行任务命令。


内容的提问来源于stack exchange,提问作者zeratoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:32:33