silico.biotoul.fr
 

Docker

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
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 ?