首页 > 解决方案 > 在 Snakemake 规则中使用 Github URL 进行包装

问题描述

我知道在 Snakefile 中定义基于包装器的规则的三种工作方式:

rule way1_wrapper_repository:
    wrapper:
        "0.0.8/bio/samtools_sort"
rule way2_local_relative_directory:
    wrapper:
        "local_wrappers/dir/samtools_sort"
rule way3_local_absolute_directory:
    wrapper:
        "file:///absolute/path/to/wrapper/samtools_sort"

该文档指出:

或者,例如,对于开发,包装器指令还可以指向完整的 URL,包括指向具有绝对路径 file:// 或相对路径 file: 的本地文件的 URL。可以在 Snakemake Wrapper Repository 的 wrapper 子目录中的 README 中找到每个包装器的示例。

但是,例如,我还没有找到一种方法来使用指向 github 上包装器目录的 URL(请注意,我想使用未托管在默认 snakemake 包装器存储库上的包装器)。

请注意,这对我来说是一个XY 问题!我实际上想定义一个相对于 Snakefile 的本地包装器,这仅在workdir与 Snakefile 位于同一目录时才有可能:包装器的相对路径将始终相对于 workdir 进行评估,这使得包含 snakemake 项目变得困难或使用独立的工作目录(在这种情况下,需要将包装器复制到备用工作目录)。

标签: urlwrapperrulessnakemake

解决方案


我现在尝试使用“原始”github 链接并且它有效。所以尝试类似:

rule way4_remote_github_repository:
wrapper:
    "https://raw.gtihubusercontent.com/<githubuser>/<repository>/<branch>/path/to/wrapper/directory/"

推荐阅读