Jupyter notebook in Galaxy Galaxy IPython is a visualization plugin
Jupyter notebook in Galaxy Pour installer iPython (JUPYTER) dans Galaxy, il est nécessaire de travailler dans un conteneur Docker. Sur la machine test Docker montée par Marie-Stéphane, deux possibilités : a- Récupérer un Galaxy déja dans Docker (bgruening/galaxy-stable), cloner le code Galaxy pour iPython, Mais visualisation NOK. Reste à activer Jupyter dans galaxy.ini (mais fichier abs). b- Récupérer le dernier code de Galaxy de Galaxy project, créer une image Docker (Dockerfile, docker build), réserver un port dans galaxy.ini, cloner le code ipython, activer jupyter dans galaxy.ini, puis lancer l'image docker crée (docker run). Ce module permet de lancer du code directement avec le numéro de la dataset Galaxy et le nom de l'historique (HISTORY_ID). La fonction pull permet d'utiliser des datasets Galaxy en entrée, la fonction get permet de générer des graphs, images, fichiers en sortie Galaxy et chaque session peut être enregistrée pour être rejouée / modifiée !! Du coup, dans une session, nous pourrions imaginer jouer un pipeline complet, avec , en plus la possibilité de mettre en forme des images, des commentaires, des vidéos explicatives, bref un vrai tuto complet. C'est à se demander si c'est encore utile de coder des wrappers ! Vu qu'il est très facilement possible d'échanger des sessions Jupyter (mail, git, share), et de jouer une session dans n'importe quelle instance Galaxy, je ne vois plus trop l'intérêt des outils wrappés ... Pour le moment, pour des raisons de sécurité, Marie-Stéphane m'a expliquée qu'il n'est pas possible d'installer Galaxy avec Docker tant que nous n'aurons pas le cloud. Ce document présente les différentes étapes d'install, difficultés rencontrées et fonctionnalités iPython sous Galaxy.
Jupyter notebook in Galaxy L'idée est de créer une session (== 1 workflow convertit en wrapper) qui contient plusieurs étapes de traitement en ligne de commande (qq'soit le langage) lançées à partir des donnes disponibles dans Galaxy. Avantages : Comparable à jflow ? Possible de lancer des traitements Galaxy par des bioinformaticiens et des programmeurs. Fournir un environnement de formation Plus de flexibilité pour les developpeurs. Inconvénient : reproductibilité des traitements controversée... Les datasets et les tools Galaxy sont versionnés. Les sessions Jupyter « moins ».. quoi que. http://python.6.x6.nabble.com/Announcement-Galaxy-IPython-Integration-interactive-programming-in-Galaxy-td5066242.html
Jupyter notebook in Galaxy
Jupyter notebook in Galaxy Source : https://github.com/bgruening/docker-galaxy-stable Jupyter notebook in Galaxy Uniquement possible sur une machine avec Docker installé. 1 – Connexion à la machine de test Docker 2- Docker pull 3- Après installation de git sur la machine de test Docker 4- git clone de la machine galaxy contenue dans Docker et préparée par M. Gruening
Jupyter notebook in Galaxy Source : https://github.com/bgruening/docker-galaxy-stable Jupyter notebook in Galaxy Le code Galaxy est disponible dans le conteneur : Installer la version stable Galaxy Install firefox sur la machine Avec ssh an mode display :
Jupyter notebook in Galaxy Source : https://github.com/bgruening/docker-galaxy-stable Jupyter notebook in Galaxy ssh an mode display : Install Xvfb Run Xvfb step 3: set the terminal --> http://localhost:8023
(tests) Installation de firefox dans Docker Préparation du Dockerfile /root/sarah/docker-galaxy-stable/Dockerfile touch /root/sarah/docker-galaxy-stable/Dockerfile FROM ubuntu:14.04 RUN apt-get update && apt-get install -y firefox # Replace 1000 with your user / group id #donc[root@vm-docker-test docker-galaxy-stable]# id root #uid=0(root) gid=0(root) groupes=0(root) RUN export uid=0 gid=0 && \ #RUN export uid=1000 gid=1000 && \ mkdir -p /home/developer && \ echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \ echo "developer:x:${uid}:" >> /etc/group && \ echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \ chmod 0440 /etc/sudoers.d/developer && \ chown ${uid}:${gid} -R /home/developer USER developer ENV HOME /home/developer CMD /usr/bin/firefox
(test) Installation de firefox dans Docker Première commande :
(test) Installation de firefox dans Docker Seconde commande : Puis lancement de la seconde commande à nouveau : docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox
Firefox sur vm-docker-test
Easy installation iPython alias Jupyter notebook in Galaxy 1 – Dans config/ , récupérer le répertoire ipython dans GitHub : 2 – Restart Galaxy dans Docker docker run -d -p 8023:23 -p 8021:21 -p 8022:22 -e "GALAXY_CONFIG_ADMIN_USERS=sarah.maman@inra.fr" bgruening/galaxy-stable Recherche de ports disponibles : [root@vm-docker-test docker-galaxy-stable]# docker run -i -t -p 8040:40 bgruening/galaxy-stable /bin/bash root@84a53d723083:/galaxy-central# ls CITATION contrib cron external_service_types locale openid run_reports.sh scripts test tools client CONTRIBUTING.md database extract_dataset_parts.sh Makefile README.rst run.sh setup.cfg test-data tox.ini CODE_OF_CONDUCT.md CONTRIBUTORS.md display_applications lib manage_db.sh requirements.txt run_tests.sh static tool-data config create_db.sh doc LICENSE.txt manage_tools.sh rolling_restart.sh run_tool_shed.sh templates tool_list.py root@84a53d723083:/galaxy-central# sh run.sh & [1] 17 root@84a53d723083:/galaxy-central# Activating virtualenv at /galaxy_venv The directory '/home/galaxy/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/galaxy/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Requirement already satisfied: pip>=8.1 in /galaxy_venv/lib/python2.7/site-packages /galaxy_venv/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning. SNIMissingWarning /galaxy_venv/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning The directory '/home/galaxy/.cache/pip/http' or its parent directory
Run Galaxy in Docker Autre commande : docker run -i -t -p 8040:40 bgruening/galaxy-stable /bin/bash Erreur lors du runs.sh : http://127.0.0.1:5432 --> Galaxy ne s'ouvre pas.
Run Galaxy in Docker Paramétrage du fichier galaxy.ini : root@84a53d723083:/galaxy-central# cp config/galaxy.ini.sample config/galaxy.ini root@84a53d723083:/galaxy-central# geany config/galaxy.ini & Start Galaxy avec ce nouveau paramétrage : sh run.sh & http://127.0.0.1:5432 --> Galaxy ne s'ouvre pas.
Run Galaxy in Docker Autre commande : docker run -i -t -p 8080:80 bgruening/galaxy-stable /bin/bash Erreur lors du run.sh : http://127.0.0.1:8080 --> Galaxy ne s'ouvre pas.
Run Galaxy in Docker Problème d'IP : Verifier la configuration de l'IP. root 17472 0.0 0.0 190140 3880 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 80 root 17482 0.0 0.0 190140 1844 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8022 -container-ip 172.17.0.3 -container-port 22 root 17492 0.0 0.0 190140 1836 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8021 -container-ip 172.17.0.3 -container-port 21 root 19748 0.0 0.0 181944 3888 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8025 -container-ip 172.17.0.4 -container-port 25 root 19761 0.0 0.0 116408 1836 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8024 -container-ip 172.17.0.4 -container-port 24 root 19770 0.0 0.0 116408 1836 ? Sl juil.31 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8023 -container-ip 172.17.0.4 -container-port 23 root 11242 0.0 0.0 116408 1836 ? Sl 15:22 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8036 -container-ip 172.17.0.5 -container-port 36 root 11257 0.0 0.0 190140 3888 ? Sl 15:22 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8035 -container-ip 172.17.0.5 -container-port 35 root 11267 0.0 0.0 116408 1840 ? Sl 15:22 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8034 -container-ip 172.17.0.5 -container-port 34 root 12170 0.0 0.0 190140 3888 ? Sl 15:30 0:00 \_ /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 8040 -container-ip 172.17.0.6 -container-port 40 on voit 0.0.0.0 ==> mettre 127.0.0.1 dans config/galaxy.ini : Puis start galaxy :
Easy installation iPython alias Jupyter notebook in Galaxy 1 – Ouverture de Firefox depuis un autre onglet terminal : ssh -YX smaman@genotoul.toulouse.inra.fr smaman@genotoul2 ~ $ ssh -YX root@147.99.108.172 root@147.99.108.172's password: Last login: Tue Aug 1 12:44:50 2017 from genotoul.toulouse.inra.fr [root@vm-docker-test ~]# [root@vm-docker-test ~]# cd sarah/docker-galaxy-stable/ [root@vm-docker-test docker-galaxy-stable]# firefox & Dans l'URL de la fenêtre qui s'ouvre : http://localhost:8034/ ??
Easy installation iPython alias Jupyter notebook in Galaxy Ipython est disponible dans le menu « Visualisation » de la dataset :
Fonctions et variables Jupyter
Sources documentaires https://github.com/bgruening/galaxy-ipython https://github.com/bgruening/docker-galaxy-stable https://galaxyproject.github.io/training-material//topics/admin/tutorials/galaxy-docker/slides.html#32 http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/