Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
1,57 MB
Nội dung
UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Obed MERALUS Mise en place d’une base de données FAIR interconnectée avec VIP Xây dựng sở liệu FAIR kết nối với VIP MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE HANOÏ - 2020 UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Obed MERALUS Mise en place d’une base de données FAIR interconnectée avec VIP Xây dựng sở liệu FAIR kết nối với VIP Spécialité : Systèmes Intelligents et Multimédia MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de : Sorina Camarasu Pop ATTESTATION SUR L’HONNEUR J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a été bien précisée LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Các thơng tin trích dẫn Luận văn rõ nguồn gốc Signature de l’étudiant Obed MERALUS Remerciements Je souhaite avant tout remercier mes responsables de stage, Sorina Camarasu Pop, Laurent Mahieu-Williame et Frédéric Cervenansky, pour le temps qu’ils ont consacré m’apporter les outils méthodologiques indispensables la conduite de cette recherche L’enseignement de qualité dispensé par le Master « SIM » a également su nourrir mes réflexions et a représenté une profonde satisfaction intellectuelle, merci donc aux enseignants-chercheurs Je remercie en particulier le LABEX PRIMES (ANR-11-LABX-0063/ ANR-11-IDEX-0007) de l’Université de Lyon, et Creatis pour avoir supporté et financé ce stage Un grand merci également Axel Bonnet pour avoir eu la patience de répondre mes questions Enfin, je tiens témoigner toute ma gratitude envers les amis et collègues qui m’ont apporté leur soutien moral et intellectuel tout au long de ma démarche Obed MERALUS Auteur: Obed MERALUS Table des matières Table des figures iii INTRODUCTION GÉNÉRALE 1 PRÉSENTATION DU CONTEXTE ET CADRE DU STAGE 1.1 Contexte du stage et présentation de la structure d’accueil 1.1.1 Contexte du stage 1.1.2 Présentation de la structure d’accueil 1.2 Constat actuel et Problématique 1.2.1 Constat actuel 1.2.2 Problématique 1.3 Objectifs du stage 1.4 Plan de travail : le diagramme de GANTT RECHERCHE & SYNTHÈSE BIBLIOGRAPHIQUE 2.1 État de l’art des principes FAIR 2.1.1 Une base de données "Findable" ou "Facile trouver" 2.1.2 Une base de données "Accessible" 2.1.3 Une base de données "Interopérable" 2.1.4 Une base de données "Reusable" 2.2 Bases de données existantes 2.2.1 Les diverses solutions de base de données 2.2.2 Comparaison des solutions présentées 2.3 Synthèse bibliographique SOLUTION PROPOSÉE 3.1 Conception de la solution proposée 3.1.1 Diagramme de cas d’utilisation 3.1.2 Architecture générale de la solution proposée 3.1.3 Workflow de la solution proposée 3.2 Outils et logiciels utiliser 3.2.1 La plate-forme Girder i 2 2 4 5 7 9 10 10 10 11 12 12 12 13 14 15 15 TABLE DES MATIÈRES DÉVELOPPEMENT DE LA SOLUTION PROPOSÉE 4.1 Mise en place de l’environnement de travail 4.1.1 Ressources matérielles 4.1.2 Les données utilisées 4.2 Mise en œuvre 4.2.1 Mise en place du programme principal : TreatData 4.2.2 Mise en place du plugin Girder TESTS & RÉSULTATS 5.1 F : Findable 5.1.1 Décrire les données travers des métadonnées 5.1.2 Enregistrer/indexer les métadonnées dans une ressource permettant des recherches 5.2 A : Accessible 5.3 I : Interoperable 5.4 R : Reusable CONCLUSION & PERSPECTIVES BIBLIOGRAPHIE A Annexes A.1 Le fichier “setup.py” A.2 Le package “girder_advancedmeta” A.2.1 Le fichier “ init .py ” A.2.2 Le répertoire “web_client” A.3 Installation du plugin A.4 Utilisation du programme A.4.1 Configuration de Girder A.4.2 Expérimentations et résultats avec le programme principal A.4.3 Expérimentations et résultats avec le Plugin Girder Auteur: Obed MERALUS ii 18 18 18 19 22 22 25 28 28 28 29 30 31 32 34 35 36 36 36 36 37 37 37 38 39 40 Table des figures 1.1 Organigramme de CREATIS 1.2 Diagramme de GANTT 2.1 Tableau comparatif des travaux connexes 11 3.1 Diagramme de cas d’utilisation 13 3.2 Architecture de la solution 14 3.3 Workflow de la solution 15 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Résumé des caractéristiques de la machine de travail Résumé des caractéristiques de la machine virtuel qui a servi de serveur Structure des données brutes Fichier en annexe avec les données brutes Nouvelle structure des données Contenu d’un fichier Subject généré par Bruker Contenu du package du plugin Interface du plugin metadata 18 19 20 21 21 23 26 27 5.1 5.2 5.3 5.4 5.5 5.6 Présentation des métadonnées associées au patient DKO140 Exécution d’une recherche sur le poids du patient LL377 Résultat de la recherche sur le poids du patient LL377 Présentation de métadonnées sans les données Présentation du plugin VIP Présentation des attributs des métadonnées associées la collection 29 30 30 31 32 33 A.1 A.2 A.3 A.4 A.5 A.6 Page d’accueill de Girder Création de Collection Lancement du programme Les données avec la nouvelle structure sur Girder Création d’une requête Résultat d’une requête 38 39 39 40 41 41 iii Liste des sigles et acronymes CREATIS entre de Recherche en Acquisition et Traitement de l’Image pour la Santé VIP Virtual Imaging Platform FAIR FINDABLE, ACCESSIBLE, INTEROPERABLE, REUSABLE PILoT Plateforme d’imagerie multimodale sur Lyon Tech IRM Magnetic resonance imaging DICOM Digital Imaging and Communications in Medicine JCAMP-DX The joint Committee on Atomic and Molecular Physical data Data Exchange format Résumé La plateforme d’imagerie multimodale et expérimentale LyonTech PILoT située sur le campus de La Doua Villeurbanne regroupe les modalités d’imagerie par résonance magnétique (IRM), échographie (US) et optique Le domaine d’application est le médical avec la production d’images et/ou de spectres dans ces modalités pour extraire des biomarqueurs les plus pertinents pour diverses pathologies Le devenir des données, acquises lors des expérimentations, après publication est totalement inconnu car aucun suivi, référencement, ou encore une réutilisation n’est mise en place La plateforme open-source Girder [11] développée par Kitware, dont le laboratoire CREATIS a une très bonne mtrise permet la gestion de données Cette solution de base de données (BD) est utilisée dans ce travail car elle est adéquate pour le stockage et la gestion des données issues de la plateforme PILoT Le portail web VIP (Virtual Imaging Platform) [12] sera également utilisé pour l’imagerie médicale Dans le cadre de précédents travaux, il a été mis en place un plugin Girder permettant de lancer des traitements travers les applications disponibles dans VIP Le projet actuel vise mettre en place une base de données FAIR (Findable - Accessible - Interoperable - Reusable), interconnectée avec la plateforme VIP, au sein du laboratoire CREATIS Pour cela, il a été mis en place une base de données de type Girder, qui permet d’accueillir les données issues de PILoT et de gérer leurs droits d’accès conformément au souhait de leurs propriétaires Il y a eu l’extraction et la publication des métadonnées pertinentes, permettant de rendre ces données localisables et retrouvables grâce un plugin de recherche Enfin, pour faire le lien avec les traitements qui peuvent être lancés sur ces données, la base de données a été interconnectée avec la plateforme VIP A l’issue de ce stage, les données de la base de données pourront donc naturellement profiter des fonctionnalités implémentées Mots clés : FAIR, Imagerie médicale, VIP, DICOM, Girder TABLE DES FIGURES INTRODUCTION GÉNÉRALE Dans le contexte médical, où les enjeux liés la réutilisation des données sont de plus en plus importants surtout en terme d’innovation et de préservation de la vie des petits animaux utilisés en laboratoire, les principes FAIR (Findable, Accessible, Interoperable, Reusable ) ont pour but de favoriser le partage et la réutilisation des données exploitables tant par les humains que par les machines Ces principes sont de plus en plus utilisés dans bon nombre de domaines Les actions concrètes entreprendre pour rendre des données FAIR peuvent être différentes suivant les communautés, étant donné que les normes et les informations favorisant l’interopérabilité et la réutilisation diffèrent d’une communauté l’autre De ce fait, en fonction du type de données dont il est question, chaque communauté dộfinit sa faỗon de mettre en place une base de données FAIR Dans ce contexte, le laboratoire Creatis a proposé un sujet qui porte sur la mise en place d’une base de données FAIR provenant de PILoT et interconnectée avec VIP Ce document est élaboré dans le cadre des divers travaux réalisés au cours du stage de fin d’étude, pour l’obtention du diplôme du Master informatique, Spécialité "Systèmes Intelligents et Multimédia" de l’Institut Francophone International(IFI)/Université Nationale du Vietnam, Hanoï(UNVH), en collaboration avec l’Université de La Rochelle, France Les travaux se sont déroulés au sein de Créatis, un laboratoire de recherche technologique Lyon, France Le stage a été réalisé distance (en télétravail) dû au contexte sanitaire, sous la supervision de Laurent Mahieu-Williame, ingénieur de recherche au laboratoire CREATIS et expert de la plateforme PILoT ; Sorina Camarasu Pop et Frédéric Cervenansky, eux aussi ingénieurs de recherche au laboratoire CREATIS, pour les aspects liés la mise en place de base de données Girder et le portail VIP Ce travail est structuré en cinq(05) principaux chapitres : — le premier chapitre fait la présentation du laboratoire Creatis et du contexte du stage, les constats actuels, la problématique, les objectifs et le plan de travail pour notre stage, — le deuxième chapitre concerne la recherche et la synthèse bibliographique, où nous ferons l’état de l’art des principes FAIR et des bases de données existantes, — dans le troisième chapitre, nous présentons la solution technique proposée, ainsi que les outils nécessaires son implémentation dans le quatrième chapitre nous présentons le processus de la mise en place de notre système, — pour finir, dans le cinquième chapitre, nous évaluons la solution mise en place, ainsi que différents scénario de test et les résultats obtenus suite l’expérimentation de notre solution Auteur: Obed MERALUS Chapitre TESTS & RÉSULTATS Pour la réalisation de ce projet, nous avons mis en place une base de données Girder et nous avons implémenté plusieurs modules pour le traitement des données en suivant les principes FAIR La base de données mise en place sur Girder peut avoir plusieures collections et chacune de ces collection peut garantir un certain niveau de FAIR, tous différents les uns des autres L’évaluation de ce travail passe par des tests sur la collection Glycogénose que nous avons mis en place Les principes FAIR seront évalués conformément aux critères détaillées dans la chapitre 5.1 F : Findable 5.1.1 Décrire les données travers des métadonnées Les données sur l’entrepôt Girder sont enregistrées sous forme de dossiers et chaque dossier est associé un ensemble de métadonnées bien spécifique, comme montré dans la figure 5.1 28 CHAPITRE TESTS & RÉSULTATS F IGURE 5.1: Présentation des métadonnées associées au patient DKO140 5.1.2 Enregistrer/indexer les métadonnées dans une ressource permettant des recherches Les métadonnées sont enregistrées et indexées pour permettre de faire des recherches Pour satisfaire ce critère, un plugin a été implémenté et intégré dans Girder au cours de ce stage Il permet de faire des recherches sur une ou plusieures métadonnées bien précises Les figures 5.2 et 5.3 présentent l’interface de recherche du plugin et le résultat obtenu après la recherche Auteur: Obed MERALUS 29 CHAPITRE TESTS & RÉSULTATS F IGURE 5.2: Exécution d’une recherche sur le poids du patient LL377 F IGURE 5.3: Résultat de la recherche sur le poids du patient LL377 5.2 A : Accessible Les métadonnées sont accessibles sur Girder via l’API REST qui utilise le protocole HTTP Le protocole HTTP est un protocole ouvert, gratuit et universellement implémentable L’API permet aussi d’avoir une procédure d’authentification et d’autorisation pour accéder aux données Et les métadonnées restent accessibles, même si les données ne le sont plus, comme présenté dans la figure 5.2, qui présente les métadonnées associées la collection après la suppression des données de la collection Auteur: Obed MERALUS 30 CHAPITRE TESTS & RÉSULTATS F IGURE 5.4: Présentation de métadonnées sans les données 5.3 I : Interoperable Lors de l’extraction, les métadonnées sont enregistrées sous le format json, qui est un format libre et accessible pour la représentation des connaissances De plus, l’interconnection avec VIP (Figure 5.2) permet de faire des traitements sur des machines de calcul distantes en utilisant la base de données comme source de données Auteur: Obed MERALUS 31 CHAPITRE TESTS & RÉSULTATS F IGURE 5.5: Présentation du plugin VIP 5.4 R : Reusable Les métadonnées enregistrées dans la base de données sont décrites de manière riche avec des attributs précis comme le montre la figure 5.3 Ces métadonnées sont associées la collection et permettent un tiers utilisateur de savoir rapidement : — le nom de la collection — le type d’accès, est-ce que la collection est privée ou libre — le type d’image contenu dans la collection — le type de données supporté par la collection, etc De plus, il peut savoir aussi s’il peut utiliser ces données (données privés ou pas) Auteur: Obed MERALUS 32 CHAPITRE TESTS & RÉSULTATS F IGURE 5.6: Présentation des attributs des métadonnées associées la collection La base de données mise en place sur Girder a la capacité d’enregistrer une collection de données en suivant les principes FAIR La collection Glycogénose satisfait chacun des principes FAIR un certain niveau Selon les critères FAIR définis dans le chapitre de l’état de l’art, la collection Glycogénose assure que les données sont trouvables et accessibles avec quelques restrictions Cependant, l’interopérabilité et la réutilisabilité restent encore améliorer Auteur: Obed MERALUS 33 CHAPITRE TESTS & RÉSULTATS CONCLUSION & PERSPECTIVES A partir des données pré-cliniques acquises dans le cadre de l’étude sur la glycogénose, il a été question de mettre en place une base de données FAIR interconnectée avec la plateforme VIP Après avoir défini le contexte et le cadre de stage ainsi que la problématique du sujet traité, une recherche et une synthèse bibliographique ont été réalisées en vue d’une mtrise théorique du sujet Les principes FAIR, indépendants de toute technologie, définissent un ensemble de caractéristiques que doivent avoir les données et les métadonnées pour être découvertes, accessibles, interopérables et réutilisables par les humains et les machines Pour atteindre les objectifs du stage, nous avons entrepris plusieurs actions, tel que décrit dans les chapitres et Il s’agit essentiellement de la conception d’un programme en Python et d’un plugin Girder permettant de rendre FAIR les données issues de PILoT Ce travail a abouti de bon résultats, comme le présente le chapitre 5, quoique des améliorations peuvent y être apportées Les principales améliorations seraient de répondre certains critères des principes FAIR qui n’ont pas pu être entièrement implementés dans le cadre de ce travail Il s’agit de : — assigner aux données un identifiant global unique et pérenne — inclure de manière explicite l’identification des données dans les métadonnés — utiliser de vocabulaires/ontologies conformes aux principes FAIR — inclure de références qualifiées de certaines métadonnées vers d’autres — associer aux données une licence d’utilisation claire et accessible — associer les métadonnées une provenance détaillée Auteur: Obed MERALUS 34 CHAPITRE TESTS & RÉSULTATS BIBLIOGRAPHIE [1] FAIR Principles - GO FAIR (2020) Retrieved 23 September 2020, from https ://www.gofair.org/fair-principles/ [2] The FAIR Data Principles (2014) Retrieved 23 September 2020, from https ://www.force11.org/ group/fairgroup/fairprinciples [3] Dzale Yeumo, E., Alaux, M., Arnaud, E., Aubin, S., Baumann, U., Buche, P et al (2017) Developing data interoperability using standards : A wheat community use case F1000research, 6, 1843 doi : 10.12688/f1000research.12234.2 [4] Preparing Data for Sharing : The FAIR Principles (2020) Retrieved 23 September 2020, from https ://fr.slideshare.net/lshtm/preparing-data-for-sharing-the-fair-principles [5] Wilkinson, M D et al The FAIR Guiding Principles for scientific data management and stewardship Sci Data :160018 doi : 10.1038/sdata.2016.18 (2016) [6] Confluence (2020) Retrieved 23 September 2020, from https ://dtl-fair.atlassian.net/wiki/ spaces/FDP/pages/6127622/FAIR+Data+Point+Software+Specification+Archived [7] Wong, W (2020) The Cell Image Library Retrieved 25 September 2020, from http ://cellimagelibrary.org/images/CCDB_1027 [8] TCIA Collections - The Cancer Imaging Archive (TCIA) (2020) Retrieved 25 September 2020, from https ://www.cancerimagingarchive.net/collections/ [9] MedPix (2020) Retrieved 25 September 2020, from https ://medpix.nlm.nih.gov/search ? iacr=B226225Dallen=falseallt=falsealli=true [10] NBIA (2020) Retrieved 25 September 2020, from https ://imaging.nci.nih.gov/ncia/ sessionExpired.jsp [11] Girder : a data management platform — Girder 3.1.2 documentation (2020) Retrieved 30 September 2020, from https ://girder.readthedocs.io/en/stable/ [12] VIP (2020) Retrieved 30 September 2020, from https ://vip.creatis.insa-lyon.fr/ Auteur: Obed MERALUS 35 Annexe A Annexes A.1 Le fichier “setup.py” Un fichier “setup.py” a été créé pour décrire le package qui va être créé par la suite Les informations du fichier setup.py sont considérées commes les métadonnées associées au package du plugin Il y a en occurrence : — le nom du plugin — le nom du package — la version — la description — l’auteur — l’adresse mail de l’auteur — le point d’entrée du plugin Avec la commande “mkdir” le package du plugin a été créé avec le nom “girder_advancedmeta” A.2 Le package “girder_advancedmeta” Un plugin dans Girder est un package Python autonome, avec un répertoire optionnel «web_client» contenant l’extension cơté client Il contient également un fichier “ init .py ” qui va permettre de faire le pont entre le plugin et Girder A.2.1 Le fichier “ init .py ” Il est ensuite créé l’intérieur du package le fichier “ init .py ” Ce fichier sert de point d’entrée au lancement du plugin Il contient : — le nom du plugin enregistré dans l’attribut “DISPLAY_NAME“ et sera affiché l’utilisateur, 36 ANNEXE A ANNEXES — le chemin complet où se trouve le répertoire contenant une extension de client Web, pour indiquer Girder que notre plugin est de type web client, — la définition de routes pour communiquer travers l’api rest du server Girder A.2.2 Le répertoire “web_client” Un répertoire avec le nom web_client a été créé l’intérieur du package Il représente la partie client du plugin Il contient : — un répertoire avec le nom “stylesheets”, pour enregistrer les feuilles de style de format css ou style, — un répertoire nommé “templates”, pour ajouter les fichiers pour créer les interfaces de type pug ou html, — un répertoire nommé “views”, pour enregistrer les scripts Javascript afin de pouvoir gérer l’affichage côté client, — un fichier “main.js” pour définir les fonctions principales coté client, — un fichier “package.json” qui définit lors de la compilation (build) du code l’ensemble des dépendances du plugin A.3 Installation du plugin Le plugin implémenté peut être intégré dans girder automatiquement avec la commande python setup.py install ou manuellement en copiant le package dans le répertoire “girder_env/lib/python3.7/site-packages” et lancer la commande “girder build” pour activer le code du plugin dans Girder A.4 Utilisation du programme Pour commencer, il faut lancer le serveur Girder Girder propose une interface web qui est accessible travers le port 8080 sur l’adresse “http ://127.0.0.1 :8080” (voir Figure 12) Auteur: Obed MERALUS 37 ANNEXE A ANNEXES F IGURE A.1: Page d’accueill de Girder A.4.1 Configuration de Girder Pour toute manipulation sur l’interface de Girder, l’utilisateur doit s’authentifier avec son nom d’utilisateur ou son email et son mot de passe, s’il est déjà enregistré comme utilisateur sur le serveur Pour s’enregistrer, il faut cliquer sur “Register” qui se trouve en haut droite dans la Figure 4.6 et une fenêtre pour renseigner les informations sera proposée l’utilisateur Après l’enregistrement, l’utilisateur peut se connecter et commencer faire les manipulations La plateforme Girder permet de créer et de gérer des entrepôts de données sous la forme de collections Ainsi, pour créer une collection de données sur Girder, il faut : — cliquer sur l’onglet “Collections” — cliquer sur “Create collection”, une fenêtre appart pour entrer le nom et la description de la collection (Figure 4.7) Auteur: Obed MERALUS 38 ANNEXE A ANNEXES F IGURE A.2: Création de Collection A.4.2 Expérimentations et résultats avec le programme principal La fonction main.py du programme principal prend comme paramètre : — le chemin complet du répertoire où se trouvent les données brutes, — le chemin complet du répertoire où l’on souhaite stocker les données traitées, — le chemin complet et le nom du fichier Excel La commande complète pour lancer le programme en ligne de commande est la suivante (Figure 4.7) : F IGURE A.3: Lancement du programme L’enregistrement des données et métadonnées dans la base Cette partie se fait en deux étapes : Auteur: Obed MERALUS 39 ANNEXE A ANNEXES — l’enregistrement des données dans la collection de Girder , voir Figure 5.1 — l’enregistrement des métadonnées dans la base qui se fait après avoir pousser tous les donnees, voir Figure 5.2 F IGURE A.4: Les données avec la nouvelle structure sur Girder A.4.3 Expérimentations et résultats avec le Plugin Girder Après l’intégration du plugin metadata dans girder dans la barre de menu l’onglet du plugin metadata est visible et permet d’accéder l’interface du plugin si l’utilisateur clique dessus (Figure 5.3) L’interface du plugin est assez simple, nous propose : — une liste déroulante avec l’ensemble de métadonnées sur laquelle on peut faire les recherches — une liste d’opérateurs (=, , etc) — un champs de texte libre pour la valeur de la métadonnées sur laquelle on effectue la recherche — la possibilité de combiner plusieurs critères de recherche Par exemple : Si l’utilisateur veut veut faire une recherche sur tous les patients qui ont un poids supérieure 20 grammes, il suffit de choisir dans le menu déroulant l’attribut “Poids(g)”, l’opérateur “>” et ajouter “20” dans l’espace pour ajouter la valeur de Auteur: Obed MERALUS 40 ANNEXE A ANNEXES la requête L’utilisateur peut voir sa requête affichée dans le champ nomme Query (Figure 18) et si la recherche est lancộe ỗa retourne l’ensemble des patients avec un poids supérieure 20, l’ensemble des études et l’ID des patients (Figure 5.5) F IGURE A.5: Création d’une requête F IGURE A.6: Résultat d’une requête Auteur: Obed MERALUS 41 ANNEXE A ANNEXES Auteur: Obed MERALUS 42 ... sur la mise en place d’une base de données FAIR provenant de PILoT et interconnectée avec VIP Ce document est élaboré dans le cadre des divers travaux réalisés au cours du stage de fin d’étude,... réalisation de ce projet, nous avons mis en place une base de données Girder et nous avons implémenté plusieurs modules pour le traitement des données en suivant les principes FAIR La base de données mise. .. Elles doivent être décrites avec des métadonnées riches incluant notamment et explicitement un identificateur des données qu’elles décrivent, unique et pérenne Deux exemples de ce types d’identificateurs