Documentation Status

Snakemake + BIDS

This package allows you to build BIDS Apps using Snakemake. It offers:

  • Flexible data grabbing with PyBIDS, configurable solely by config file entries

  • Helper function for creating BIDS paths inside Snakemake workflows/rules

  • Command-line invocation of snakemake workflows with BIDS App compliance

  • Configurable argument parsing specified using the Snakemake workflow config

  • Execution either as command-line BIDS apps or via snakemake executable


Clone the git repository. Snakebids dependencies are managed with Poetry, which you’ll need installed on your machine. You can find instructions on the poetry website. Then, setup the development environment with the following commands:

poetry install
poetry run poe setup

Snakebids uses poethepoet as a task runner. You can see what commands are available by running:

poetry run poe

If you wish, you can also run poe [[command]] directly by installing poethepoet on your system. Follow the install instructions at the link above.

Tests are done with pytest and can be run via:

poetry run pytest

Snakebids uses pre-commit hooks (installed via the poe setup command above) to lint and format code (we use black, isort, pylint and flake8). By default, these hooks are run on every commit. Please be sure they all pass before making a PR.