Skip to content

Snk

PyPI - Version PyPI - Python Version write-the - docs Hits


Documentation: https://snk.wytamma.com

Source Code: https://github.com/Wytamma/snk


Snk (pronounced snek) is a Snakemake workflow management system. Snk allows you to install Snakemake workflows as dynamically generated Command Line Interfaces (via snk-cli). Using a workflow as a CLI increases its interoperability and allows complex workflows to be used as modular components in a larger system.

Installation

pip install snk

Basic Use

Install a workflow as a CLI

The snk install command can be use to install Snakemake workflows as CLIs. Snk can install Snakemake workflows from GitHub repos or local paths. An index of publicly available Snakemake workflows can be found on the snakemake workflow catalog.

snk install wytamma/snk-basic-pipeline

The snk install command is flexbilbe and can be used to install diverse workflows. For example, the dna-seq-gatk-variant-calling workflow (v2.1.1) as variant-calling with Snakemake v8.10.8 and pandas dependency.

snk install \
  snakemake-workflows/dna-seq-gatk-variant-calling \
  --name variant-calling \
  --snakemake 8.10.8 \
  -d pandas \
  -t v2.1.1

Successfully installed variant-calling (v2.1.1)!

Inspect the CLI

Snk will automatically create a fully featured CLI for the Snakemake workflow using snk-cli.

Note

For more details on the CLI created by snk read the snk-cli docs

variant-calling --help

cli help

View run options

Workflow configuration options are automatically generated from the snakemake config file.

variant-calling run --help

run cli help

Create a DAG

Here we use the .test resources included in the workflow to create the DAG.

variant-calling run -r .test/config -r .test/data --dag dag.pdf

run cli help

Configure

Snk will dynamically generate config options for the CLI. For example if the config.yaml file has the option fasta: null you can set this option with --fasta.

variant-calling run --fasta example.fa

You can also configure the workflow using a config file.

variant-calling config --pretty # print the config 
variant-calling config > config.yml # save the config 
variant-calling run --config config.yml # run with config 

Manage Installed Workflows

You can list installed workflows with snk list and uninstall them with snk uninstall.

snk list
Workflow Version
variant-calling v2.1.1
snk uninstall variant-calling

Successfully uninstalled variant-calling!

Documentation

Read the documentation for more information.

License

snk is distributed under the terms of the MIT license.