Créer un projet
Comment créer et configurer un projet
Introduction
Un projet peut correspondre à une étude (par exemple une étude sur la prédiction de la mortalité), mais également à des analyses de données hors étude, tels que la création de tableaux de bord (un tableau de bord permettant de visualiser l’activité d’un service hospitalier par exemple).
LinkR est une application de data science dite low-code, ce qui signifie que vous pourrez :
- Visualiser et analyser vos données via une interface graphique, sans recourir à un langage de programmation, via la création d'onglets et de widgets (c'est la fonctionnalité no-code)
- Analyser vos données via des scripts de programmation en R ou Python, avec toutes les librairies et fonctionnalités disponibles dans chacun de ces langages de programmation (c'est la fonctionnalité code)
Nous allons dans ce chapitre voir :
- Comment créer et configurer un projet
- Comment explorer les concepts présents dans un set de données
- Comment organiser ces données à l'aide d'onglets, de widgets de et scripts
- Et enfin comment partager ce projet avec la communauté
Créer un projet
Pour commencer, rendez vous sur la page des projets, depuis le menu en haut de l’écran ou depuis la page d’accueil.
Cliquez ensuite sur “Créer un projet”.
Choisissez un nom pour votre projet ainsi que le set de données à utiliser, puis cliquez sur “Ajouter”.
Vous pourrez toujours changer le set de données à utiliser pour ce projet plus tard, dans la configuration du projet.
Cliquez sur le projet pour l’ouvrir.
Vous arrivez sur la page d’accueil de votre projet.
Vous voyez ici que l’on a les données de 100 patients, étant donné que l’on a choisi le set de données “MIMIC-IV démo” lors de la création du projet.

La page d’accueil du projet est divisée en plusieurs onglets (en haut à droite de l’écran) :
Voyons ces onglets un à un :
- Sommaire : c’est la page que l’on a vu à l’instant, ici sont affichées les informations principales relatives au projet : le ou les auteur(s), la description du projet, une vue rapide sur les données chargées
- Données : ici sont disponibles les détails des données chargées dans ce projet : combien de patients, combien de séjours, combien de lignes par table OMOP, avec quelques figures pour visualiser les données démographiques
- Data cleaning : ici seront configurés les scripts de data cleaning qui s’appliqueront aux données au chargement du projet
- Partage : cet onglet permet partager votre projet avec le reste de la communauté (en le téléchargeant au format Zip ou en mettant à jour un dépôt Git)
Notons que le nom du projet apparaît en haut de l’écran. Si je suis sur une autre page du projet (Données individuelles par exemple) et que je clique sur le nom, j’atterirai de nouveau sur la page d’accueil du projet.
A droite du nom du projet sont apparus plusieurs boutons :
- Données individuelles (icône avec un seul personnage) : pour vous rendre sur la page où vous pourrez configurer les données pour créer un dossier patient
- Données agrégées (icône avec plusieurs personnages) : il s’agit de la page où vous pourrez visualiser et analyser des données de cohorte
- Concepts (icône avec une liste) : vous pourrez rechercher des concepts parmi ceux présents dans le set de données importé
- Subsets (disponible en cliquant sur les trois points) : vous pourrez créer des sous-ensembles de patients en les filtrant selon des critères
- Fichiers du projet (disponible également en cliquant sur les trois points) : vous pourrez gérer des scripts (R ou Python) et des fichiers de données crées dans le cadre du projet
Notre projet étant créé, nous allons le configurer.
Nous allons parcourir les onglets du projet un à un (Sommaire, Données et Data cleaning).
Sommaire
Ici il s’agit principalement de modifier les informations concernant votre projet, ce qui facilitera son partage.
Pour ce faire, cliquez sur le bouton “Editer les informations” à gauche de l’écran (depuis l’onglet Sommaire).
Vous pourrez alors modifier les informations suivantes :
- Nom : c’est le nom du projet
- Auteurs : les différents auteurs du projet, vous pouvez séparer les noms avec un point virgule (Jane Doe; John Doe)
- Version : ceci permettra à la communauté de connaître la version du projet, afin de le mettre à jour en cas de modifications
- Description courte : une description du projet en un phrase
- Donner l’accès : ceci définira qui aura accès au projet au sein de votre instance de LinkR
Les quatre premiers champs concernent donc la description du projet (ces informations seront utiles notamment en cas de partage du projet), tandis que le dernier élément concerne l’accès au projet uniquement au sein de votre instance de LinkR.
Notez le menu déroulant en haut à droite, “Français” : vous pouvez modifier le nom et la description courte du projet dans différentes langues, ce qui facilitera son partage.

Nous avons pour le moment donné une brève description du projet, mais les utilisateurs auront besoin de plus d’informations pour comprendre votre projet.
Pour cela, vous pouvez modifier la description longue du projet.
Cliquez sur le bouton “Modifier la description” à droite de l’écran.
Vous verrez alors apparaître un éditeur de texte en markdown.

Pour visualiser le rendu (en HTML), cliquez sur le bouton exécuter en haut à droite de l’éditeur (icône Play), ou utilisez le raccourci CTRL/CMD + SHIFT + ENTER.
Pour sauvegarder les modifications, cliquez sur l’icône “Sauvegarder les modifications” (icône check), ou utilisez le raccourci CTRL/CMD + S.
Tout comme la description courte, vous pouvez créer une description par langue.
Pensez à sauvegarder les modifications des informations de votre projet.
Données
Rendez-nous maintenant dans l’onglet “Données” de notre projet.
Si un set de données est sélectionné, vous allez voir différentes informations concernant ce set de données :
- Nombre d’établissements de santé dont sont issus les patients
- Nombre de patients
- Nombre de séjours hospitaliers
- Quantité de données par table du schéma OMOP (nombre de lignes)
- Visualisation de quelques distributions de données (en cliquant sur “Patients” ou “Séjours”) : âge, sexe, services hospitaliers…

Vous pouvez à tout moment changer le set de données chargé dans votre projet, en modifiant la valeur du menu déroulant.
Pour que le nouveau set de données soit chargé immédiatement, cliquez sur l’icône “Play” à côté du menu déroulant.
Scripts de data cleaning
Cette partie là est encore en développement, patience !
Ceci permettra d’appliquer des scripts de pré-traitement des données, par exemple :
- Appliquer un script permettant d’exclure les données aberrantes de poids et taille
- Appliquer un script permettant de calculer le score SOFA quotidiennement
Explorer les concepts
Rendez-vous sur la page des concepts du projet via l’icône à droite du nom du projet, en haut de l’écran.
Vous arriverez sur cette page. Sélectionnez une terminologie dans le menu déroulant pour charger ses concepts.
En sélectionnant une terminologie, vous verrez apparaître dans le tableau les différents concepts de cette terminologie utilisés dans le set de données chargé pour votre projet.
Vous verrez le nombre de patients ayant au moins une fois ce concept dans la colonne “Patients”, et le nombre de lignes toutes tables confondues associées à ce concept, dans la colonnes “Lignes”.
Lorsque vous cliquez sur un concept dans le tableau, les informations relatives à ce concept apparaîtront à droite de l’écran.
Vous pouvez notamment récupérer l’ID du concept, qui vous servira lorsque vous requêterez les tables OMOP. Vous pouvez également voir la distribution des valeurs du concept dans le set de données chargé.
Vous pouvez filtrer les concepts sur leur nom, avec le menu en haut de la colonne “Nom du concept”. Vous pouvez également choisir quelles colonnes du tableau afficher. Il s’agit des colonnes de la table OMOP CONCEPT.

Tous ces noms de terminologies peuvent donner le vertige !
Pour démêler tout cela, nous allons rapidement voir ce qu’est le modèle OMOP et ce qu’est le processus d’ETL.
Modèle OMOP
Le modèle OMOP est un modèle de données standard pour les données de santé.
C'est une manière d'organiser les données de santé, sous la forme d'une base de données avec des tables, chacun stockant un type de données particulier.
Par exemple :
- La table PERSON stocke les données sur les individus (principalement les patients)
- La table VISIT stocke les données sur les séjours hospitaliers
- La table CONDITION stocke les informations sur les diagnostics des patients
Chaque information dans la base OMOP est codée à l'aide d'un concept, appartenant à une terminologie.
Chaque concept a un identifiant unique que vous pouvez retrouver via le requêteur ATHENA.
Les concepts sont stockées dans les colonnes _concept_id
des différentes tables OMOP.
Processus d'ETL
Pour obtenir des données au format OMOP depuis les logiciels médicaux, il est nécessaire de réaliser un processus d'ETL (Extract, Transform and Load).
Durant ce processus, les données sont transformées pour être adéquates au modèle de données OMOP (chaque logiciel stocke ses données d'une façon différente).
Les différents concepts locaux sont alignés sur les concepts standards OMOP. Par exemple, le code de la fréquence cardiaque d'un hôpital sera aligné au concept standard "Heart rate" de la terminologie standard LOINC.
Ce processus d'alignement des concepts est long et compliqué, étant donné qu'il existe des milliers de code à aligner, souvent manuellement.
C'est pourquoi la majorité des sets de données OMOP ont une partie seulement des concepts qui sont alignés.
C'est pour cela que vous voyez dans le menu déroulant ci-dessus certaines terminologies standards (LOINC, SNOMED), et d'autres locales - non standards (préfixées par mimiciv).
Pour plus d’informations sur les terminologies, rendez-vous sur la page dédiée de la documentation.
Pour recharger le décompte des concepts, vous pouvez cliquer sur l’icône “Recharger le décompte” en haut à gauche de l’écran.
Maintenant que nous avons chargé un set de données et exploré les concepts le composant, nous allons pouvoir visualiser et analyser ces données, à l’aide de widgets.
Pour cela, rendez-vous sur la page des Données individuelles, soit à partir de l’onglet sommaire du projet, soit à partir de l’icône en haut de l’écran, à droite du titre du projet (celle avec un seul individu).
Vous arriverez sur la page des Données individuelles, où vous allez recréer un dossier patient selon les besoins de votre projet.

Le menu à gauche de l’écran vous permet :
- d’ajouter des onglets : les onglets permettent d’organiser les différents widgets
- d’ajouter des widgets : nous allons le voir, les widgets sont la brique élémentaire composant les projets. Ils permettent de visualiser et d’analyser les données à l’aide de plugins
- d’éditer la page : une fois les widgets créés, vous pourrez changer leur disposition sur la page. Vous pourrez également modifier ou supprimer les onglets.
- de sélectionner des patients : chaque subset contient plusieurs patients, chaque patient a un ou plusieurs séjours (séjour hospitalier ou consultation)
C’est à vous de choisir comment organiser votre projet.
Pour la page des données individuelles, il est habituel de créer un onglet par thématique, avec par exemple un onglet “Hémodynamique” rassemblant les données relatives à l’état hémodynamique d’un patient, ou un onglet “Infectiologie” pour afficher les éléments en rapport avec les problématiques infectieuses : traitements antibiotiques, prélèvements microbiologiques etc.
Créons un premier onglet “Hémodynamique”. Pour cela, cliquez sur le bouton “+ Onglet” à gauche de l’écran, puis choisissez un nom.
Vous aurez un nouvel onglet vide. Les onglets sont affichés à droite de l’écran.
Nous allons maintenant pouvoir ajouter différents widgets à cet onglet. Cliquez sur le bouton “+ Widget” à gauche de l’écran.

Il vous faudra :
- choisir un nom
- choisir un plugin
- choisir des concepts
Un plugin est un script écrit en R et/ou Python permettant d’ajouter des fonctionnalités à l’application.
Il existe des plugins spécifiques aux données individuelles, d’autres aux données agrégées, et d’autres mixtes.
Chaque plugin a une fonctionnalité principale.
Certains plugins servent à visualiser un type de données, par exemple le plugin permettant de visualiser les données de prescriptions sous forme de timeline, ou encore le plugin permettant d’afficher les données structurées sous forme de tableau.
D’autres servent à analyser les données, par exemple le plugin servant à créer un modèle de régression logistique, ou encore celui permettant d’entraîner des modèles de machine learning.
Chaque étape d’un projet de data science peut être transformée en plugin, afin de gagner en temps et en qualité dans l’analyse des données. LinkR a pour objectif de proposer de plus en plus de plugins, grâce au travail de sa communauté.
Pour l’exemple, nous voulons afficher les paramètres hémodynamiques des patients sous forme de timeline.
Nous allons donc cliquer sur “Sélectionner un plugin”.
Pour afficher la description d’un plugin, cliquez sur l’icône “Information”.
Vous aurez alors une description des fonctionnalités du plugin, ce qui vous permet de savoir si c’est le plugin dont vous avez besoin pour afficher les données comme vous le souhaitez.
Cliquez sur le plugin “TImeline var. continues” afin de le sélectionner/
Sélectionnons maintenant quels concepts afficher, en cliquant sur “Sélectionner des concepts”.

Pour l’exemple, nous avons sélectionné les concepts de fréquence cardiaque et de pressions artérielles systolique, diastolique et moyenne avec la terminologie LOINC.
Choisissons un nom, par exemple “Timeline hémodynamique” et cliquons sur “Ajouter”. Notre widget va apparaître sur la page.
Un widget apparaîtra souvent sous la même forme, avec trois ou quatre icônes en haut du widget, deux boutons à gauche et le nom du fichier de sauvegarde.
Commençons par le menu en haut du widget.
Les icônes sont, de gauche à droite :
- Figure : permet d’afficher la figure ou plus globalement le résultat que le plugin est censé afficher
- Paramètres de la figure : permet de configurer la figure à l’aide d’une interface graphique
- Code de la figure : permet d’éditer le code R ou Python qui permet d’afficher la figure
- Paramètres généraux : ce sont les paramètres généraux du widget, permettant par exemple d’afficher ou de masquer certains éléments
Chaque widget fonctionne de la même façon : une interface graphique permet de configurer la figure. Lorsque les paramètres sont modifiés, le code R ou Python correspond peut être généré. Une fois ce code généré, il peut être modifié directement avec l’éditeur de code, ce qui permet d’aller au-delà ce que propose l’interface graphique seule.
Les widgets fonctionnent avec des fichiers de sauvegarde, permettant de sauvegarder à la fois les paramètres de la figure et le code de la figure. Ceci permet de créer plusieurs configurations pour un même widget.
Pour choisir un fichier de sauvegarde, cliquez sur le nom du fichier (ici “Pas de fichier de sauvegarde sélectionné”), puis sélectionnez le fichier dans le menu déroulant.
Pour créer un fichier de sauvegarde, cliquez sur l’icône “+” sur cette même page, choisissez un nom et créez le fichier. Pour ce premier exemple, nous choisissons le nom “Set hémodynamique 1”.
Une fois le fichier créé, les paramètres sauvegardés dans les pages “Paramètre de la figure” et “Code de la figure” seront sauvegardés dans ce fichier.
Avant de configurer notre figure, regardons les “Paramètres généraux” du widget.
Dans la rubrique “Affichage”, nous pouvons choisir d’afficher ou de masquer le fichier de sauvegarde sélectionné.
Nous pouvons également choisir d’afficher les paramètres et l’éditeur côte à côte avec la figure. Ceci permettra de diviser l’écran du widget en deux parties, avec la figure à gauche et les paramètres ou le code de la figure à droite, ce qui est utile pour voir rapidement le résultat de nos paramètres.
Dans la partie “Exécution du code”, nous pourrons choisir d’exécuter le code au chargement d’un fichier de sauvegarde : au chargement d’un projet par exemple, le dernier fichier de sauvegarde sélectionné sera chargé, ce qui permet d’initialiser tous les widgets au chargement du projet. Je peux aussi choisir de ne pas charger un widget, s’il est susceptible de prendre du temps à s’exécuter et s’il n’est pas forcément nécessaire dès le chargement du projet.
L’option “Exécuter le code lors de la mise à jour des données” permet par exemple de mettre à jour la figure lorsque le patient change, si ce widget utilise les données patient par patient.
Nous allons donc choisir de masquer le fichier de sauvegarde, d’afficher les paramètres ou l’éditeur côte à côte avec la figure, et d’exécuter le code à la fois lors du chargement du fichier de sauvegarde et lors de la mise à jour des données.
Nous voyons disparaître le nom du fichier de sauvegarde, et également l’icône de la figure : en effet, la figure s’affichera dans les onglets “Paramètres de la figure” et “Code de la figure”.
N’oubliez pas de sauvegarder vos paramètres généraux avec l’icône à gauche du widget. Les paramètres généraux du widget dépendent du widget, et non d’un fichier de sauvegarde.
Avant d’afficher nos données, réglons un dernier détail : faisons en sorte d’agrandir le widget.
Pour cela, cliquez sur “Editer la page” à gauche de l’écran. Vous verrez alors apparaître de nouvelles icônes en haut à droite du widget :
- une icône pour passer le widget en plein écran, ce qui est utile dans la phase de configuration du widget
- une icône pour modifier le widget, si l’on veut modifier le nom, ou ajouter ou supprimer des concepts
- une icône pour supprimer le widget
Il y a également des icônes aux quatre coins, qui permettent de définir la taille du widget.
Faisons en sorte que le widget prenne toute la largeur de l’écran et un tiers de sa hauteur.

Puis passons le en mode plein écran. Cliquez sur “Validez les modifications” à gauche de l’écran pour sortir du mode “Edition”.
Allons dans la rubrique “Paramètres de la figure” afin de configurer notre figure.
Pour ce plugin, nous avons trois options :
- Données à afficher : veut-on afficher les données du patient sélectionné, ou uniquement du séjour sélectionné ?
- Concepts : quels concepts afficher ? Nous voyons ici apparaître les concepts que nous avons sélectionné lors de la création du widget. On peut choisir de n’en afficher que certains.
- Synchroniser les timelines : ceci peut être utile pour synchroniser différents widgets entre eux.
Sélectionnez “Données du patient” dans “Données à afficher”, puis “Heart rate” dans le menu déroulant des concepts.
Cliquez ensuite sur l’icône “Sauvegarder” à gauche du widget, puis sur l’icône “Afficher la figure” (icône Play).
Il vous sera demandé de sélectionner un patient : en effet, nous n’avions pas encore choisi de patient.
Commencez par sélectionner “Tous les patients” dans le menu déroulant “Subset”, puis n’importe quel patient.
Etant donné que nous avions sélectionné le fait de mettre à jour le code au changement de patient, vous devriez voir la fréquence cardiaque du patient sélectionné sous forme de timeline.

Cliquez de nouveau sur “Editer la page”, puis sortez du mode plein écran. Votre widget devrait reprendre les dimensions que vous aviez attribuées : un tiers de la hauteur de la page et toute la largeur, ce qui est adapté pour cette timeline.
Vous pouvez zoomer sur la figure, et changer l’intervalle de temps sélectionné.

A vous de jouer !
Tentez maintenant de :
- Créer un nouveau fichier de sauvegarde pour le widget actuel, "Set hémodynamique 2" par exemple
- Configurer le widget pour afficher la fréquence cardiaque et les pressions artérielles systolique, diastolique et moyenne
- Créer un nouveau widget avec le plugin "Tableau de données", où vous afficherez les mêmes concepts
- Synchroniser les timelines des deux widgets
Vous devriez obtenir quelque chose comme ceci :

Nous avons vu comment créer des onglets et des widgets pour créer un dossier patient, sur la page “Données individuelles”.
Le principe est le même pour la page des “Données agrégées”, sauf que les onglets correspondent généralement à des étapes d’un projet de recherche, avec par exemple un widget pour créer l’outcome de l’étude, un widget pour exclure les données aberrantes ou encore un widget pour entraîner des modèles de machine learning.
Scripts et fichiers
A venir…
Partager le projet
Une fois votre projet configuré, vous pouvez le partager en l’intégrant à vos dépôt Git, directement depuis l’application.
Rendez-vous sur l’onglet “Partage” depuis la page principale du projet (en cliquant sur le nom du projet, en bleu, en haut de la page).
Le tutoriel pour partager du contenu est disponible ici.
Conclusion
Nous avons vu comment créer et configurer un projet, afin de visualiser et analyser les données grâce à l'interface low-code de LinkR.
Nous allons voir dans la suite de la documentation :