Benchmarking long-read STR callers
Execute the following command.
git clone https://github.com/aryarm/str_callers
Example data for the pipeline is also available for download upon request.
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.
-
Activate snakemake via
conda
:conda activate snakemake
-
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.
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.
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.