Tests Jupyter
Dans le cadre d'une procédure de test post-installation ou de développement de code, vous voudrez peut-être tester certaines fonctions d'Omero-Quay, ou tester vos modifications de code. Pour cela, tester Omero-Quay hors réseau ou hors conteneurs Docker (les conteneurs nécessitant un certain temps pour leur construction) à l'aide des notebooks Jupyter fourni peut être une solution.
Selon vos besoins, en vous inspirant des conteneurs déjà existants et en vous aidant de la documentation des paquets importés, vous pourrez même écrire vos propres notebooks.
Prérequis
Après avoir téléchargé Omero-Quay (voir rubrique "Installation/Configuration" qui sera à remplir par Guillaume Gay), vous noterez dans le répertoire racine la présence du répertoire "notebooks". Celui-ci contient comme son nom l'indique les notebooks Jupyter utilisés dans le cadre des tests. Avant de les utiliser, vous aurez besoin de configurer un "environnement de test".
Jeu de données de test
Un jeu de données léger (mais réaliste) disponible sur Zenodo a été assemblé pour nos propres besoins de test et développement, et est disponible à cette adresse:
https://zenodo.org/records/15302018
Téléchargez la dernière version du jeu de données. L'archive ne contient qu'un répertoire "OmeroQuayData". Copiez-le tel quel à l'endroit de votre choix. Le répertoire contient les sous-répertoires suivants:
- "excels": Contient les fichiers Excel associés aux différents tests de conditions de validation des tests de validité des fichiers Excel d'importation des jeux de données des utilisateurs. Associés aux jeux de données contenus dans "facility0"
- "facility0": Contient des jeux de données de test pour l'utilisateur factice "facility0"
- "manifests": Contient des exemples de manifestes associés aux jeux de données contenus dans "facility0". Les manifestes sont en temps normal générés en interne par omero-quay après importation du fichier Excel.
- "users": Contient des exemples de fichiers de listing d'utilisateurs associés aux jeux de données. Générés et lus en temps normal en interne.
Fichiers de configuration
Omero-Quay nécessite des informations qur l'environnement réseau utilisé. Ces informations sont contenues dans le fichier de configuration "quay.yml". Dans la structure réseau imaginée (voir section "Fonctionnement prévu du système/Schéma global"), Omero-Quay sera installé en plusieurs localisations du réseau où il servira de point de relais. Chaque instance d'Omero-Quay aura son propre fichier de configuration, qui pourra contenir des informations différentes d'une instance à l'autre.
Omero-Quay étant principalement destiné (pour le moment) à un usage interne, le fichier "quay.yml" est assemblé manuellement selon l'instance installée, et aucune localisation fixée ou exemple de fichier ne sont officiellement proposés (défaut de design à corriger sur les versions ultérieures d'Omero-Quay).
En l'état, il est uniquement possible de créer des conteneurs Docker à partir des Dockerfiles contenus dans "tests/containers" (voir "https://gitlab.in2p3.fr/fbi-data/omero-quay/-/tree/irods_consumer?ref_type=heads" en fin de page). Le chemin d'accès aux fichiers de configuration sera renseigné dans le fichier "docker-compose.yml". Des fichiers de configuration YML associés aux conteneurs sont d'ailleurs disponibles dans ce répertoire.
Vous pourrez utiliser un des fichiers de configuration contenu dans "tests/containers" (au risque de messages ou d'erreurs lors des tests). Le fichier "quay.yml" que vous utiliserez devra à minima être constitué de cette façon:
---
quay:
is_server: false
ROOT_DIR: /tmp/quay
DATA_PATH: /tmp/QuayTestData
LOG_LEVEL: "WARNING"
GET_URL: "http://localhost:8898"
POST_URL: "http://localhost:8898"
irods:
IRODS_HOST: localhost
IRODS_PORT: 1247
IRODS_ZONE: tempZone
IRODS_USER: facility0
IRODS_USER_PASS: omero
omero:
OMERO_USER: facility0
OMERO_USER_PASS: omero
OMERO_HOST: localhost
OMERO_PORT: 4064
USE_CACHE: true
UPDATE_DELAY: 10
IS_IDP: false
ingest:
PROVENANCE_URL: "file:///etc/quay/provenance"
POST_URL: http://localhost:8898
GET_URL: http://localhost:8898
timeout: 3600
file:
copy_method: "hardlink"
excel:
keys:
- "Specimen Sample Preparation"
- "Specimen Growth Protocol"
- "Organism Scientific Name"
- "Organism Common Name"
- "Organism Ncbi Taxon"
- "Biosample Biological Entity"
- "Organism Description"
- "Intrinsic Variables"
- "Extrinsic Variables"
- "Experimental Variables"
- "Imaging Method Value"
- "Imaging Method Ontology Name"
- "Imaging Method Ontology Id"
- "Imaging Instrument"
- "Image Acquisition Parameters"
- "Image Analysis Overview"
- "Image Correlation Spatial And Temporal Alignment"
- "ImageCorrelation Fiducials Used"
- "Image Correlation Transformation Matrix"
- "quay": Comprend des informations sur l'instance locale d'Omero-Quay. Notamment:
- "ROOT_DIR": correspond au chemin vers le répertoire d'installation de Omero-Quay
- "DATA_PATH": correspond au chemin vers le répertoire de données de test, dans notre contexte. Pensez à le modifier.
- "irods": Comprend des informations sur l'installation locale d'iRODS
- "omero": Comprend des informations sur l'installation locale d'OMERO
- "ingest": Comprend des informations sur les différents points de relais accessibles par l'instance locale d'Omero-Quay", ainsi que sur les adresses d'accès en requête POST (envoi depuis l'instance locale vers l'extérieur) et en requête GET (réception depuis l'extérieur vers l'instance locale)
- "file": Ne comprend qu'une seule information associée au mode de copie des fichiers
- "excel": Correspond aux entêtes du fichier Excel associées aux métadonnées des éléments "Assay" du jeu de données
La description complète du contenu attendu dans le fichier "quay.yml" (toutes instances d'Omero-Quay confondues) fera l'objet d'une autre rubrique (Guillaume Gay et Théo Barnouin, à vous de jouer).
Dans le cas d'un environnement de test, il vous sera préférable de créer manuellement un fichier "quay.yml" et de le déplacer dans le répertoire de données de test "QuayTestData".
Démarrage des conteneurs Docker de test
Le répertoire d'Omero-Quay comporte un sous-répertoire "tests" destiné aux tests unitaires. A l'intérieur de ce sous-répertoire se trouve le répertoire "containers". Les Dockerfiles de toutes les conteneurs s'y trouvent. Vous pouvez techniquement construire tous les conteneurs grâce à la commande "docker compose up -d", mais il est préférable de télécharger les conteneurs déjà construits depuis notre dépôt GitLab grâce à la commande "docker compose pull"
Une fois les conteneurs téléchargés, vous pouvez démarrer les conteneurs grâce à la commande "make docker_up" dans le répertoire racine de Omero-Quay, puis créez les utilisateurs grâce à la commande "make docker_populate" (voir "https://gitlab.in2p3.fr/fbi-data/omero-quay/-/tree/irods_consumer?ref_type=heads" en fin de page).
Démarrage de JupyterLab
Omero-Quay nécessite l'importation de certains paquets Python qui devront être installés au préalable (de préférence dans un environnement virtuel), comme décrit dans la procédure d'installation (voir rubrique "Installation/Configuration" qui sera à remplir par Guillaume Gay)
Démarrez donc votre environnement virtuel
puis JupyterLab, si celui-ci n'est pas installé sur l'environnement virtuel (auquel cas installez-le en vous référant à la page suivante: https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html)