The Snakemake Wrappers repository

https://img.shields.io/badge/snakemake-≥5.7.0-brightgreen.svg?style=flat-square https://github.com/snakemake/snakemake-wrappers/workflows/Tests/badge.svg?branch=master

The Snakemake Wrapper Repository is a collection of reusable wrappers that allow to quickly use popular tools from Snakemake rules and workflows.

Usage

The general strategy is to include a wrapper into your workflow via the wrapper directive, e.g.

rule samtools_sort:
    input:
        "mapped/{sample}.bam"
    output:
        "mapped/{sample}.sorted.bam"
    params:
        "-m 4G"
    threads: 8
    wrapper:
        "0.2.0/bio/samtools/sort"

Here, Snakemake will automatically download and use the corresponding wrapper files from https://github.com/snakemake/snakemake-wrappers/tree/0.2.0/bio/samtools/sort. Thereby, 0.2.0 can be replaced with the version tag you want to use, or a commit id. This ensures reproducibility since changes in the wrapper implementation will only be propagated to your workflow if you update that version tag.

Each wrapper defines required software packages and versions in an environment.yaml file. In combination with the --use-conda flag of Snakemake, this will be deployed automatically.

Alternatively, for example for development, the wrapper directive can also point to full URLs, including the local file://. For this to work, you need to provide the (remote) path to the directory containing the wrapper.* and environment.yaml files. For the above example, the explicit GitHub URL to specify would need to be the /raw/ version of the directory:

rule samtools_sort:
    input:
        "mapped/{sample}.bam"
    output:
        "mapped/{sample}.sorted.bam"
    params:
        "-m 4G"
    threads: 8
    wrapper:
        "https://github.com/snakemake/snakemake-wrappers/raw/0.2.0/bio/samtools/sort"

Contributing

We invite anybody to contribute to the Snakemake Wrapper Repository. If you want to contribute refer to the contributing guide.