snakemake - 访问不在 bin/ 中的 conda 环境资产
snakemake - accessing conda environment assets not in bin/
我在我的工作流程中使用了一些 conda envs,其中包含有用的资产(数据、模型等),这些资产 不是 在环境 bin/ 路径中,例如在 share/ 、 opt/ 或其他下找到的特定文件。
是否有一种标准方法可以从工作流中访问这些路径?也许是一个包含环境路径的变量?否则,我发现自己使用各种 Linux 技巧来定位这些文件。像这样的东西:
rule snap:
...
conda:
snap.yaml
shell:
"""
# find env dir
env=`grep -l snap ./.snakemake/conda/*.yaml | xargs basename | sed 's/\.yaml//'`
snap ./.snakemake/conda/$env/share/HMM/X.hmm {input}
"""
关于如何处理此类案件有什么想法吗?
变量$CONDA_PREFIX
包含当前激活环境的路径。从那里应该很容易去share
、opt
等
如果这没有帮助,请尝试发布您的设置的目录树以及您想要访问的内容,因为它并不完全清楚,至少对我来说是这样。
我在我的工作流程中使用了一些 conda envs,其中包含有用的资产(数据、模型等),这些资产 不是 在环境 bin/ 路径中,例如在 share/ 、 opt/ 或其他下找到的特定文件。
是否有一种标准方法可以从工作流中访问这些路径?也许是一个包含环境路径的变量?否则,我发现自己使用各种 Linux 技巧来定位这些文件。像这样的东西:
rule snap:
...
conda:
snap.yaml
shell:
"""
# find env dir
env=`grep -l snap ./.snakemake/conda/*.yaml | xargs basename | sed 's/\.yaml//'`
snap ./.snakemake/conda/$env/share/HMM/X.hmm {input}
"""
关于如何处理此类案件有什么想法吗?
变量$CONDA_PREFIX
包含当前激活环境的路径。从那里应该很容易去share
、opt
等
如果这没有帮助,请尝试发布您的设置的目录树以及您想要访问的内容,因为它并不完全清楚,至少对我来说是这样。