python - 批量提交snakemake作业
问题描述
我有一个运行 python 脚本的 Snakefile,它在目录中输出许多文件。我写了下面的 Snakefile 脚本来执行这个
MODELS = ["A", "B", "C"]
SEEDS = [1, 2, 3]
rule all:
input:
expand("outputs/{model}/seed{seed}", model=MODELS, seed=SEEDS)
rule sub:
input:
{model}.py
output:
directory("outputs/{model}/seed{seed}")
run:
command = "python3 {} --seed {}".format(input, wildcards.seed)
shell(command)
每个 python 脚本文件A.py
、、B.py
和C.py
执行数小时。我希望能够使用提交作业的 sbatch 而无需等待它完成执行。
$ snakemake --cluster "sbatch --job-name=snakemake" --jobs 200 --latency-wait 1000
当我执行以下命令时,某些文件不会运行并且 Snakemake 不会终止。我尝试编写一个包含上述 snakemake 命令并执行sbatch script.sh
但未在 Snakefile 中提交作业的 bash 脚本。
有没有办法做到这一点,而无需蛇形等待 sbatch 作业完成执行?
解决方案
这不是一个完美的解决方案,但是您尝试过--immediate-submit
flag 吗?它只会将所有作业提交给 slurm,而不考虑依赖关系,也无需等待。通常,您会为 sbatch 提供一个包装器,它将 snakemake 依赖项转换为 SLURM 依赖项,但是对于像这样的简单工作流程(即,只运行一个规则多次),您可能会在没有它的情况下侥幸逃脱。
推荐阅读
- amazon-web-services - Cloudfront 未正确重定向到 https 和子域
- python - 比较嵌套字典中的多个键
- python - 在 Keras 中嵌入层后理解密集层
- windows - ARSS 返回错误“当前不支持此 WAVE 文件格式”
- c - 如何在 C 中获取当前时间与时区更改的匹配
- c# - 如果我在没有括号的情况下调用函数,为什么我在 Excel DNA 中的用户定义的 excel 函数会返回随机数?
- json - 带有 json-server 的 Angular 发布实体,没有 ID
- python - 将字典中的单个条目转换为数据框,其中键是列
- r - R 包在批处理模式下不可用
- java - 如何在列表视图中的选定列表项上设置自定义默认铃声?