V-pipe is designed with hierarchically organised data in mind:

├── patient1
│   ├── 20100113
│   └── 20110202
└── patient2
    └── 20081130

Here, we have two samples from patient 1 and one sample from patient 2. All sample names should be unique such later mixups of different timepoints can be avoided.

V-pipe’s parameters for the number of cores to use and the maximum memory is specified in the config file config.yaml, for instance:

  number_cores: 24
  leave_tmp: true

This instructs the ngshmmalign step to use 24 cores and leave the MSA temp files, which might be useful for debugging certain genomic regions.

To invoke V-pipe on the current sample set, first perform a verbose dry-run:

./vpipe -n -p

and after confirming that all targets are as you would expect them, perform the real run:

./vpipe -j 1


You can find more resources about using V-pipe on the project’s readme.


See usage for instructions regarding initial setup. We strongly encourage you to deploy it using the quick install script, as this is our preferred method.

Configure options

The config’s readme gives an introduction about configuring V-pipe. In your local installation, the file config/config.html contains an exhaustive list of all options that can be set in V-pipe’s config file config.yaml.

V-pipe as a benchmark tool

V-pipe also provides an unified benchmarking platform, by incorporating two additional modules: a read simulator and a module to evaluate the accuracy of the results.

Snakemake rules

V-Pipe uses Snakemake, a robust workflow management system, and it is possible for users to easily customize the workflow by adding or excluding rules according to their specific requirements.