如何为snakemake-executor-plugin-slurm指定要使用的conda安装
解决方案
针对你使用Snakemake 9.13.4 + Slurm插件1.4.0遇到的conda环境问题,以下是两种可行的解决思路:
方法一:自定义Slurm作业脚本模板
- 在你的profile目录
profiles/my_profile/下新建jobscript.sh文件,基于默认Slurm模板添加conda初始化步骤:
#!/bin/bash #SBATCH --account={resources.slurm_account} #SBATCH --partition={resources.slurm_partition} #SBATCH --job-name={rule}_{wildcards} #SBATCH --output={log}.out #SBATCH --error={log}.err #SBATCH --cpus-per-task={threads} #SBATCH --mem={resources.mem_mb}M # 加载shell配置文件读取miniforge3激活函数(用zsh则替换为~/.zshrc) source ~/.bashrc # 激活miniforge3 miniforge3 # 执行Snakemake作业命令 {snakemake_executable} --snakefile {snakefile} --target-jobs {target_jobs} --jobscript {jobscript} --printshellcmds --forcerun {forcerun} --ignore-incomplete --nolock --nocolor --notemp --no-hooks --use-conda
- 修改
profiles/my_profile/config.yaml,添加一行指定自定义模板:
executor: slurm jobs: 1 default-resources: slurm_account: foo slurm_partition: bar jobscript: jobscript.sh
之后直接运行原命令即可:
snakemake --profile profiles/my_profile/
方法二:通过profile配置添加预执行脚本
直接修改profiles/my_profile/config.yaml,加入预执行脚本段初始化conda环境:
executor: slurm jobs: 1 default-resources: slurm_account: foo slurm_partition: bar pre-job-script: | source ~/.bashrc miniforge3
运行命令时加上--use-conda参数:
snakemake --profile profiles/my_profile/ --use-conda
关于作业脚本模板的说明
- 查看默认Slurm模板内容:执行
snakefmt --show-template slurm命令即可 - 自定义模板只需放在你的profile目录下,或通过config.yaml的
jobscript字段指定路径
内容的提问来源于stack exchange,提问作者Michele Peresano




