/str_callers

Benchmarking long-read STR callers

Primary LanguagePythonMIT LicenseMIT

Snakemake

str_callers

Benchmarking long-read STR callers

download

Execute the following command.

git clone https://github.com/aryarm/str_callers

Example data for the pipeline is also available for download upon request.

setup

The pipeline is written as a Snakefile which can be executed via Snakemake. For reproduciblity, we recommend installing the version that we used (6.4.1):

conda create -n snakemake -c conda-forge --no-channel-priority 'bioconda::snakemake==6.4.1'

We highly recommend you install Snakemake via conda like this so that you can use the --use-conda flag when calling snakemake to let it automatically handle all dependencies of the pipeline. Otherwise, you must manually install the dependencies listed in the env files.

execution

  1. Activate snakemake via conda:

    conda activate snakemake
    
  2. Execute the pipeline on the example data

    Locally:

    ./run.bash &
    

Log files describing the output of the pipeline will be created within the output directory. The log file contains a basic description of the progress of each rule, while the qlog file is more detailed.

Executing the pipeline on your own data

You must modify the config.yaml file to specify paths to your data before you perform step 2 above. Currently, the pipeline is configured to run on our example data.

If this is your first time using Snakemake

Snakemake is a tool for creating and running pipelines. The contents of the pipeline are specified as a set of steps (called rules) in a special file, called a Snakefile. Each step consists of inputs, outputs, a shell command (that uses the inputs to create the outputs), and a conda environment with software dependencies for the shell command. When you execute Snakemake, it will assemble the rules into a pipeline according to each rule's inputs and outputs, along with the outputs that you request from Snakemake.

We recommend that you run snakemake --help to learn about Snakemake's options. For example, to check that the pipeline will be executed correctly before you run it, you can call Snakemake with the -n -p -r flags. This is also a good way to familiarize yourself with the steps of the pipeline and their inputs and outputs (the latter of which are inputs to the first rule in each workflow -- ie the all rule).

Note that Snakemake will not recreate output that it has already generated, unless you request it. If a job fails or is interrupted, subsequent executions of Snakemake will just pick up where it left off. This can also apply to files that you create and provide in place of the files it would have generated.

By default, the pipeline will automatically delete some files it deems unnecessary (ex: unsorted copies of a VCF). You can opt to keep these files instead by providing the --notemp flag to Snakemake when executing the pipeline.