1. User Guide¶
1.1. Getting help¶
The Damona command-line tool is called damona. Every command exposes
its own --help flag:
damona --help
The list of available commands includes:
activate Activate a Damona environment
clean Remove orphan images or binaries
deactivate Deactivate the current environment
env List, create, or delete environments
export Export an environment to a bundle or YAML file
info Display information about an installed image
install Download and install a container image
list List available images in the registry
remove Uninstall a binary or image
search Search the registry for software
stats Display statistics about the local installation
For detailed help on any sub-command, append --help:
damona install --help
1.2. Environments¶
An environment in Damona is simply a directory under
~/.config/damona/envs/ that contains a bin/ sub-directory.
When an environment is activated, its bin/ path is prepended to your
PATH, making all installed software immediately available. All
Singularity images are shared between environments to avoid duplicating large
files on disk.
1.2.1. List environments¶
Show all environments on the system:
damona env
When starting fresh, you will see only the base environment. The base environment is reserved and cannot be deleted, but you can install software into it freely.
1.2.2. Create an environment¶
Create a new environment called TEST:
damona env --create TEST
All environments are created under ~/.config/damona/envs/. After
creation, run damona env again to confirm it appears in the list.
1.2.3. Activate and deactivate environments¶
Activating an environment appends its bin/ directory to your PATH.
Any software installed in that environment then becomes available directly
from the command line:
damona activate TEST
Verify the active environment:
damona env
The last line should read:
Your current env is 'TEST'.
Deactivate when you are done:
damona deactivate TEST
Environments behave as a Last-In-First-Out stack: calling deactivate
without an argument always removes the most recently activated environment:
damona activate base
damona activate TEST
damona deactivate # removes TEST, base remains active
To deactivate a specific environment by name:
damona activate base
damona activate TEST
damona deactivate base # removes base, TEST remains active
1.3. Software and releases¶
1.3.1. Search for available software¶
Damona ships with a built-in registry of container recipes. To list all available images:
damona search "*" --images-only
Each result shows the container name, its version, and where the image will be downloaded from.
Search for a specific tool by name:
damona search fastqc
Third-party registries – Anyone can publish containers on the web and
provide a registry.txt index file. Point Damona at that file to search
it:
damona search "*" --url https://biomics.pasteur.fr/salsa/damona/registry.txt
The above URL has a predefined alias called damona in the default
configuration, so this shorter form is equivalent:
damona search "*" --url damona
You can add your own aliases in ~/.config/damona/damona.cfg (see the
configuration section in the developer guide).
1.3.2. Download and install a container¶
Before installing, activate the environment where you want the software to live:
damona activate TEST
Then install the desired container. Specify an exact version with a colon separator:
damona install fastqc:0.11.9
To install the latest available version, omit the tag:
damona install fastqc
The image is saved to ~/.config/damona/images/ and a thin shell-wrapper
binary is created in the active environment's bin/ directory. The wrapper
looks like:
#!/bin/sh
singularity -s exec ${DAMONA_SINGULARITY_OPTIONS} \
${DAMONA_PATH}/images/fastqc_0.11.9.img fastqc ${1+"$@"}
After installation the command is immediately available:
fastqc --version
Note
The PATH change made by damona activate applies to the
current shell session only. Open a new terminal and re-activate the
environment when needed.
Install from an external registry:
damona install fastqc:0.11.9 --url https://biomics.pasteur.fr/drylab/damona/registry.txt
Or use the short alias:
damona install fastqc:0.11.9 --url damona
1.4. Working with multiple environments¶
Damona stores everything under ~/.config/damona/:
envs/– one sub-directory per environment, each containing abin/folder with wrapper scriptsimages/– Singularity image files shared across all environments
To test two versions of the same tool side-by-side:
# Create and populate the first environment
damona env --create test1
damona activate test1
damona install fastqc:0.11.9
# Switch to the second environment
damona deactivate
damona env --create test2
damona activate test2
damona install fastqc:0.11.8 --url damona
Both environments now contain their own fastqc wrapper pointing to the
appropriate image. Only one copy of each image is stored on disk.
1.5. Install binaries not listed in the registry¶
When a container developer registers a tool they list the binaries that should be installed. Occasionally a container ships additional executables that are not yet in the registry. If you know the binary name, you can install it directly:
damona install mummer --binaries show-snps
This creates a wrapper for show-snps using the mummer container without
waiting for an official registry update. If this helps you please consider
opening an issue or a pull request so the registry can be updated for
everyone.
1.6. Environmental variables¶
1.6.1. DAMONA_PATH¶
DAMONA_PATH points to the root directory where Damona stores all of its
data (environments and images). It is set automatically when you source the
Damona shell script and defaults to ~/.config/damona/.
You can point it at a different location (for example a shared network directory on a cluster):
export DAMONA_PATH=/shared/damona
1.6.2. DAMONA_SINGULARITY_OPTIONS¶
Every wrapper binary created by Damona uses this template:
singularity -s exec ${DAMONA_SINGULARITY_OPTIONS} ${DAMONA_PATH}/images/<IMAGE> <EXE> ${1+"$@"}
DAMONA_SINGULARITY_OPTIONS is passed verbatim to singularity exec and
defaults to an empty string. Use it to forward any Singularity option to all
binaries at once.
Tip – X11 display issues:
The -e flag tells Singularity to start a clean environment, which unsets
DISPLAY. If graphical tools fail, pass the display through explicitly:
export DAMONA_SINGULARITY_OPTIONS="-e --env DISPLAY=:1"
Example – Binding directories:
On HPC clusters a scratch directory such as /local/scratch may not be
visible inside the container. Bind it explicitly:
export DAMONA_SINGULARITY_OPTIONS="-B /local/scratch:/local/scratch"
Multiple options can be combined in the same string.