Я знаю три рабочих способа определить правило на основе оболочки в 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-адреса, включая URL-адреса локальных файлов с абсолютными путями file: // или относительными путями file :. Примеры для каждой оболочки можно найти в файлах README, расположенных в подкаталогах оболочки в репозитории Snakemake Wrapper.
Однако я еще не нашел способ использовать URL-адрес, указывающий, например, на каталог оболочки на github (обратите внимание, что я хочу использовать оболочки, НЕ размещенные в репозитории оболочки snakemake по умолчанию).
Обратите внимание, что это своего рода проблема XY для меня! На самом деле я хочу определить локальную оболочку относительно Snakefile, что возможно только тогда, когда workdir находится в том же каталоге, что и Snakefile: относительный путь к оболочке всегда будет оцениваться относительно рабочего каталога, который делает сложно включить проект snakemake или использовать независимый рабочий каталог (в этом случае оболочку необходимо скопировать в альтернативный рабочий каталог).