# Containerized software

Containers have become a popular way to deliver bioinformatics application. It is a well-suited item to use on our server as it provides the application in a ready to go manner. 

## Find and download containers

You can find and download containers from the following repositories, 
* https://hub.docker.com/u/biocontainers 
* https://quay.io/organization/biocontainers 

To download a container use 

    apptainer pull /tools/containers docker://<path to image>

This way, other can use the container too. Please <a href="mailto:bioinfo.mib@wur.nl">inform the admins</a> if you think others can benefit too.


Containers are piece
It is possible to use containerized software through apptainer


## Running containers

Apptainer automatically mounts $HOME, /tmp, and the current working directory. Extra directories are linked using bind mounts.

    module load apptainer/1.5.2
    apptainer exec -B /work/<user>/data:/data <my_container.sif> <command_name> --input /data

When running Apptainer, host environment variables pass through into the container unless isolated. To control runtime behavior cleanly, use these mechanisms:

    apptainer exec --cleanenv my_container.sif python script.py

or use a wrapper script:

    #!/usr/bin/env bash
    apptainer exec --cleanenv /path/to/software.sif software_bin "$@"


## Conda environments

We discourage the use of conda environments, but recognize they are sometimes needed. 
If you want to create a conda environment, please follow these rules:

- to use conda, use the available module
    (module load miniforge/26.1.1)
- environments need to be created in
    /tools/sw/container/miniforge/26.1.1/envs
to ensure availability on all compute nodes
in case of questions, as the administrators