DAMONA
######
.. image:: https://badge.fury.io/py/damona.svg
:target: https://pypi.python.org/pypi/damona
.. image:: https://github.com/cokelaer/damona/actions/workflows/main.yml/badge.svg
:target: https://github.com/cokelaer/damona/actions/workflows/main.yml
.. image:: https://coveralls.io/repos/github/cokelaer/damona/badge.svg?branch=master
:target: https://coveralls.io/github/cokelaer/damona?branch=master
.. image:: http://readthedocs.org/projects/damona/badge/?version=latest
:target: http://damona.readthedocs.org/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://zenodo.org/badge/282275608.svg
:target: https://zenodo.org/badge/latestdoi/282275608
.. image:: https://static.pepy.tech/badge/damona
:target: https://pepy.tech/project/damona
.. image:: https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C3.10-blue.svg
:target: https://pypi.python.org/pypi/sequana
:alt: Python 3.8 | 3.9 | 3.10 | 3.11
.. image:: https://img.shields.io/github/issues/cokelaer/damona.svg
:target: https://github.com/cokelaer/damona/issues
:alt: GitHub Issues
:Python version: Python 3.8, 3.9, 3.10
:Source: See `http://github.com/cokelaer/damona <https://github.com/cokelaer/damona/>`__.
:Issues: Please fill a report on `github <https://github.com/cokelaer/damona/issues>`__
:Platform: This is currently only available for Linux distribution with zsh/fish/bash shells (contributions are welcome to port the tool on other platforms/shells)
Overview
==========
.. image:: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/damona_logo.png
:target: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/damona_logo.png
:align: right
:alt: logo
:width: 300px
Damona is a singularity environment manager.
Damona started as a small collections of singularity recipes to help installing third-party tools for
`Sequana NGS pipelines <https://sequana.readthedocs.io>`_.
Damona is now used in production to create reproducible environments where singularity images and their associated binaries are installed altogether.
In a nutshell, Damona combines the logic of Conda environments with the
reproducibility of singularity containers. We believe that it could be useful for
other projects and therefore decided to release it as an independent tool.
* As of Aug. 2024, **Damona** contains 87 containers (136 versions), which corresponds to 468 unique binaries.
* As of Oct. 2024, **Damona** contains 104 containers (155 versions), which corresponds to 514 unique binaries.
Installation
=============
Since **Damona** relies on **apptainer** (a.k.a. singularity), you must install `Apptainer <https://apptainer.org/docs/admin/main/installation.html>`_ to make use of **Damona**. This is the egg and chicken paradox. To get reproducible container with apptainer, at some point you need to install it. That the first
of the two software that you will need to install. Instructions
are on `singularity web site <https://sylabs.io/guides/3.6/user-guide/>`_.
If you are familiar with conda, I believe you can do::
conda install apptainer
I personally use the version available on my Fedora/Linux platform. Then install **Damona** using **pip** for Python::
pip install damona
The first time, you use **Damona**, you need to type::
damona
This will initiate the tool with a config file in your HOME/.config/damona directory.
Depending on your shell, you will be instructed to source a shell script. To make it persistent, you will need to update an environment file. For instance, under **bash** shell, add these lines in your .bashrc::
if [ ! -f "~/.config/damona/damona.sh" ] ; then
source ~/.config/damona/damona.sh
fi
Fish shell users should add the following code in their ~/.config/fish/config.fish file::
source ~/.config/damona/damona.fish
Zsh users should add the following code in their ~/.config/fish/config.fish file::
source ~/.config/damona/damona.zsh
Then, **open a new shell** and type **damona** again. You should see an help message:
.. image:: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/_static/cli.png
Quick Start
===========
**Damona** needs environments to work with. First, let us *create* one, which is called TEST::
damona create TEST
Second, we need to *activate* it. Subsequent insallation will happen in this environment unless you open a new shell, or deactivate this environment::
damona activate TEST
From there, we can install some binaries/images::
damona install fastqc:0.11.9
That's it. Time to test. Type **fastqc**. This should open a graphical interface.
To rename this TEST environment, you may use::
damona rename TEST --new-name prod
or delete it::
damona delete prod
See more examples hereafter or in the user guide on https://damona.readthedocs.io
Motivation
==========
As stated on their website, `Conda <https:/docs.conda.io/en/latest>`_ is
an open source **package** management system
and **environment** management system.
Conda provides pre-compiled releases of software; they can be installed in
different local environments that do not interfer with your system. This has
great advantages for developers. For example, you can install a pre-compiled
libraries in a minute instead of trying to compile it yourself including all
dependencies. Different communities have emerged using this
framework. One of them is `Bioconda <https://bioconda.github.io>`_, which is dedicated to bioinformatics.
Another great tool that emerged in the last years is
`Singularity <https://sylabs.io/docs>`_. Singularity containers can be used
to package entire scientific workflows,
software and libraries, and even data. It is a simple file that can be shared
between environments and guarantee exectution and reproducibility.
Originally, Conda provided pre-compiled version of a software. Nowadays, it also provides
a docker and a singularity image of the tool. On the other side, Singularity can include an
entire conda environment. As you can see everything is there to build reproducible tools and
environment.
Now, what about a software in development that depends on third-party packages ?
You would create a conda environment and starts installing the required packages.
Quickly, you will install another package that will break your environment due
to unresolved conlicts; this is not common but it happens. In the worst case
scenario, the environment is broken. In facilities where users depends on you,
it can be quite stresful and time-consuming to maintain several such
environments. This is why we have moved little by little to a very light conda
environment where known-to-cause-problem packages have been shipped into
singularity containers. This means we have to create aliases to those
singularities. The singularities can be simple executable containers or full
environment containers with many executables inside. In both cases, one need to
manage those containers for different users, pipelines, versions etc. This
started to be cumbersome to have containers in different places and update
script that generate the aliases to those executables.
That's where **damona** started: we wanted to combine the conda-like environment
framework to manage our singularity containers more easily.
Although **Damona** was started with the `Sequana projet <https://sequana.readthedocs.io>`_,
**Damona** may be useful for others developers who wish to have a quick and easy
solution for their users when they need to install third-party libraries.
Before showing real-case examples, let us install the software itself and
understand the details.
Tutorial
============
The **Damona** standalone is called **damona**. It has a documentation that should suffice for most users.
The main documentation is obtained using::
damona --help
where you will see the list of **Damona** commands (may be different with time)::
activate Activate a damona environment.
clean Remove orphan images and binaries from all environments.
create Create a new environment
deactivate Deactivate the current Damona environment.
delete Remove an environment
env List all environemnts with some stats.
export Create a bundle of a given environment.
info Print information about a given environment.
install Download and install an image and its binaries.
list List all packages that can be installed
remove Remove binaries or image from an environment.
rename Rename an existing environment
search Search for a container or binary.
stats Get information about Damona images and binaries
To get help for the *install* command, type::
damona install --help
1. *list* available environments
--------------------------------
By default you have an environment called **base**. Unlike the **base** environment found in **conda**, it is not
essential and may be altered. However, it cannot be removed or created. You can check the list of environments using::
damona env
2. *create* environments
------------------------
All environments are stored in *~/.config/damona/envs/*. You can create a new one as follows::
damona create TEST
There, you have a *bin* directory where binaries are going to be installed.
You can check that it has been created::
damona env
Note the last line telling you that::
Your current env is 'TEST'.
3. activate and deactivate environments
----------------------------------------
In order to install new binaries or software package, you must activate an environment. You may activate several but the last one is the *active* one. Let us activate the *TEST* environment::
damona activate TEST
Check that it is active using::
damona env
and look at the last line. It should look like::
Your current env is 'TEST'.
What is going on when you activate an environment called TEST ? Simple: we append the directory ~/.config/damona/envs/TEST/bin to your PATH where binaries are searched for. This directory is removed when you use the *deactivate* command.
::
damona deactivate TEST
damona env
should remove the TEST environment from your PATH. You may activate several and deactivate them. In such case, the
environments behave as a Last In First Out principle::
damona activate base
damona activate TEST
damona deactivate
Removes the last activated environments. While this set of commands is more specific::
damona activate base
damona activate TEST
damona deactivate base
and keep the TEST environment only in your PATH.
4. **install** a software
--------------------------
Let us now consider that the TEST environment is active.
Damona provides software that may have several releases. Each software/release comes with binaries that will be
installed together with the underlying singularity image.::
damona install fastqc:0.11.9
Here, the singularity image corresponding to the release 0.11.9 of the **fastqc** software is downloaded. Then, binaries registered in this release are installed (here the **fastqc** binary only).
All images are stored in *~/.config/damona/images* and are shared between environments.
5. Get **info** about installed images and binaries
----------------------------------------------------
You can get the binaries installed in an environment (and the images used by
them) using the **info** command::
damona info TEST
6. Search the registry
------------------------
You can search for a binary using::
damona search PATTERN
External registry can be set-up. For instance, a damona registry is accessible
as follows (for demonstration)::
damona search fastqc --url damona
Where *damona* is an alias defined in the .config/damona/damona.cfg that
is set to https://biomics.pasteur.fr/drylab/damona/registry.txt
You may retrieve images from a website where a registry exists (see the developer
guide to create a registry yourself).
7. combine two different environments
--------------------------------------
In damona, you can have sereral environments in parallel and later activate the
one you wish to use. Let us create a new one::
damone create test1
and check that you now have one more environment::
damona env
We want to create an alias to the previously downloaded image of fastqc tool but
in the *test1* environment. First we activate the newly create environment::
damona activate test1
then, we install the container::
damona install fastqc:0.11.9
This will not download the image again. It will just create a binary in the
~/.config/damona/envs/test1/bin directory.
you can combine this new environment with the base one::
damona activate base
If you are interested to know more, please see the User Guide and Developer
guide here below.
Contributors
============
Maintaining Sequana would not have been possible without users and contributors.
Each contribution has been an encouragement to pursue this project. Thanks to all:
.. image:: https://contrib.rocks/image?repo=cokelaer/damona
:target: https://github.com/cokelaer/damona/graphs/contributors
Changelog
=========
From version 0.10 onwards, we will not mention the new software and their versions
but only changes made to the code itself.
========= ========================================================================
Version Description
========= ========================================================================
0.14.3 * ADDED pecat 0.0.3, necat 0.0.1, sequana_coverage 0.18
* ADDED: bcftools 1.16, khmer 2.1.1 tRNAscan_SE 2.0.12
0.14.2 * ADDED: AdapterRemoval, bbmap 39.01, dsrc 2.0.2, lima 2.9.0,
necat 0.0.1
0.14.1 * ADDED: ragtag 2.1.0, orthofinder 2.5.5, mcl , liftoff 1.6.3
* Message if version is outdated
0.14 * ADDED: ir v2.8.0, vadr v1.6.4, seaview v5.0.5, repeatmasker 4.0.8
bandage 0.8.1, rnammer 1.2, miniasm 0.3.0, hmmer 2.3.2 and 3.3.2
infernal 1.1.5
* NEW: progress bar for upload
* CHANGES. fixed sandbox.zenodo upload
* CHANGES: damona search with container sizes and recommendation
0.13 * Fix insallation of a registered software given a dockerhub link
* Fix requests limits on zenodo (for the stats)
* remove URLs section in config (will remove this feature)
* handle docker:// link properly to pull image from registry
0.12.3 * ADDED dustmasker 1.0.0
* update art with 2.1.8, 2.3.7, 2.5.8 versions
* ADDED mosdepth 0.3.8
* ADDED delly 1.2.6
* UPDATED micromamba 1.5.8
0.12.2 * ADDED datasets
0.12.1 * ADDED pypolca, sratoolkit
0.12.0 * CORE development: rename zenodo-upload subcommand into upload
* UPDATE rtools to v1.3.0 to include limma package
0.11.1 * ADD pbsim.
* UPDATE hifiasm
0.11.0 * add precommit, update to use pyproject
0.10.1 * Fix the get_stats_software wrt new zenodo API
0.10.0 * ADD zsh support
* UPDATE flye 2.9.1
* ADD nanopolish
* UPDATE remove nanopolish from sequana_tools binaries
0.9.1 * ADD hmmer 3.2.2
* ADD trinotate 4.0.1
* ADD transdecode 5.7.0
* ADD trinity 2.15.1
* UPDATE bioconvert 1.1.0
* update bowtie2 2.5.1
0.9.0 * refactorise the command 'env' by splitting into dedicated subcommands
create, delete, rename. add progress bar when downloading container
* NEW micromamba image to work as a localimage
* NEW sequana_minimal package to hold common tools (bwa, samtools,
kraken, etc)
* NEW ivarm pangolin, nextclade, subread, mafft packages
* UPDATE fastp to 0.23.3, gffread to 0.12.7 (3 times lighter).
* UPDATE sequana_tools to use micromamba (30% lighter)
0.8.4 * fix damona stats command to return unique binaries
* more recipes and version (e.g. fastqc 0.12.1, graphviz update, etc)
0.8.3 * create registry specifically for the sandbox (for testing)
* add damona community in the uploads
* add pbbam, bioconvert, busco, canu, ccs
* add polypolish, samtools 1.16.1, sequana 0.14.6, flye 2.9, canu 2.1.1
circlator 1.5.5, hifiasm
0.8.2 * add idr, samtools, homer, bamtools, bedtools, sequana_denovo
* add seqkit recipe and container
* add shustring
0.8.1 * Include ability to interact with biocontainers by allowing retrieval
of all biocontainers docker images using this syntax:
'damona install biocontainers/xx:1.2.3' Note that although 9000
containers are available, in practice, only about 1000 dockers are
on dockerhub, which is already nice :-)
*
0.8.0 * Fix regression to install a software with its version
0.7.1 * Implement the fish shell
* add command "damona list"
* rename recipes/ directory into software/ and created a new library/
directory for images used as library, that are not installed.
0.7.0 * Check that singularity is installed
* implement the remove command
https://github.com/cokelaer/damona/issues/15
* more recipes cleanup (https://github.com/cokelaer/damona/issues/12)
* removed damona recipes (pure python package)
* cleanup all recipes
* add zenodo stats (for admin)
0.6.0 * add ability to upload images on zenodo. No need for external
repositories.
* ability to add/delete a software from different images
* implement --help for the activate/deactivate (non trivial)
* add --rename option in 'damona env'
* 'base' environment is now at the same level as other environments
* better bash script; no need for DAMONA_EXE variable anymore.
0.5.3 * Fixing config/shell
0.5.2 * add missing shell package
0.5.1 * add DAMONA_SINGULARITY_OPTIONS env variable in the binary
* Fix the way binaries are found in the releases.
* new recipes: rtools
* new releases: sequana_tools_0.10.0
* Fix shell script to handle DAMONA_EXE variable
0.5.0 * Major refactoring.
- Simplification of the registries (dropping notion of exe/set
class
- Main script should now be fully functional with functional
activation/deactivation.
- New command to build images from local recipes or dockerhub
entries.
- Install command can now install local container.
- DAMONA_PATH can be set to install damona images/binaries
anywhere, not just in local home.
- check md5 of images to not download/copy again
0.4.3 * Implement damona activate/deactivate
0.4.2 * Fix typo in the creation of aliases for 'set' containers
0.4.1 * implemented aliases for the --from-url option stored in a
damona.cfg file
0.4.0 * implemented the 'env' and 'activate' command
* ability to setup an external registry on any https and retrieve
registry from there to download external images
0.3.X * add gffread, rnadiff recipes
0.3.0 * A stable version with documentation and >95% coverage read-yto-use
0.2.3 * add new recipes (rnadiff)
0.2.2 * Download latest if no version provided
* include *build* command to build image locally
0.2.1 fixed manifest
0.2.0 first working version of damona to pull image locally with binaries
0.1.1 small update to fix RTD, travis, coveralls
0.1 first release to test feasibility of the project
========= ========================================================================
Raw data
{
"_id": null,
"home_page": "https://github.com/cokelaer/damona",
"name": "damona",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "snakemake, sequana, RNAseq, RNADiff, differential analysis",
"author": "Thomas Cokelaer",
"author_email": "thomas.cokelaer@pasteur.fr",
"download_url": "https://files.pythonhosted.org/packages/54/17/e143d1cb198e20569f42763262988b9399526268196b31a3641087a2deb6/damona-0.14.3.tar.gz",
"platform": null,
"description": "DAMONA\n######\n\n\n.. image:: https://badge.fury.io/py/damona.svg\n :target: https://pypi.python.org/pypi/damona\n\n.. image:: https://github.com/cokelaer/damona/actions/workflows/main.yml/badge.svg\n :target: https://github.com/cokelaer/damona/actions/workflows/main.yml\n\n.. image:: https://coveralls.io/repos/github/cokelaer/damona/badge.svg?branch=master\n :target: https://coveralls.io/github/cokelaer/damona?branch=master\n\n.. image:: http://readthedocs.org/projects/damona/badge/?version=latest\n :target: http://damona.readthedocs.org/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://zenodo.org/badge/282275608.svg\n :target: https://zenodo.org/badge/latestdoi/282275608\n\n.. image:: https://static.pepy.tech/badge/damona\n :target: https://pepy.tech/project/damona\n\n\n.. image:: https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C3.10-blue.svg\n :target: https://pypi.python.org/pypi/sequana\n :alt: Python 3.8 | 3.9 | 3.10 | 3.11 \n\n.. image:: https://img.shields.io/github/issues/cokelaer/damona.svg\n :target: https://github.com/cokelaer/damona/issues\n :alt: GitHub Issues\n\n:Python version: Python 3.8, 3.9, 3.10\n:Source: See `http://github.com/cokelaer/damona <https://github.com/cokelaer/damona/>`__.\n:Issues: Please fill a report on `github <https://github.com/cokelaer/damona/issues>`__\n:Platform: This is currently only available for Linux distribution with zsh/fish/bash shells (contributions are welcome to port the tool on other platforms/shells)\n\nOverview\n==========\n\n\n.. image:: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/damona_logo.png\n :target: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/damona_logo.png\n :align: right\n :alt: logo\n :width: 300px\n\n\nDamona is a singularity environment manager.\n\nDamona started as a small collections of singularity recipes to help installing third-party tools for\n`Sequana NGS pipelines <https://sequana.readthedocs.io>`_. \n\n\nDamona is now used in production to create reproducible environments where singularity images and their associated binaries are installed altogether.\n\n\n\nIn a nutshell, Damona combines the logic of Conda environments with the\nreproducibility of singularity containers. We believe that it could be useful for\nother projects and therefore decided to release it as an independent tool.\n\n* As of Aug. 2024, **Damona** contains 87 containers (136 versions), which corresponds to 468 unique binaries.\n* As of Oct. 2024, **Damona** contains 104 containers (155 versions), which corresponds to 514 unique binaries.\n\nInstallation\n=============\n\nSince **Damona** relies on **apptainer** (a.k.a. singularity), you must install `Apptainer <https://apptainer.org/docs/admin/main/installation.html>`_ to make use of **Damona**. This is the egg and chicken paradox. To get reproducible container with apptainer, at some point you need to install it. That the first\nof the two software that you will need to install. Instructions\nare on `singularity web site <https://sylabs.io/guides/3.6/user-guide/>`_. \n\nIf you are familiar with conda, I believe you can do::\n\n conda install apptainer\n\nI personally use the version available on my Fedora/Linux platform. Then install **Damona** using **pip** for Python::\n\n pip install damona\n\nThe first time, you use **Damona**, you need to type::\n\n damona\n\nThis will initiate the tool with a config file in your HOME/.config/damona directory.\n\nDepending on your shell, you will be instructed to source a shell script. To make it persistent, you will need to update an environment file. For instance, under **bash** shell, add these lines in your .bashrc::\n\n if [ ! -f \"~/.config/damona/damona.sh\" ] ; then\n source ~/.config/damona/damona.sh\n fi\n\nFish shell users should add the following code in their ~/.config/fish/config.fish file::\n\n source ~/.config/damona/damona.fish\n\nZsh users should add the following code in their ~/.config/fish/config.fish file::\n\n source ~/.config/damona/damona.zsh\n\nThen, **open a new shell** and type **damona** again. You should see an help message:\n\n.. image:: https://raw.githubusercontent.com/cokelaer/damona/refs/heads/main/doc/_static/cli.png\n\nQuick Start\n===========\n\n**Damona** needs environments to work with. First, let us *create* one, which is called TEST::\n\n damona create TEST\n\nSecond, we need to *activate* it. Subsequent insallation will happen in this environment unless you open a new shell, or deactivate this environment::\n\n damona activate TEST\n\nFrom there, we can install some binaries/images::\n\n damona install fastqc:0.11.9\n\nThat's it. Time to test. Type **fastqc**. This should open a graphical interface.\n\nTo rename this TEST environment, you may use::\n\n damona rename TEST --new-name prod\n\nor delete it::\n\n damona delete prod\n\nSee more examples hereafter or in the user guide on https://damona.readthedocs.io\n\nMotivation\n==========\n\nAs stated on their website, `Conda <https:/docs.conda.io/en/latest>`_ is\nan open source **package** management system\nand **environment** management system.\nConda provides pre-compiled releases of software; they can be installed in\ndifferent local environments that do not interfer with your system. This has\ngreat advantages for developers. For example, you can install a pre-compiled\nlibraries in a minute instead of trying to compile it yourself including all\ndependencies. Different communities have emerged using this\nframework. One of them is `Bioconda <https://bioconda.github.io>`_, which is dedicated to bioinformatics.\n\nAnother great tool that emerged in the last years is\n`Singularity <https://sylabs.io/docs>`_. Singularity containers can be used\nto package entire scientific workflows,\nsoftware and libraries, and even data. It is a simple file that can be shared\nbetween environments and guarantee exectution and reproducibility.\n\nOriginally, Conda provided pre-compiled version of a software. Nowadays, it also provides\na docker and a singularity image of the tool. On the other side, Singularity can include an\nentire conda environment. As you can see everything is there to build reproducible tools and\nenvironment.\n\nNow, what about a software in development that depends on third-party packages ?\nYou would create a conda environment and starts installing the required packages.\nQuickly, you will install another package that will break your environment due\nto unresolved conlicts; this is not common but it happens. In the worst case\nscenario, the environment is broken. In facilities where users depends on you,\nit can be quite stresful and time-consuming to maintain several such\nenvironments. This is why we have moved little by little to a very light conda\nenvironment where known-to-cause-problem packages have been shipped into\nsingularity containers. This means we have to create aliases to those\nsingularities. The singularities can be simple executable containers or full\nenvironment containers with many executables inside. In both cases, one need to\nmanage those containers for different users, pipelines, versions etc. This\nstarted to be cumbersome to have containers in different places and update\nscript that generate the aliases to those executables.\n\n\nThat's where **damona** started: we wanted to combine the conda-like environment\nframework to manage our singularity containers more easily.\n\nAlthough **Damona** was started with the `Sequana projet <https://sequana.readthedocs.io>`_,\n**Damona** may be useful for others developers who wish to have a quick and easy\nsolution for their users when they need to install third-party libraries.\n\nBefore showing real-case examples, let us install the software itself and\nunderstand the details.\n\n\n\n\nTutorial\n============\n\nThe **Damona** standalone is called **damona**. It has a documentation that should suffice for most users.\n\nThe main documentation is obtained using::\n\n damona --help\n\nwhere you will see the list of **Damona** commands (may be different with time)::\n\n\n activate Activate a damona environment.\n clean Remove orphan images and binaries from all environments.\n create Create a new environment\n deactivate Deactivate the current Damona environment.\n delete Remove an environment\n env List all environemnts with some stats.\n export Create a bundle of a given environment.\n info Print information about a given environment.\n install Download and install an image and its binaries.\n list List all packages that can be installed\n remove Remove binaries or image from an environment.\n rename Rename an existing environment\n search Search for a container or binary.\n stats Get information about Damona images and binaries\n\n\nTo get help for the *install* command, type::\n\n damona install --help\n\n\n1. *list* available environments\n--------------------------------\n\nBy default you have an environment called **base**. Unlike the **base** environment found in **conda**, it is not\nessential and may be altered. However, it cannot be removed or created. You can check the list of environments using::\n\n damona env\n\n2. *create* environments\n------------------------\nAll environments are stored in *~/.config/damona/envs/*. You can create a new one as follows::\n\n damona create TEST\n\nThere, you have a *bin* directory where binaries are going to be installed.\n\nYou can check that it has been created::\n\n damona env\n\nNote the last line telling you that::\n\n Your current env is 'TEST'.\n\n3. activate and deactivate environments\n----------------------------------------\n\nIn order to install new binaries or software package, you must activate an environment. You may activate several but the last one is the *active* one. Let us activate the *TEST* environment::\n\n damona activate TEST\n\nCheck that it is active using::\n\n damona env\n\nand look at the last line. It should look like::\n\n Your current env is 'TEST'.\n\nWhat is going on when you activate an environment called TEST ? Simple: we append the directory ~/.config/damona/envs/TEST/bin to your PATH where binaries are searched for. This directory is removed when you use the *deactivate* command.\n\n::\n\n damona deactivate TEST\n damona env\n\nshould remove the TEST environment from your PATH. You may activate several and deactivate them. In such case, the\nenvironments behave as a Last In First Out principle::\n\n damona activate base\n damona activate TEST\n damona deactivate\n\nRemoves the last activated environments. While this set of commands is more specific::\n\n damona activate base\n damona activate TEST\n damona deactivate base\n\nand keep the TEST environment only in your PATH.\n\n4. **install** a software\n--------------------------\n\nLet us now consider that the TEST environment is active.\n\nDamona provides software that may have several releases. Each software/release comes with binaries that will be\ninstalled together with the underlying singularity image.::\n\n damona install fastqc:0.11.9\n\nHere, the singularity image corresponding to the release 0.11.9 of the **fastqc** software is downloaded. Then, binaries registered in this release are installed (here the **fastqc** binary only).\n\nAll images are stored in *~/.config/damona/images* and are shared between environments.\n\n\n5. Get **info** about installed images and binaries\n----------------------------------------------------\n\nYou can get the binaries installed in an environment (and the images used by\nthem) using the **info** command::\n\n damona info TEST\n\n\n6. Search the registry\n------------------------\n\nYou can search for a binary using::\n\n damona search PATTERN\n\nExternal registry can be set-up. For instance, a damona registry is accessible\nas follows (for demonstration)::\n\n damona search fastqc --url damona\n\nWhere *damona* is an alias defined in the .config/damona/damona.cfg that\nis set to https://biomics.pasteur.fr/drylab/damona/registry.txt\n\nYou may retrieve images from a website where a registry exists (see the developer\nguide to create a registry yourself).\n\n\n7. combine two different environments\n--------------------------------------\n\nIn damona, you can have sereral environments in parallel and later activate the\none you wish to use. Let us create a new one::\n\n damone create test1\n\nand check that you now have one more environment::\n\n damona env\n\nWe want to create an alias to the previously downloaded image of fastqc tool but\nin the *test1* environment. First we activate the newly create environment::\n\n damona activate test1\n\nthen, we install the container::\n\n damona install fastqc:0.11.9\n\nThis will not download the image again. It will just create a binary in the\n~/.config/damona/envs/test1/bin directory.\n\nyou can combine this new environment with the base one::\n\n damona activate base\n\nIf you are interested to know more, please see the User Guide and Developer\nguide here below.\n\n\nContributors\n============\n\nMaintaining Sequana would not have been possible without users and contributors.\nEach contribution has been an encouragement to pursue this project. Thanks to all:\n\n.. image:: https://contrib.rocks/image?repo=cokelaer/damona\n :target: https://github.com/cokelaer/damona/graphs/contributors\n\n\n\n\nChangelog\n=========\n\nFrom version 0.10 onwards, we will not mention the new software and their versions\nbut only changes made to the code itself.\n\n========= ========================================================================\nVersion Description\n========= ======================================================================== \n0.14.3 * ADDED pecat 0.0.3, necat 0.0.1, sequana_coverage 0.18\n * ADDED: bcftools 1.16, khmer 2.1.1 tRNAscan_SE 2.0.12 \n0.14.2 * ADDED: AdapterRemoval, bbmap 39.01, dsrc 2.0.2, lima 2.9.0, \n necat 0.0.1\n0.14.1 * ADDED: ragtag 2.1.0, orthofinder 2.5.5, mcl , liftoff 1.6.3\n * Message if version is outdated\n0.14 * ADDED: ir v2.8.0, vadr v1.6.4, seaview v5.0.5, repeatmasker 4.0.8\n bandage 0.8.1, rnammer 1.2, miniasm 0.3.0, hmmer 2.3.2 and 3.3.2\n infernal 1.1.5\n * NEW: progress bar for upload\n * CHANGES. fixed sandbox.zenodo upload\n * CHANGES: damona search with container sizes and recommendation\n0.13 * Fix insallation of a registered software given a dockerhub link\n * Fix requests limits on zenodo (for the stats)\n * remove URLs section in config (will remove this feature)\n * handle docker:// link properly to pull image from registry\n0.12.3 * ADDED dustmasker 1.0.0\n * update art with 2.1.8, 2.3.7, 2.5.8 versions\n * ADDED mosdepth 0.3.8\n * ADDED delly 1.2.6\n * UPDATED micromamba 1.5.8\n0.12.2 * ADDED datasets\n0.12.1 * ADDED pypolca, sratoolkit\n0.12.0 * CORE development: rename zenodo-upload subcommand into upload\n * UPDATE rtools to v1.3.0 to include limma package\n0.11.1 * ADD pbsim.\n * UPDATE hifiasm\n0.11.0 * add precommit, update to use pyproject\n0.10.1 * Fix the get_stats_software wrt new zenodo API\n0.10.0 * ADD zsh support\n * UPDATE flye 2.9.1\n * ADD nanopolish\n * UPDATE remove nanopolish from sequana_tools binaries\n0.9.1 * ADD hmmer 3.2.2\n * ADD trinotate 4.0.1\n * ADD transdecode 5.7.0\n * ADD trinity 2.15.1\n * UPDATE bioconvert 1.1.0\n * update bowtie2 2.5.1\n0.9.0 * refactorise the command 'env' by splitting into dedicated subcommands\n create, delete, rename. add progress bar when downloading container\n * NEW micromamba image to work as a localimage\n * NEW sequana_minimal package to hold common tools (bwa, samtools,\n kraken, etc)\n * NEW ivarm pangolin, nextclade, subread, mafft packages\n * UPDATE fastp to 0.23.3, gffread to 0.12.7 (3 times lighter).\n * UPDATE sequana_tools to use micromamba (30% lighter)\n0.8.4 * fix damona stats command to return unique binaries\n * more recipes and version (e.g. fastqc 0.12.1, graphviz update, etc)\n0.8.3 * create registry specifically for the sandbox (for testing)\n * add damona community in the uploads\n * add pbbam, bioconvert, busco, canu, ccs\n * add polypolish, samtools 1.16.1, sequana 0.14.6, flye 2.9, canu 2.1.1\n circlator 1.5.5, hifiasm\n0.8.2 * add idr, samtools, homer, bamtools, bedtools, sequana_denovo\n * add seqkit recipe and container\n * add shustring\n0.8.1 * Include ability to interact with biocontainers by allowing retrieval\n of all biocontainers docker images using this syntax:\n 'damona install biocontainers/xx:1.2.3' Note that although 9000\n containers are available, in practice, only about 1000 dockers are\n on dockerhub, which is already nice :-)\n *\n0.8.0 * Fix regression to install a software with its version\n0.7.1 * Implement the fish shell\n * add command \"damona list\"\n * rename recipes/ directory into software/ and created a new library/\n directory for images used as library, that are not installed.\n0.7.0 * Check that singularity is installed\n * implement the remove command\n https://github.com/cokelaer/damona/issues/15\n * more recipes cleanup (https://github.com/cokelaer/damona/issues/12)\n * removed damona recipes (pure python package)\n * cleanup all recipes\n * add zenodo stats (for admin)\n0.6.0 * add ability to upload images on zenodo. No need for external\n repositories.\n * ability to add/delete a software from different images\n * implement --help for the activate/deactivate (non trivial)\n * add --rename option in 'damona env'\n * 'base' environment is now at the same level as other environments\n * better bash script; no need for DAMONA_EXE variable anymore.\n0.5.3 * Fixing config/shell\n0.5.2 * add missing shell package\n0.5.1 * add DAMONA_SINGULARITY_OPTIONS env variable in the binary\n * Fix the way binaries are found in the releases.\n * new recipes: rtools\n * new releases: sequana_tools_0.10.0\n * Fix shell script to handle DAMONA_EXE variable\n0.5.0 * Major refactoring.\n\n - Simplification of the registries (dropping notion of exe/set\n class\n - Main script should now be fully functional with functional\n activation/deactivation.\n - New command to build images from local recipes or dockerhub\n entries.\n - Install command can now install local container.\n - DAMONA_PATH can be set to install damona images/binaries\n anywhere, not just in local home.\n - check md5 of images to not download/copy again\n0.4.3 * Implement damona activate/deactivate\n0.4.2 * Fix typo in the creation of aliases for 'set' containers\n0.4.1 * implemented aliases for the --from-url option stored in a\n damona.cfg file\n0.4.0 * implemented the 'env' and 'activate' command\n * ability to setup an external registry on any https and retrieve\n registry from there to download external images\n0.3.X * add gffread, rnadiff recipes\n0.3.0 * A stable version with documentation and >95% coverage read-yto-use\n0.2.3 * add new recipes (rnadiff)\n0.2.2 * Download latest if no version provided\n * include *build* command to build image locally\n0.2.1 fixed manifest\n0.2.0 first working version of damona to pull image locally with binaries\n0.1.1 small update to fix RTD, travis, coveralls\n0.1 first release to test feasibility of the project\n========= ========================================================================\n\n",
"bugtrack_url": null,
"license": "BSD-3",
"summary": "A manager of singularity containers and their singularity recipes (NGS applications)",
"version": "0.14.3",
"project_urls": {
"Homepage": "https://github.com/cokelaer/damona",
"Repository": "https://github.com/cokelaer/damona"
},
"split_keywords": [
"snakemake",
" sequana",
" rnaseq",
" rnadiff",
" differential analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8a57ee5cb343ae36420c4e71e905e6d56d4c841a458808985c0025f55fd206fe",
"md5": "59797c2e678d00f1c9150728c01305a0",
"sha256": "858c7e2bdffa1c947c097d24160b0a7df6f012fd19b9cc53e1755d5a091215cc"
},
"downloads": -1,
"filename": "damona-0.14.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59797c2e678d00f1c9150728c01305a0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 667787,
"upload_time": "2024-10-23T20:07:41",
"upload_time_iso_8601": "2024-10-23T20:07:41.872744Z",
"url": "https://files.pythonhosted.org/packages/8a/57/ee5cb343ae36420c4e71e905e6d56d4c841a458808985c0025f55fd206fe/damona-0.14.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5417e143d1cb198e20569f42763262988b9399526268196b31a3641087a2deb6",
"md5": "da43d6a53a32f22d3ed1a724d5a747da",
"sha256": "d190d231b72e6894abe96b36950d46419dc5ffc4236aad093ef9fbc5c06bafb0"
},
"downloads": -1,
"filename": "damona-0.14.3.tar.gz",
"has_sig": false,
"md5_digest": "da43d6a53a32f22d3ed1a724d5a747da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 529084,
"upload_time": "2024-10-23T20:07:43",
"upload_time_iso_8601": "2024-10-23T20:07:43.323535Z",
"url": "https://files.pythonhosted.org/packages/54/17/e143d1cb198e20569f42763262988b9399526268196b31a3641087a2deb6/damona-0.14.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-23 20:07:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cokelaer",
"github_project": "damona",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "damona"
}