⚠️ OBITools2 are now deprecated you are invited to use the OBITools4. No further maintenance, updates or corrections for bugs are provided for OBITools2.
OBITools2 was primarily written using Python version 2. However, this main branch of the Python language has been deprecated since 2020 and is no longer being updated. This means that it is gradually being phased out of most Linux distributions. Consequently, installing OBITools2 on a modern computer is becoming increasingly challenging.
OBITools2’s second limitation is its slowness when dealing with the large size of recent DNA metabarcoding data sets.
These two reasons justify switching to OBITools version 4. However, there are many reasons why it can sometimes be useful to use the legacy OBITools, for example for certain benchmarks or for using old pipelines. To solve this problem, an OCI image (Docker image) has been created using the latest version of OBITools2. It includes:
ecoPCR (now replaced by obipcr in OBITools4).ecoPrimerssumatrasumaclustThe complete OBITools2 documentation is embedded within the image.
Several systems allow you to run OCI images, including Docker, Podman and Singularity. The following examples only provide Docker commands. For Podman, you usually only need to substitute the docker command with the podman command. The Singularity commands are less similar. An example is provided at the end of this page.
The image is stored on
The image name is :
registry.metabarcoding.org/obitools/obitools2:latestTo ensure you have the latest version of the image, run the docker pull command. This is not mandatory. If you do not, your system will check whether the image has already been cached. If so, it will use the preloaded image. Otherwise, the image will be downloaded automatically before your command is run.
Running the docker pull command forces the Docker system to check for a new version of the image, even if you already have one in your cache.
docker pull registry.metabarcoding.org/obitools/obitools2:latest
To run a command, here the obigrep with the -h option to print the help you have to run the following command:
docker run --rm \
-v .:/data \
registry.metabarcoding.org/obitools/obitools2:latest \
obigrep -h
The -v .:/data option of the docker command is asking for mounting the current working directory to the /data directory of “vitual machine” running into the docker container. Therefore only the current working directory of your machine will be accessible to the OBITools.
To facilitate the usage of obigrep you can create an alias for that command
alias obigrep2='docker run --rm \
-v .:/data \
registry.metabarcoding.org/obitools/obitools2:latest \
obigrep'
You wil be then able to run the obigrep command using simply
obigrep2 -h
obviously you can create an alias for each obitools command you are interested in. Or using the following command generate all the aliases for every OBITools.
TAG="latest"
SUFFIX=2
eval $(for CMD in ecoPCR ecoPCRFormat ecoPrimers ecodbtaxstat ecofind \
ecogrep ecotag ecotaxspecificity ecotaxstat extractreads \
illuminapairedend ngsfilter obiaddtaxids obiannotate \
obiclean obicomplement obiconvert obicount obicut \
obidistribute obiextract obigrep obihead obijoinpairedend \
obipr2 obisample obiselect obisilva obisort obisplit obistat \
obisubset obitab obitail obitaxonomy obiuniq oligotag \
sumaclust sumatra ; do
echo -e " alias ${CMD}${SUFFIX}='docker run --rm \
-v .:/data \
registry.metabarcoding.org/obitools/obitools2:${TAG} \
${CMD}'"
done)
A local web server that distribute the documentation can be launched from the docker image.
docker run -p 8080:8080 \
--rm \
--detach \
--name obidoc \
registry.metabarcoding.org/obitools/obitools2:latest \
docserver
Once launched, the documatation is available at the following adsress: http://localhost:8080
To stop the server you can run the command
docker container stop obidoc