Skip to content

Dependancy Management

Charlie Bayne edited this page Mar 30, 2026 · 2 revisions

Dependency Management

To ensure reproducibility and simplify dependency management across platforms, Conduit uses the containerization features built into Snakemake. Each Snakemake rule runs inside a dedicated container, ensuring consistent environments for all steps.

All Conduit containers are hosted on Docker Hub: https://hub.docker.com/u/baynec2


Linux (Recommended)

Conduit is designed and tested on Linux. When running on Linux, use Apptainer (formerly Singularity) for container execution.

Requirements

  • Snakemake installed and accessible
  • Apptainer (≥1.1.0) available on the system

Enable containers with the --use-apptainer flag:

snakemake --configfile experiments/your_experiment/config/snakemake.yaml \
  --use-apptainer --cores 8

HPC note: Most HPC systems provide an unprivileged build of Apptainer/Singularity (no root required). This build can run and cache containers from Docker Hub but cannot build or modify containers locally. Contact your system administrator for details.

On personal Linux systems with root access, the root-enabled version of Apptainer allows building new containers directly from Docker images.


macOS

macOS is not officially supported. Apptainer does not run natively on macOS.

If you need to run Conduit on macOS for development purposes, containers can be executed via Docker Desktop. Install Docker Desktop and run without the --use-apptainer flag:

snakemake --configfile experiments/your_experiment/config/snakemake.yaml --cores 8

Note that production use cases (large reference databases, full metaproteomics datasets) are not practical on macOS.


Windows

Windows is not recommended. It may work without containers for light testing but is not a supported configuration.

If needed, containers can be executed via Docker Desktop for Windows. Install Docker Desktop and run without the --use-apptainer flag:

snakemake --configfile experiments/your_experiment/config/snakemake.yaml --cores 8

Clone this wiki locally