Installation¶
On this page, you will find out how to install ZARP on your system.
Requirements¶
For improved reproducibility and reusability, each individual workflow step runs either inside a dedicated Conda environment or an (Apptainer) container. As a consequence, running ZARP only has very few dependencies, that need to be available on your system:
- Linux (tested with
Ubuntu 24.04
) - Conda (tested with
Conda 24.11.3
) - Optional: Apptainer (tested with
Apptainer 1.3.6
)
A few additional dependencies are installed via Conda as described further below.
Other versions, especially older ones, are not guaranteed to work!
Don't have Linux?
Please see the "How to use Docker?" instructions in the usage section.
How do I install Apptainer?
Please follow the official documentation to install Apptainer (formerly Singularity) globally and configure its permissions.
Installation steps¶
1. Clone ZARP¶
Clone the ZARP workflow repository with:
git clone https://github.com/zavolanlab/zarp.git
2. Ensure Conda is available¶
To check if you already have Conda installed on your system, type:
conda --version
If Conda is available, you should see output similar to this:
conda 24.11.3
command not found: conda
.
What's the best way to install Conda?
Conda can be installed in multiple ways. We strongly recommend using the
Miniforge distribution, as it is built around the
community-supplied conda-forge
channel that is heavily used by ZARP.
It also reduces the risk of accidentally violating Conda's licensing
restrictions by using the defaults
channel.
Please refer to the official documentation for up-to-date installation instructions.
My Conda version is not compatible
After completing Conda setup, you can install a specific Conda version with the following command:
conda install conda=24.11.3
I do not want to change my Conda version
If you already have a specific Conda version on your system that is not
compatible with ZARP, and you do not want to change it, no worries. Just
indicate a different directory when using the interactive Miniforge
installer. Then source the appropriate conda.sh
file to switch between
versions, e.g.:
source $HOME/miniconda3/etc/profile.d/conda.sh # OR
source $HOME/miniconda3_alt/etc/profile.d/conda.sh
3. Set up your ZARP environment¶
To install the remaining ZARP dependencies, run:
conda env create -f install/environment.yml
Installing development dependencies
If you would like to run tests or if you are planning to contribute to ZARP's development, run the following command instead to set up your ZARP Conda environment.
conda env create -f install/environment.dev.yml
This will ensure that all development dependencies are installed as well.
You want to run ZARP on an HPC?
When running ZARP on a High-Performance Computing cluster, you will need
to make sure that compatible versions of at least one of Conda (when using
Snakemake's --use-conda
option) and Apptainer (when using the
--use-apptainer
option) are installed and properly configured on each
machine of the cluster, including the head node. Reach out to your systems
administrator to set this up for you.
4. Activate the ZARP environment¶
Activate the Conda environment with:
conda activate zarp
Running installation tests¶
We have prepared several tests to check the integrity of the workflow and its
components. These can be found in subdirectories of the tests/
directory.
The most critical of these tests enable you to execute the entire workflow on a
set of small example input files. Note that for this and other tests to
complete successfully, additional development
dependencies need to be installed.
Execute the commands below to run the test workflow on your local machine or on your Slurm-managed HPC cluster.
Failing tests do not necessarily indicate a problem!
Our tests were developed to guard against code regression over time or as a result of proposed changes and are therefore very rigorous. In particular, even the minutest changes in outputs, even individual pixels or metadata in the produced output images, will cause a test suite to fail. However, we cannot rule out such minor changes across systems, and therefore, it is quite possible that your test runs may fail, even though the workflow is properly installed and functional. Check the logs to see whether Snakemake completed successfully. If so, it is very likely that everything is fine.
Running tests on your local machine¶
Use the following command to run each step inside a dedicated Conda environment:
bash tests/test_integration_workflow_with_conda/test.local.sh
Instead, use the following command to run each step inside an Apptainer container:
bash tests/test_integration_workflow_with_conda/test.slurm.sh
Running tests on your Slurm cluster¶
Use the following command to run each step inside a dedicated Conda environment:
bash tests/test_integration_workflow/test.local.sh
Instead, use the following command to run each step inside an Apptainer container:
bash tests/test_integration_workflow/test.slurm.sh
The Slurm tests are failing for me!
Depending on the configuration of your Slurm installation you may need to
adapt file profiles/slurm-config.json
and the arguments to options
--cores
and --jobs
in the file config.yaml
of a respective profile.
Consult the manual of your workload manager as well as the section of the
Snakemake manual dealing with profiles.