Snakemake

Snakemake type access

  • Operating System:

  • Terminal:

  • Shell:

  • Editor:

  • Package Manager:

  • Programming Language:

  • Database:

Snakemake type access

Snakemake type access

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.

For more information, check here.

Select input parameters

The app has two mandatory parameters:

  • Input folder: it mounts the folder containing source code and input files.

  • Snakefile: it selects the principal Snakefile file with the workflow instructions. The Snakefile is located inside the input folder and must have a unique name (this is relevant in case there are multiple Snakefile files linked together).

Install dependencies

Software dependencies can be installed inside the application container using the parameter: Additional dependencies. The list of dependencies can be specified either via a text file (.txt) or a YAML file (*.yml/*.yaml). The installation is done via the Conda command line package and environment manager. Alternatively, it is possible to load a Bash script (*.sh) with the list of shell commands to be used for the installation. The example below shows three equivalent ways to install dependencies:

bwa==0.7.17
samtools==1.6
java-jdk==7.0.91
bedtools==2.29.2
PyYAML==5.1.2
multiqc==1.8
name: base
channels:
  - bioconda
  - conda-forge
  - defaults

dependencies:
  - bioconda::bwa=0.7.17
  - bioconda::samtools=1.6
  - bioconda::java-jdk=7.0.91
  - bioconda::bedtools=2.29.2
  - pip:
    - PyYAML==5.1.2
    - multiqc==1.8
#!/usr/bin/env bash

set -eux

conda install -y -n base bwa=0.7.17 samtools=1.6 java-jdk=7.0.91 bedtools=2.29.2
pip install PyYAML==5.1.2 multiqc==1.8

The user can also install the required software dependencies via Conda by specifying the path(s) to the configuration YAML file(s) directly in the Snakefile. In this case the user must use the option --use-conda. For more about how to manage Conda environments in Snakemake, check the official documentation.

Interactive mode

The Interactive mode parameter is used to start an interactive job session where the user can open a terminal window from the job progress page and execute shell commands.