Docker
From silico.biotoul.fr
m (→Test : Hello world) |
m (→Utilisation d'un programme : exemple prokka) |
||
Line 37: | Line 37: | ||
= Utilisation d'un programme : exemple prokka = | = Utilisation d'un programme : exemple prokka = | ||
+ | |||
+ | ''Prokka: rapid prokaryotic genome annotation'', Bioinformatics 2014, Torsten Seemann [https://academic.oup.com/bioinformatics/article/30/14/2068/2390517 article] [https://github.com/tseemann/prokka github] réalise l'annotation de génomes procaryotes. Ce programme fait appel à un certain nombre d'autres programmes, librairies et bases de données (BLAST+, HMMER3, BioPerl, ...) ce qui peut rendre son installation et sa configuration fastidieuses et/ou laborieuses. | ||
+ | |||
+ | |||
+ | Pour illustrer la simplicité de son utilisation (avec les paramètres par défaut même si, en général, il est recommandé d'adapter les paramètres à l'étude réalisée) sur un petit génome. | ||
+ | |||
+ | Récupération de l'image sur docker.io : | ||
+ | podman pull staphb/prokka:latest | ||
+ | |||
+ | Ou bien à partir d'une recherche sur https://hub.docker.com : https://hub.docker.com/r/staphb/prokka | ||
+ | |||
+ | Il est parfois nécessaire de rester sur une version plutôt que de choisir ''latest'' : | ||
+ | podman pull staphb/prokka:'''1.14.5''' | ||
+ | podman images | ||
+ | |||
+ | REPOSITORY TAG IMAGE ID CREATED SIZE | ||
+ | docker.io/staphb/prokka latest 7e63ea9aea78 20 months ago 1.79 GB | ||
+ | docker.io/staphb/prokka 1.14.5 814ee67a9e22 20 months ago 1.79 GB | ||
+ | |||
+ | Utilisation : | ||
+ | podman run staphb/prokka:1.14.5 prokka -h | ||
+ | podman run staphb/prokka:1.14.5 prokka --listdb | ||
+ | |||
+ | |||
+ | Nous allons l'appliquer à un génome du covid : | ||
+ | mkdir data | ||
+ | cd data | ||
+ | curl http://silico.biotoul.fr/enseignement/m2bbs/fedora/NC_045512.2.fasta > NC_045512.2.fasta | ||
+ | |||
+ | Il faut rendre accessible le fichier à l'intérieur du container avec l'option <tt>--volume</tt> ou <tt>-v</tt> → cela correspond à un montage | ||
+ | podman run -v ./data:/data staphb/prokka:1.14.5 prokka --kingdom Viruses --outdir results NC_045512.2.fasta | ||
+ | |||
+ | Résultats : | ||
+ | ls -lh data/results | ||
+ | |||
+ | total 284K | ||
+ | -rw-r--r-- 1 guest guest 5.1K Aug 30 18:00 PROKKA_08302022.err | ||
+ | -rw-r--r-- 1 guest guest 9.8K Aug 30 18:00 PROKKA_08302022.faa | ||
+ | -rw-r--r-- 1 guest guest 29K Aug 30 18:00 PROKKA_08302022.ffn | ||
+ | -rw-r--r-- 1 guest guest 30K Aug 30 18:00 PROKKA_08302022.fna | ||
+ | -rw-r--r-- 1 guest guest 30K Aug 30 18:00 PROKKA_08302022.fsa | ||
+ | -rw-r--r-- 1 guest guest 54K Aug 30 18:00 PROKKA_08302022.gbk | ||
+ | -rw-r--r-- 1 guest guest 32K Aug 30 18:00 PROKKA_08302022.gff | ||
+ | -rw-r--r-- 1 guest guest 7.0K Aug 30 18:00 PROKKA_08302022.log | ||
+ | -rw-r--r-- 1 guest guest 58K Aug 30 18:00 PROKKA_08302022.sqn | ||
+ | -rw-r--r-- 1 guest guest 1.6K Aug 30 18:00 PROKKA_08302022.tbl | ||
+ | -rw-r--r-- 1 guest guest 469 Aug 30 18:00 PROKKA_08302022.tsv | ||
+ | -rw-r--r-- 1 guest guest 63 Aug 30 18:00 PROKKA_08302022.txt | ||
+ | |||
+ | Combien de protéines sont annotées ? | ||
+ | |||
+ | Est-ce que la protéine spike utilisée pour produire certains vaccins est identifiée ? |
Revision as of 16:03, 30 August 2022
Motivation : problèmes de dépendances logicielles et de reproductibilités des résultats obtenus (avec un certain environnement, librairies, ...).
Solution (partielle) : mettre dans un container tout ce qu'il faut pour réaliser le même traitement.
Remarque : cela permet aussi de distribuer l'exécution de programme sur une grille de calculs ou un cloud.
Nous allons utiliser podman qui est l'équivalent de docker mais présente certains avantages :
- docker nécessite un service (qui tourne donc en permanence) alors que podman non
- il faut des permissions élevées (root) pour docker et pas toujours pour podman
Test : Hello world
Pour vérifier que cela fonctionne :
podman run hello-world
podman devrait récupérer l'image du container sur docker.io puis l'exécuter sans trop de soucis.
Images présentes sur le compte :
podman images
Container en cours d'utilisation :
podman ps
Container en cours ou ayant terminé :
podman ps -a
On observe qu'il reste hello-word, on peut accéder aux logs avec son identifiant ou son nom (utile pour le débogage en cas de crash du container) :
podman logs CONTAINER_ID
Nettoyage : suppression de ce qu'il reste de l'exécution précédente
podman rm CONTAINER_ID
Nettoyage : suppression de l'image récupérée de docker.io
porman rmi IMAGE_ID
Utilisation d'un programme : exemple prokka
Prokka: rapid prokaryotic genome annotation, Bioinformatics 2014, Torsten Seemann article github réalise l'annotation de génomes procaryotes. Ce programme fait appel à un certain nombre d'autres programmes, librairies et bases de données (BLAST+, HMMER3, BioPerl, ...) ce qui peut rendre son installation et sa configuration fastidieuses et/ou laborieuses.
Pour illustrer la simplicité de son utilisation (avec les paramètres par défaut même si, en général, il est recommandé d'adapter les paramètres à l'étude réalisée) sur un petit génome.
Récupération de l'image sur docker.io :
podman pull staphb/prokka:latest
Ou bien à partir d'une recherche sur https://hub.docker.com : https://hub.docker.com/r/staphb/prokka
Il est parfois nécessaire de rester sur une version plutôt que de choisir latest :
podman pull staphb/prokka:1.14.5 podman images
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/staphb/prokka latest 7e63ea9aea78 20 months ago 1.79 GB docker.io/staphb/prokka 1.14.5 814ee67a9e22 20 months ago 1.79 GB
Utilisation :
podman run staphb/prokka:1.14.5 prokka -h podman run staphb/prokka:1.14.5 prokka --listdb
Nous allons l'appliquer à un génome du covid :
mkdir data cd data curl http://silico.biotoul.fr/enseignement/m2bbs/fedora/NC_045512.2.fasta > NC_045512.2.fasta
Il faut rendre accessible le fichier à l'intérieur du container avec l'option --volume ou -v → cela correspond à un montage
podman run -v ./data:/data staphb/prokka:1.14.5 prokka --kingdom Viruses --outdir results NC_045512.2.fasta
Résultats :
ls -lh data/results
total 284K -rw-r--r-- 1 guest guest 5.1K Aug 30 18:00 PROKKA_08302022.err -rw-r--r-- 1 guest guest 9.8K Aug 30 18:00 PROKKA_08302022.faa -rw-r--r-- 1 guest guest 29K Aug 30 18:00 PROKKA_08302022.ffn -rw-r--r-- 1 guest guest 30K Aug 30 18:00 PROKKA_08302022.fna -rw-r--r-- 1 guest guest 30K Aug 30 18:00 PROKKA_08302022.fsa -rw-r--r-- 1 guest guest 54K Aug 30 18:00 PROKKA_08302022.gbk -rw-r--r-- 1 guest guest 32K Aug 30 18:00 PROKKA_08302022.gff -rw-r--r-- 1 guest guest 7.0K Aug 30 18:00 PROKKA_08302022.log -rw-r--r-- 1 guest guest 58K Aug 30 18:00 PROKKA_08302022.sqn -rw-r--r-- 1 guest guest 1.6K Aug 30 18:00 PROKKA_08302022.tbl -rw-r--r-- 1 guest guest 469 Aug 30 18:00 PROKKA_08302022.tsv -rw-r--r-- 1 guest guest 63 Aug 30 18:00 PROKKA_08302022.txt
Combien de protéines sont annotées ?
Est-ce que la protéine spike utilisée pour produire certains vaccins est identifiée ?