snakemake-workflow-catalog
A statically generated catalog of available Snakemake workflows
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
A statically generated catalog of available Snakemake workflows
Basic Info
- Host: GitHub
- Owner: snakemake
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://snakemake.github.io/snakemake-workflow-catalog
- Size: 349 MB
Statistics
- Stars: 35
- Watchers: 6
- Forks: 11
- Open Issues: 5
- Releases: 0
Metadata Files
README.md
snakemake-workflow-catalog
A statically generated catalog of available Snakemake workflows
This repository serves as a centralized collection of workflows designed to facilitate reproducible and scalable data analyses using the Snakemake workflow management system.
Purpose
The Snakemake Workflow Catalog aims to provide a regularly updated list of high-quality workflows that can be easily reused and adapted for various data analysis tasks. By leveraging the power of Snakemake, these workflows promote:
- Reproducibility: Snakemake workflows produce consistent results, making it easier to share and validate scientific findings.
- Scalability: Snakemake workflows can be executed on various computing environments, from local machines to high-performance computing clusters and cloud services.
- Modularity: Snakemake workflows are structured to allow easy customization and extension, enabling users to adapt them to their specific needs.
Workflows
Workflows are automatically added to the Workflow Catalog. This is done by regularly searching Github repositories for matching workflow structures. The catalog includes workflows based on the following criteria.
All workflows
- The workflow is contained in a public Github repository.
- The repository has a
README.mdfile, containing the words "snakemake" and "workflow" (case insensitive). - The repository contains a workflow definition named either
Snakefileorworkflow/Snakefile. - If the repository contains a folder
rulesorworkflow/rules, that folder must at least contain one file ending on.smk. - The repository is small enough to be cloned into a Github Actions job (very large files should be handled via Git LFS, so that they can be stripped out during cloning).
- The repository is not blacklisted here.
Standardized usage workflows
In order to additionally appear in the "standardized usage" area, repositories additionally have to:
- have their main workflow definition named
workflow/Snakefile(unlike for plain inclusion (see above), which also allows justSnakefilein the root of the repository), - provide configuration instructions under
config/README.md - contain a
YAMLfile.snakemake-workflow-catalog.ymlin their root directory, which configures the usage instructions displayed by this workflow catalog.
Typical content of the .snakemake-workflow-catalog.yml file:
yaml
usage:
mandatory-flags:
desc: # describe your flags here in a few sentences
flags: # put your flags here
software-stack-deployment:
conda: true # whether pipeline works with '--sdm conda'
apptainer: true # whether pipeline works with '--sdm apptainer/singularity'
apptainer+conda: true # whether pipeline works with '--sdm conda apptainer/singularity'
report: true # whether creation of reports using 'snakemake --report report.zip' is supported
Once included in the standardized usage area you can link directly to the workflow page using the URL https://snakemake.github.io/snakemake-workflow-catalog/docs/workflows/<owner>/<repo>. Do not forget to replace the <owner> and <repo> tags at the end of the URL.
Release handling
If your workflow provides Github releases, the catalog will always just scrape the latest non-preview release. Hence, in order to update your workflow's records here, you need to release a new version on Github.
Contributing
Contributions to the Snakemake Workflow Catalog are welcome! Ideas can be discussed on the catalog's Issues page first, and contributions made through Github Pull Requests, see the next section for details.
Topics are currently predefined in the topics.json file.
Users are encouraged to add topics for their workflows by a pull request to this file, if they feel a topic is not represented.
Working with a local copy
In order to make contributions, you can set up a local copy of the catalog and test your changes.
First, fork the repository on Github:
- Go to the Snakemake Workflow Catalog repository on Github.
- Click on the "Fork" button in the top right corner (Github documentation: Forking a repository).
Then, clone the forked repository:
- Open a terminal on your local machine.
- Run
git clone https://github.com/{your-username}/snakemake-workflow-catalog.gitto clone the repository (Github documentation: Cloning a repository).
Make your changes to the catalog:
- Create a conda/mamba environment in order to work with the catalog locally.
bash
cd <path-to>/snakemake-workflow-catalog
conda env create -n snakemake-workflow-catalog -f environment.yml
conda activate snakemake-workflow-catalog
- Set required environment variables.
The variable
N_REPOScan be used to fetch data from a limited number of repos. The variableTEST_REPOcan be used to fetch only data from a single workflow. Note: Building the entire catalog from scratch will take several hours due to searching and testing thousands of Github repos.
bash
export GITHUB_TOKEN="<your-github-token>"
export OFFSET=0
export LATEST_COMMIT=1000
export N_REPOS=3
export TEST_REPO="snakemake-workflows/rna-seq-star-deseq2"
- Build the catalog data sources using the test repository.
bash
python scripts/generate-catalog.py
python scripts/cleanup-catalog.py
- Build the catalog web page using sphinx autobuild (live reload).
bash
sphinx-autobuild source/ build/
... or using the make file (static build).
bash
make html
- Run
git add .to stage your changes. - Run
git commit -m "fix: your commit message"to commit your changes. - Run
git pushto push your changes to your fork on Github.
Finally, create a pull request:
- Go to your fork on Github.
- Follow the instructions on the Github documentation: Creating a pull request.
Using workflows from the catalog
To get started with a workflow from the catalog:
- Clone the repository or download the specific workflow directory.
- Review the documentation provided with the workflow to understand its requirements and usage.
- Configure the workflow by editing the
config.ymlfiles as needed. - Execute the workflow using Snakemake.
For more detailed instructions, please refer to the documentation within each workflow directory.
License
The Snakemake Workflow Catalog is open-source and available under the MIT License. For more information and to explore the available workflows, visit https://snakemake.github.io/snakemake-workflow-catalog/.
Note: All workflows collected and presented on the Catalog are licensed under their own terms!
Owner
- Name: Snakemake
- Login: snakemake
- Kind: organization
- Website: https://snakemake.github.io
- Twitter: johanneskoester
- Repositories: 12
- Profile: https://github.com/snakemake
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this workflow catalog in your research, please cite it using the following metadata."
title: "Snakemake Workflow Catalog"
authors:
- family-names: "Koester"
given-names: "Johannes"
orcid: "https://orcid.org/0000-0001-9818-9320"
- family-names: "Jahn"
given-names: "Michael"
orcid: "https://orcid.org/0000-0002-3913-153X"
abstract: >
The Snakemake Workflow Catalog is a collection of standardized workflows
for reproducible and scalable data analysis using Snakemake. Workflows
are automatically retrieved from Github and tested for compliance.
repository-code: "https://github.com/snakemake/snakemake-workflow-catalog"
version: "1.0.0"
date-released: "2025-03-17"
keywords:
- snakemake
- workflow
- reproducibility
- data Analysis
license: "MIT"
GitHub Events
Total
- Create event: 2
- Issues event: 24
- Watch event: 5
- Delete event: 2
- Member event: 1
- Issue comment event: 58
- Push event: 242
- Pull request review event: 64
- Pull request review comment event: 49
- Pull request event: 20
Last Year
- Create event: 2
- Issues event: 24
- Watch event: 5
- Delete event: 2
- Member event: 1
- Issue comment event: 58
- Push event: 242
- Pull request review event: 64
- Pull request review comment event: 49
- Pull request event: 20
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 32
- Total pull requests: 20
- Average time to close issues: 4 months
- Average time to close pull requests: 7 days
- Total issue authors: 18
- Total pull request authors: 6
- Average comments per issue: 3.78
- Average comments per pull request: 1.85
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 13
- Pull requests: 12
- Average time to close issues: 26 days
- Average time to close pull requests: 8 days
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 1.15
- Average comments per pull request: 2.33
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- m-jahn (11)
- franciscozorrilla (2)
- cmeesters (2)
- johanneskoester (2)
- deliaBlue (2)
- rbpatt2019 (1)
- semenko (1)
- felixleopoldo (1)
- supermaxiste (1)
- AntonieV (1)
- charmoniumQ (1)
- aryarm (1)
- Redmar-van-den-Berg (1)
- sneuensc (1)
- mrvollger (1)
Pull Request Authors
- m-jahn (8)
- johanneskoester (4)
- nikostr (4)
- H-Kwon (2)
- thomasbtf (1)
- Maarten-vd-Sande (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v1 composite
- ad-m/github-push-action master composite
- mamba-org/provision-with-micromamba main composite
- actions/checkout v1 composite
- actions/github-script v5 composite
- mamba-org/provision-with-micromamba main composite
- peter-evans/create-or-update-comment v1 composite
- gitpython
- jinja2
- pygithub
- python >=3.9
- ratelimit
- snakefmt
- snakemake