OVO Containers

OVO supports multiple execution environments through the use of containers. Containers provide a consistent and reproducible environment for running workflows, ensuring that all dependencies and software versions are correctly managed.

Configuring OVO to use containers

By default, OVO uses Conda to manage execution environments. You can customize the scheduler profile to run using Singularity, Apptainer, Docker, or other container platform by modifying the OVO configuration file, typically located at ~/ovo/config.yml:

schedulers:
  local:
    name: Local with Conda   # <-- Choose a descriptive name
    type: NextflowScheduler
    workdir: ./workdir
    submission_args:
      profile: conda,cpu_env # <--- Change 'conda' to 'singularity', 'apptainer', 'docker', ...
      config: ./nextflow_local.config # <--- Customize advanced Nextflow config if needed

Container types

OVO containers are defined in the ovo-containers GitHub repository.

Conda environments are defined directly in the envs directory of the OVO repository or plugin repositories like OVO promb and are automatically created by Nextflow during workflow execution.

Docker

For Docker, please build all required images using the provided docker-compose file in the ovo-containers repository:

# Clone the ovo-containers repository
git clone https://github.com/MSDLLCpapers/ovo-containers
# Navigate to cloned repo
cd ovo-containers
# Build all Docker images
docker compose build