Tutorial: Scalable and reproducible data analysis with Snakemake

Data analyses usually entail the application of many command line tools or scripts to transform, filter, aggregate or plot data and results. With ever increasing amounts of data being collected in science, reproducible and scalable automatic workflow management becomes increasingly important.

When
15 Mar 2017 from 9 a.m. to 15 Mar 2017 4 p.m. CET (GMT+0100)
Where
CWI, room L016
Add

Data analyses usually entail the application of many command line tools or scripts to transform, filter, aggregate or plot data and results. With ever increasing amounts of data being collected in science, reproducible and scalable automatic workflow management becomes increasingly important. Snakemake is a workflow management system, consisting of a text-based workflow specification language and a scalable execution environment, that allows the parallelized execution of workflows on workstations, compute servers and clusters without modification of the workflow definition. Thereby, a scheduling algorithm based on a multidimensional knapsack problem allows Snakemake to maximize workflow execution speed while not exceeding given constraints like the number of available processor cores, cluster nodes or auxilliary hardware like graphics cards.

Since its publication, Snakemake has been widely adopted and was used to build analysis workflows for a variety of high impact publications. With about 5000 homepage visits per month, it has a large and stable user community.

This tutorial will introduce the Snakemake workflow definition language and describe how to use the execution environment to scale workflows to compute servers and clusters while adapting to hardware specific constraints. Further, it will be shown how Snakemake helps to create reproducible analyses that can be adapted to new data with little effort.

Participation is free of charge but registration is obligatory as additional information, about the schedule and preparation of the laptops, will follow prior to the tutorial.

Requirements:
- a notebook with Linux, Mac OS X or Linux on a virtual machine
- basic programming skills in Python

For more information please contact Johannes Köster.