Snk

Snk: A Snakemake CLI and Workflow Management System - Published in JOSS (2024)

https://github.com/wytamma/snk

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    2 of 6 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

Snakemake workflow management system and CLI generation tool

Basic Info
  • Host: GitHub
  • Owner: Wytamma
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: https://snk.wytamma.com
  • Size: 1.61 MB
Statistics
  • Stars: 59
  • Watchers: 3
  • Forks: 3
  • Open Issues: 8
  • Releases: 63
Created about 3 years ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

Snk

PyPI - Version PyPI - Python Version write-the - docs status


Documentation: https://snk.wytamma.com

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

Paper: https://joss.theoj.org/papers/10.21105/joss.07410


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

From bioconda: console conda create -n snk bioconda::snk From PyPI: console 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.

bash snk install wytamma/snk-basic-pipeline Successfully installed snk-basic-pipeline (ff034f1b)!

The snk install command is flexible 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 and NumPy dependency. An index of publicly available Snakemake workflows can be found on the snakemake workflow catalog.

snk install \ snakemake-workflows/dna-seq-gatk-variant-calling \ --name variant-calling \ --snakemake 8.10.8 \ -d pandas==1.5.3 \ -d numpy==1.26.4 \ -t v2.1.1 Successfully installed variant-calling (v2.1.1)!

Manage Installed Workflows

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

bash snk list | Workflow | Version | | --- | --- | | snk-basic-pipeline | ff034f1b | | variant-calling | v2.1.1 |

bash snk uninstall snk-basic-pipeline Successfully uninstalled snk-basic-pipeline!

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 (requires graphviz).

bash 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 samples: config/samples.tsv you can set this option with the --samples flag.

bash variant-calling run --samples new.tsv

You can also configure the workflow using a config file.

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

Documentation

Read the documentation for more information.

License

snk is distributed under the terms of the MIT license.

Citation

If you use snk in an academic setting then please cite the following article:

  • Wirth, Wytamma, Simon Mutch, and Robert Turnbull. “Snk: A Snakemake CLI and Workflow Management System.” Journal of Open Source Software 9, no. 103 (2024): 7410. DOI: 10.21105/joss.07410.

In BibTeX format:

@article{Wirth2024, doi = {10.21105/joss.07410}, year = {2024}, publisher = {The Open Journal}, volume = {9}, number = {103}, pages = {7410}, author = {Wytamma Wirth and Simon Mutch and Robert Turnbull}, title = {Snk: A Snakemake CLI and Workflow Management System}, journal = {Journal of Open Source Software} }

Owner

  • Name: Wytamma Wirth
  • Login: Wytamma
  • Kind: user
  • Location: Australia

Technically a biologist

JOSS Publication

Snk: A Snakemake CLI and Workflow Management System
Published
November 25, 2024
Volume 9, Issue 103, Page 7410
Authors
Wytamma Wirth ORCID
Peter Doherty Institute for Infection and Immunity, University of Melbourne, Australia
Simon Mutch ORCID
Melbourne Data Analytics Platform, University of Melbourne, Melbourne 3010, Australia
Robert Turnbull ORCID
Melbourne Data Analytics Platform, University of Melbourne, Melbourne 3010, Australia
Editor
Daniel S. Katz ORCID
Tags
Snakemake Workflow Bioinformatics Reproducibility Command Line Interface

GitHub Events

Total
  • Create event: 7
  • Release event: 3
  • Issues event: 24
  • Watch event: 26
  • Delete event: 2
  • Issue comment event: 23
  • Push event: 65
  • Pull request event: 14
  • Fork event: 3
Last Year
  • Create event: 7
  • Release event: 3
  • Issues event: 24
  • Watch event: 26
  • Delete event: 2
  • Issue comment event: 23
  • Push event: 65
  • Pull request event: 14
  • Fork event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 551
  • Total Committers: 6
  • Avg Commits per committer: 91.833
  • Development Distribution Score (DDS): 0.025
Past Year
  • Commits: 87
  • Committers: 5
  • Avg Commits per committer: 17.4
  • Development Distribution Score (DDS): 0.149
Top Committers
Name Email Commits
Wytamma Wirth w****h@m****m 537
Robert Turnbull r****l@u****u 7
John Huddleston h****j@g****m 3
Daniel S. Katz d****z@i****g 2
Katherine Eaton k****n@g****m 1
Robert Turnbull r****l@r****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 83
  • Total pull requests: 16
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 17 hours
  • Total issue authors: 13
  • Total pull request authors: 5
  • Average comments per issue: 1.08
  • Average comments per pull request: 0.31
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 16
  • Pull requests: 7
  • Average time to close issues: 13 days
  • Average time to close pull requests: 1 day
  • Issue authors: 6
  • Pull request authors: 4
  • Average comments per issue: 1.44
  • Average comments per pull request: 0.29
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Wytamma (63)
  • huddlej (5)
  • cmeesters (3)
  • beardymcjohnface (2)
  • ammaraziz (1)
  • johnne (1)
  • Andyargueasae (1)
  • lerminin (1)
  • Kobie-Kirven (1)
  • ConnorChato (1)
Pull Request Authors
  • Wytamma (15)
  • huddlej (4)
  • rbturnbull (2)
  • danielskatz (2)
  • ktmeaton (1)
Top Labels
Issue Labels
enhancement (9) bug (9) publication (4) documentation (2) help wanted (1) priority:high (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 195 last-month
  • Total dependent packages: 5
  • Total dependent repositories: 1
  • Total versions: 77
  • Total maintainers: 1
pypi.org: snk
  • Versions: 77
  • Dependent Packages: 5
  • Dependent Repositories: 1
  • Downloads: 195 Last month
Rankings
Dependent packages count: 1.8%
Downloads: 10.1%
Average: 14.1%
Stargazers count: 14.2%
Dependent repos count: 21.8%
Forks count: 22.7%
Maintainers (1)
Last synced: 6 months ago