如何在Snakemake规则中使用GitHub URL作为Wrapper及相关问题
最近我在研究Snakemake里基于Wrapper的规则定义,整理出了三种可行的方式,同时也遇到了一些棘手的问题,跟大家分享下:
三种可行的Wrapper规则定义方式
这是我目前已经掌握的三种在Snakefile中定义Wrapper规则的写法:
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"
官方文档补充说明
根据Snakemake官方文档的描述:
此外,例如在开发场景下,wrapper指令也可指向完整URL,包括使用
file://的本地绝对路径或file:.的本地相对路径。每个wrapper的示例可在Snakemake Wrapper Repository的wrapper子目录下的README文件中找到。
尚未解决的需求
不过我目前还没找到如何使用指向GitHub上非默认Snakemake wrapper仓库中wrapper目录的URL的方法——我希望能使用那些未托管在官方默认仓库里的自定义wrapper。
核心的XY问题
其实上面的需求背后是个典型的XY问题!我真正想要实现的是定义相对于Snakefile所在位置的本地wrapper,但目前Snakemake里wrapper的相对路径始终是基于workdir来解析的。这就导致在整合Snakemake项目或者使用独立的workdir时非常麻烦——这种情况下我不得不把wrapper复制到备选的workdir中,才能保证路径解析正确。
内容的提问来源于stack exchange,提问作者moritzschaefer
相关产品推荐
相关产品推荐

