.. _manual-main:
=========
Snakemake
=========
.. image:: https://img.shields.io/badge/Gitpod-ready--to--code-blue?color=%23022c22
:target: https://gitpod.io/#https://github.com/snakemake/snakemake
.. image:: https://img.shields.io/conda/dn/bioconda/snakemake.svg?label=Bioconda&color=%23064e3b
:target: https://bioconda.github.io/recipes/snakemake/README.html
.. image:: https://img.shields.io/pypi/pyversions/snakemake.svg?color=%23065f46
:target: https://www.python.org
.. image:: https://img.shields.io/pypi/v/snakemake.svg?color=%23047857
:target: https://pypi.python.org/pypi/snakemake
.. image:: https://img.shields.io/github/actions/workflow/status/snakemake/snakemake/docker-publish.yml?label=docker%20container&branch=main&color=%23059669
:target: https://hub.docker.com/r/snakemake/snakemake
.. image:: https://img.shields.io/github/actions/workflow/status/snakemake/snakemake/main.yml?label=tests&color=%2310b981
:target: https://github.com/snakemake/snakemake/actions?query=branch%3Amain+workflow%3ACI
.. image:: https://img.shields.io/badge/stack-overflow-orange.svg?color=%2334d399
:target: https://stackoverflow.com/questions/tagged/snakemake
.. image:: https://img.shields.io/discord/753690260830945390?label=discord%20chat&color=%23a7f3d0
:alt: Discord
:target: https://discord.gg/NUdMtmr
.. image:: https://img.shields.io/twitter/follow/johanneskoester.svg?style=social&label=Follow&color=%236ee7b7
:target: https://twitter.com/search?l=&q=%23snakemake%20from%3Ajohanneskoester
.. image:: https://img.shields.io/github/stars/snakemake/snakemake?style=social
:alt: GitHub stars
:target: https://github.com/snakemake/snakemake/stargazers
.. .. raw:: html
The Snakemake workflow management system is a tool to create **reproducible and scalable** data analyses.
Workflows are described via a human readable, Python based language.
They can be seamlessly scaled to server, cluster, grid and cloud environments, without the need to modify the workflow definition.
Finally, Snakemake workflows can entail a description of required software, which will be automatically deployed to any execution environment.
Snakemake is **highly popular**, with `>10 new citations per week `_.
For an introduction, please visit https://snakemake.github.io.
.. _main-getting-started:
---------------
Getting started
---------------
* To get a first impression, please visit https://snakemake.github.io.
* To properly understand what Snakemake can do for you please read our `"rolling" paper `_.
* News about Snakemake are published via `Twitter `_.
* To learn Snakemake, please do the :ref:`tutorial`, and see the :ref:`FAQ `.
* **Best practices** for writing Snakemake workflows can be found :ref:`here `.
.. _main-support:
-------
Support
-------
* For releases, see :ref:`Changelog `.
* Check :ref:`frequently asked questions (FAQ) `.
* In case of **questions**, please post on `stack overflow `_.
* To **discuss** with other Snakemake users, use the `discord server `_. **Please do not post questions there. Use stack overflow for questions.**
* For **bugs and feature requests**, please use the `issue tracker `_.
* For **contributions**, visit Snakemake on `Github `_ and read the :ref:`guidelines `.
--------
Citation
--------
When using Snakemake, please cite our "rolling" paper
`Mölder, F., Jablonski, K.P., Letcher, B., Hall, M.B., Tomkins-Tinch, C.H., Sochat, V., Forster, J., Lee, S., Twardziok, S.O., Kanitz, A., Wilm, A., Holtgrewe, M., Rahmann, S., Nahnsen, S., Köster, J., 2021. Sustainable data analysis with Snakemake. F1000Res 10, 33. `_
This paper will also be regularly updated when Snakemake receives new features.
See :doc:`Citations ` for more information.
.. _main-resources:
---------
Resources
---------
`Snakemake Wrappers Repository `_
The Snakemake Wrapper Repository is a collection of reusable wrappers that allow to quickly use popular tools from Snakemake rules and workflows.
`Snakemake Workflow Catalog `_
An automatically scraped catalog of publicly available Snakemake workflows for any kind of data analysis.
`Snakemake Workflows Project `_
This project provides a collection of high quality modularized and re-usable workflows.
The provided code should also serve as a best-practices of how to build production ready workflows with Snakemake.
Everybody is invited to contribute.
`Snakemake Profiles Project `_
This project provides Snakemake configuration profiles for various execution environments.
Please consider contributing your own if it is still missing.
`Snakemake API documentation `_
The documentation of the Snakemake API for programmatic access and developement on Snakemake.
`Conda-Forge `_
Conda-Forge is a community driven distribution of Conda packages that can be used from Snakemake for creating completely reproducible workflows by defining the used software versions and providing binaries.
`Bioconda `_
Bioconda, a partner project of conda-forge, is a community driven distribution of bioinformatics-related Conda packages that can be used from Snakemake for creating completely reproducible workflows by defining the used software versions and providing binaries.
.. toctree::
:caption: Getting started
:name: getting_started
:hidden:
:maxdepth: 1
getting_started/installation
getting_started/migration
snakefiles/best_practices
tutorial/tutorial
.. toctree::
:caption: Executing workflows
:name: execution
:hidden:
:maxdepth: 1
executing/cli
executing/grouping
executing/caching
executing/interoperability
executing/monitoring
.. toctree::
:caption: Defining workflows
:name: snakefiles
:hidden:
:maxdepth: 1
snakefiles/writing_snakefiles
snakefiles/rules
snakefiles/configuration
snakefiles/modularization
snakefiles/storage
snakefiles/utils
snakefiles/deployment
snakefiles/reporting
snakefiles/testing
snakefiles/foreign_wms
.. toctree::
:caption: Project Info
:name: project-info
:hidden:
:maxdepth: 1
project_info/citations
project_info/more_resources
project_info/faq
project_info/contributing
project_info/authors
project_info/history
project_info/license