diff --git a/Project.toml b/Project.toml index 4721d9168f7151f465584ddfc998d6b839359db0..b5ddd1ca564e9de0e23b9f187877c25afe4509cf 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "LarvaTagger" uuid = "8b3b36f1-dfed-446e-8561-ea19fe966a4d" authors = ["François Laurent", "Institut Pasteur"] -version = "0.11.1" +version = "0.12" [deps] Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" diff --git a/recipes/Dockerfile b/recipes/Dockerfile index 96665c4450b441e5d7b347964ff4ee7329aa0167..e1726de942f469bc1fc4baa088b148de31d4efe5 100644 --- a/recipes/Dockerfile +++ b/recipes/Dockerfile @@ -81,6 +81,15 @@ RUN if [ "$BACKEND" = "MaggotUBA/20221005-1" ]; then \ && rm -rf .git \ && poetry install --only main \ && poetry add "pynvml==11.4.1" \ + && rm -rf ~/.cache; \ + elif [ "$BACKEND" = "MaggotUBA/20230311" ]; then \ + cd $PROJECT_DIR \ + && julia -e "using Pkg; Pkg.add(url=\"https://gitlab.pasteur.fr/nyx/TaggingBackends\", rev=\"$BRANCH\")" \ + && git clone --depth 1 --no-tags --single-branch -b 20230311 https://gitlab.pasteur.fr/nyx/MaggotUBA-adapter MaggotUBA \ + && cd MaggotUBA \ + && rm -rf .git \ + && poetry install --only main \ + && poetry add "pynvml==11.4.1" \ && rm -rf ~/.cache; \ fi diff --git a/recipes/README.md b/recipes/README.md index 42daaa6eea53b1c9673b81ffc7e2f8a735d97abd..2b3356bf72b022a1b3be393cea9b9767b1ad1b58 100644 --- a/recipes/README.md +++ b/recipes/README.md @@ -76,14 +76,14 @@ The *larvatagger.sh* script features a `build` command to build a local Docker i scripts/larvatagger.sh build ``` -Optionally, you can also get the default backend (currently *MaggotUBA/20230129*) with: +Optionally, you can also get the default backend (currently *MaggotUBA/20230311*) with: ``` scripts/larvatagger.sh build --with-default-backend ``` -If you specifically want the *20230129* tagger, and not rely on the default set in the script, do: +If you specifically want the *20230311* tagger, and not rely on the default set in the script, do: ``` -scripts/larvatagger.sh build --with-backend MaggotUBA/20230129 +scripts/larvatagger.sh build --with-backend MaggotUBA/20230311 ``` The `build` command requires a local copy of the LarvaTagger.jl project. In addition, the larvatagger.sh script must be executed from the project root directory, hence the path `scripts/larvatagger.sh`. @@ -102,7 +102,7 @@ docker pull flaur/larvatagger ``` Beware that images that ship with backends are relatively large files (>5GB on disk). -If you are not interested in automatic tagging, use the `flaur/larvatagger:0.11.1-standalone` image instead. +If you are not interested in automatic tagging, use the `flaur/larvatagger:0.12-standalone` image instead. ### Upgrading @@ -211,9 +211,15 @@ Docker is usually not available on shared HPC resources. [Singularity](https://sylabs.io/) or [Apptainer](http://apptainer.org/) are used instead, and the Docker image for LarvaTagger.jl can be run using these technologies. An issue with the `predict` and `train` switches makes the backend unable to use the internal */app/MaggotUBA/data* directory to organise the raw, interim and processed data files. -A workaround consists in using an external *data* directory and bind mount it as */app/MaggotUBA/data*. +A workaround consists in using an external *apptainer-data* directory and bind mount it as */app/MaggotUBA/data*. For example: ``` -apptainer run --bind data:/app/MaggotUBA/data docker://flaur/larvatagger predict /app/MaggotUBA 20230129 path/to/datafile --data-isolation +apptainer run --bind apptainer-data:/app/MaggotUBA/data docker://flaur/larvatagger predict /app/MaggotUBA 20230311 path/to/datafile --data-isolation ``` + +Depending on where the data file is located in the file system, the parent directory may also need to be bind-mounted. + +Running Docker containers may not be accessible from worker nodes. A workaround consists in converting the Docker image into a Singularity image file for Apptainer, and then call `apptainer run` for that *sif* image. + +See also a [deployment example](https://gitlab.com/larvataggerpipelines/t5_analysis_replicates/-/blob/0db595945b6c2d1bdf7147b136807b11c41d52dc/Makefile.maestro#L53).