gpt4 book ai didi

对于声明为本地的规则,snakemake 中未激活 Conda 环境

转载 作者:行者123 更新时间:2023-12-04 13:31:44 24 4
gpt4 key购买 nike

我在使用 Snakemake v5.26.1 时遇到问题,我不确定这是错误还是我做错了什么。
我有以下规则:

rule multiqc:
input:
expand('results/{project}/fastqc/{sample}/{sample}_R{idx}_fastqc.{ext}', project=PROJECT, sample=SAMPLES, idx=[1,2], ext=['html', 'zip'])
output:
html = 'results/{project}/fastqc/multiqc_report.html'
params:
out = lambda wildcards, output: os.path.dirname(output['html'])
conda:
'envs/multiqc.yaml'
shell:
'multiqc --force -o {params.out} {params.out}'
哪里 multiqc.yamlconda 的规范环境与 multiqc安装。
例如,当我使用 snakemake --profile profiles/local/ 在本地执行管道时一切都按预期工作。也是这种情况,当我使用 tibanna在云端执行代码时: snakemake --profile profiles/aws/ .到现在为止还挺好。
上面的规则很轻量级,在本地执行是有意义的,所以我有声明 localrules: all, multiqc在我的某处 Snakefile这就是问题开始的地方。在这种情况下,当我在云端执行代码时,似乎 condamultiqc.yaml 中定义的环境未自动安装或激活,我收到 command 'multiqc' not found错误。我目前用来绕过这个问题的黑客是安装 multiqc在本地,但这种解决方案很丑陋,并且会影响管道的可移植性。我怀疑我可以通过使用 singularity 来解决这个问题。图像与 multiqc已安装,但仍然最优雅的解决方案是以某种方式制作 conda: 'envs/multiqc.yaml'规则工作的一部分。
上述行为是预期的还是错误(在我的代码或 snakemake 中)?解决此问题的最佳解决方案是什么(可能使用 singularity 图像)?
提前谢谢了。

最佳答案

一些想法:

  • 要激活 conda 环境,您需要添加选项 --use-conda在蛇形中,即snakemake --use-conda ...
  • 你真的需要在自己的 conda 环境中执行 multiqc 吗?如果您可以在本地安装和运行 multiqc 而不会与其他 snakemake 规则发生冲突,我怀疑您不需要专用的环境。
  • 如果以上所有方法都失败了,我宁愿将 multiqc 作为集群的作业运行,而不是作为本地规则运行,以避免您提到的复杂解决方案。
  • 关于对于声明为本地的规则,snakemake 中未激活 Conda 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64625302/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com