Skip to main content

Snakebids

Tests codecov Documentation Status Version Python versions Bioconda DOI License: MIT

Snakebids is a Python package that extends Snakemake, enabling users to create reproducible, scalable pipelines for processing neuroimaging data in the BIDS format. Snakebids workflows expose a CLI that conforms to the BIDS App guidelines.

Features

Snakebids includes all of the features of Snakemake, including flexible configuration, parallel execution, and Docker/Singularity support, plus:

  • Built-in support for BIDS datasets: Seamless workflow functionality with a wide range of BIDS datasets, accommodating various levels of complexity.
  • BIDS App Creation: Provide command-line invocations of your workflow following BIDS App guidelines, ensuring reproducibility and enhancing accessibility of your workflow.
  • BIDS Path Construction: Easy, flexible construction of valid BIDS paths following BIDS guiding principles, promoting data organization and sharing.
  • Plugin System: Extend the functionality of Snakebids by creating and using plugins to meet your workflow's needs.
  • Pybids Querying: Leverages Pybids to efficiently retrieve specific data required.

Installation

Snakebids can be installed using pip:

pip install snakebids

Or with conda/mamba using the bioconda channel:

conda install -c conda-forge -c bioconda snakebids
mamba install -c conda-forge -c bioconda snakebids

Usage

To create and run a Snakebids workflow, you need to:

  1. Create a Snakefile: Define the steps of your workflow, including input / output files, processing rules, and dependencies
  2. Create a configuration file: Customize workflow behaviour using a YAML configuration file. Specify input / output directories and custom workflow parameters.
  3. Run the pipeline: Execute the Snakebids pipeline by invoking the BIDS App CLI or via Snakemake executable.

For detailed instructions and examples, please refer to the documentation.

Contributing

Snakebids is an open-source project, and contributions are welcome! If you have any bug reports, feature requests, or improvements, please submit them to the issues page.

To contribute, first clone the Github repository.

git clone https://github.com/khanlab/snakebids
cd snakebids

Snakebids dependencies are managed with uv. This can be installed with their standalone installer:

curl -LsSf https://astral.sh/uv/install.sh | sh

Before coding, run the following command to setup our pre-commit hooks:

uv run poe setup

These check the code against ruff and pyright. Be sure they both pass before making a PR.

To check code quality, use:

uv run poe quality

Tests are done with pytest and can be run via:

uv run poe test

License

Snakebids is distributed under the MIT License.

Acknowledgements

Snakebids extends the Snakemake workflow management system and follows the guidelines outlined by the BIDS specification.

Relevant papers

  • Mölder F, Jablonski KP, Letcher B et al. Sustainable data analysis with Snakemake [version 2; peer review: 2 approved]. F1000Research. 2021. doi: 10.12688/f1000research.29032.2

Metadata

Release files for snakebids 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snakebids 0.16.0
File Size Uploaded Provenance Actions
snakebids-0.16.0.tar.gz 426.5 kB Without provenance Details for snakebids-0.16.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for snakebids 0.16.0
File Interpreter ABI Platform Actions
snakebids-0.16.0-py3-none-any.whl Python 3 none any Details for snakebids-0.16.0-py3-none-any.whl

Total release size: 546.3 kB

Release files / snakebids-0.16.0.tar.gz

Download URL snakebids-0.16.0.tar.gz
Size 426.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0d23780a3c9fe6d81253fca96b11ae6101b8772ddbb66b5551b4b1aafa636fc7
BLAKE2b-256 checksum
How to use checksums
a9283432340c99fa411c327ba40020276781f070c6b7f1bca43614981353d11f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Release files / snakebids-0.16.0-py3-none-any.whl

Download URL snakebids-0.16.0-py3-none-any.whl
Size 119.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb43eb27d6e94aa258fd9d8be31abea42f7297abd591ffccd5b4687d6ee1d07b
BLAKE2b-256 checksum
How to use checksums
7320902da64185e946e6b54dd44a1e2b397ef77772dea1bde0dbbb2e327e83f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Security for snakebids 0.16.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.16.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page