Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Installer LibreChat
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Connecteurs de bases de données
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Projet IDE

IDE

Écrire et exécuter du R, du Python et du SQL dans le projet : l'éditeur, les environnements de packages et les tâches de fond.

En résumé

L’IDE est l’environnement de code du projet : éditeur, console, terminal, et exécution de R, Python et SQL. En mode serveur, les packages se déclarent dans un environnement géré qui part avec le projet, de sorte qu’un collègue retrouve les mêmes versions. En mode serveur, le code s’exécute sur le serveur ; en mode navigateur, dans votre onglet.

Client Disponible en mode client-only — tout fonctionne dans le navigateur, sans backend. Backend Disponible avec le backend FastAPI.

Coder là où sont les données

L’organisation habituelle sépare les outils : les données d’un côté, RStudio ou Jupyter de l’autre, et entre les deux des exports manuels que l’on refait à chaque mise à jour.

L’IDE de Linkr met le code dans le projet. Vos scripts accèdent aux jeux de données et aux bases par des chemins stables, ils partent dans l’export avec le reste, et ils se versionnent avec les cohortes et les tableaux de bord.

Ce n'est pas un remplaçant de RStudio

C’est un environnement de travail intégré, pas un IDE de développement logiciel. Pour une analyse, un nettoyage, une figure, il fait le travail. Pour développer un package R, restez sur vos outils.

L’écran

Quatre zones côte à côte : l’explorateur de fichiers à gauche, l’éditeur au centre en onglets, le plan d’un notebook, puis le panneau de sortie à droite. La barre d’outils de l’éditeur porte le bouton Exécuter et, à droite, les paramètres, les raccourcis clavier, les Connexions, les terminaux, et les bascules du plan et de la sortie. Sous l’écran, la barre d’état donne accès aux tâches de fond et aux Environnements.

demo.linkr.interhop.org
prepare_cohort.R
report.Rmd
model.py
extract.sql
1Fichiers
Exécuter
prepare_cohort.Rreport.Rmd
r · cohort
1stays <- sql_query("SELECT * FROM visit_occurrence")
2nrow(stays)
r · km-plot
1fit <- survfit(Surv(days, death) ~ group, stays)
2ggsurvplot(fit)
2Éditeur

Plan

YAML
Markdown 2
load-data
cohort
km-plot
R 6
3Plan
ConsoleFigureTableau
4Sortie
ServeurTâches|Environnements|2 sessions

Cliquez sur la prise pour ouvrir les Connexions.

Les quatre zones de l'IDE sur un notebook R Markdown : fichiers (1), éditeur (2), plan du notebook avec l'état de chaque cellule (3), sortie avec ses onglets Console, Figure et Tableau (4). Cliquez sur l'icône de prise pour ouvrir le panneau Connexions et choisir la base interrogée.

Le panneau de sortie sépare les types de résultats : Console pour le texte, plus des onglets dédiés aux figures, aux tableaux et aux rendus HTML ou markdown.

Les terminaux s’ouvrent en onglets dans l’éditeur, depuis l’icône Terminal : un Terminal Bash, une Console Python, une Console R.

L'IDE sur un notebook R Markdown : l'arborescence à gauche, les cellules de code et leurs résultats au centre, le plan du notebook à droite. La fonction sql_query() interroge directement la base active.
L'IDE sur un notebook R Markdown : l'arborescence à gauche, les cellules de code et leurs résultats au centre, le plan du notebook à droite. La fonction sql_query() interroge directement la base active.

Réutiliser les onglets de sortie

Par défaut, chaque exécution ouvre de nouveaux onglets. L’option Réutiliser les onglets de sortie, dans les paramètres de l’IDE, fait qu’une réexécution remplace le tableau et les figures du script au lieu d’empiler. Sur un script qu’on relance cinquante fois, c’est un confort considérable.

Le thème de l’éditeur, la police et la sauvegarde automatique se règlent dans votre profil, pas ici — ce sont des préférences personnelles, pas des réglages de projet.

Les connexions

Le panneau Connexions dit sur quelle base de données s’exécutent le SQL et la fonction sql_query(). Il liste deux familles : les Bases de données Warehouse, c’est-à-dire les bases liées au projet, et les Connexions personnalisées, propres à l’IDE, qu’on crée avec Ajouter une connexion. Un clic sur une ligne en fait la connexion active ; le choix est enregistré avec le projet. La liste à côté du bouton Exécuter fait le même choix sans ouvrir le panneau.

Les langages

FichierLangage
.pyPython
.RR
.sqlSQL
.Rmd, .qmdNotebooks R Markdown
.ipynbNotebooks Jupyter

Les notebooks s’exécutent cellule par cellule, avec un plan à droite qui liste les cellules et leur état.

Exécuter

Le bouton Exécuter lance le fichier entier ; sa flèche propose quatre gestes : le fichier, la sélection, la ligne courante, ou — en mode serveur, et hors SQL — le fichier en tâche de fond.

demo.linkr.interhop.org
Exécuter
Exécuter le fichierCtrl+Shift+↵
Exécuter la sélectionCtrl+↵
Exécuter la ligneCtrl+↵
Exécuter le fichier en tâche de fondCtrl+Shift+J

↑ mode serveur

Le menu du bouton Exécuter, avec les raccourcis par défaut (⌘ au lieu de Ctrl sur Mac). Le même raccourci exécute la sélection s'il y en a une, sinon la ligne courante. L'exécution en tâche de fond n'apparaît qu'en mode serveur.

Les raccourcis clavier sont redéfinissables depuis la fenêtre des raccourcis, accessible dans la barre d’outils.

Où votre code s’exécute

C’est la différence la plus importante entre les deux modes de déploiement, et elle change ce que vous pouvez faire.

Mode serveur

De vrais processus R et Python, sur le serveur.

Tous les packages de CRAN et de PyPI, la sortie qui s’affiche au fil de l’exécution, des terminaux complets, et les tâches de fond.

Mode navigateur

R et Python compilés pour le navigateur.

Rien à installer, rien qui sorte de votre machine — mais un choix de packages restreint, la sortie en une fois à la fin, et pas de tâches de fond.

Le bandeau d’un terminal indique toujours lequel des deux vous utilisez.

Le SQL, lui, ne change pas

Une requête SQL s’exécute sur la base active dans les deux modes, avec un aperçu limité à 1 000 lignes. Il faut simplement qu’une connexion soit sélectionnée, sinon le bouton Exécuter reste inactif.

Accéder aux données du projet

Deux bibliothèques sont disponibles dans toute session Linkr, une pour chaque langage. Elles donnent les chemins du projet :

import linkr
import pandas as pd

df = pd.read_csv(linkr.datasets_dir() / "cohorte.csv")

con = linkr.connect("mimic")          # une base liée au projet, en lecture seule
patients = con.sql("SELECT * FROM person LIMIT 100").df()
library(linkr)

df <- read.csv(file.path(linkr_datasets_dir(), "cohorte.csv"))

Ne déduisez jamais un dossier d'un autre

Écrire ”../datasets” ou partir du répertoire courant fonctionne — jusqu’au jour où quelqu’un déplace l’un des dossiers dans les paramètres du projet. Les trois emplacements (code, IDE, jeux de données) sont indépendants et repositionnables séparément. Utilisez toujours les accesseurs.

Ces fonctions fonctionnent aussi hors de Linkr : lancé sur votre poste, le même script retombe sur le répertoire courant, avec un avertissement. Un script écrit ici reste donc exécutable ailleurs.

Un CSV écrit dans le dossier des jeux de données devient un jeu de données

Le dossier est lu directement sur le disque : un fichier qu’un script y dépose apparaît dans Laboratoire › Jeux de données, sans étape d’import. Il faut parfois rafraîchir la liste pour le voir. Attention, le fichier doit atterrir dans ce dossier — un CSV écrit à côté reste un fichier de l’IDE.

Les environnements de packages

C’est le mécanisme qui rend une analyse reproductible, et il mérite d’être compris. Il concerne le mode serveur ; le mode navigateur a ses propres règles, plus bas.

Chaque projet a un environnement Python et un environnement R. Vous y déclarez vos packages ; Linkr les installe dans un espace isolé propre au projet. La liste et les versions exactes sont versionnées avec le projet, dans son dossier environments/.

La conséquence est celle qu’on attend : un collègue qui importe votre projet reconstruit le même environnement, avec les mêmes versions, et obtient les mêmes résultats.

Déclarer des packages

La fenêtre Environnements s’ouvre depuis la barre d’état, en bas de l’écran. Un onglet par langage ; on y ajoute plusieurs packages à la fois, séparés par des virgules, en épinglant une version au besoin : pandas, numpy==1.26. Un environnement encore vide propose Installer les packages par défaut du workspace : le jeu de départ défini dans les paramètres de l’espace de travail.

demo.linkr.interhop.org

Environnements

Python et R s'exécutent sur le serveur en mode full-stack.

PythonÀ jour
PackageVersionDocStatutActions
matplotlib3.9.2—
numpy1.26.4—
pandas2.2.3—
scikit-learn1.5.2—

L'environnement est à jour : tous les packages déclarés sont installés.

Options avancées
La fenêtre Environnements en mode serveur. Ajoutez un package (par exemple seaborn) : l'environnement passe à « Non construit ». Reconstruire l'installe (« Construction… »), puis le badge revient à « À jour ». Vérifier les mises à jour signale, package par package, une version plus récente.

Un badge dit où en est l’environnement : Non construit quand la liste a changé sans être encore installée, Construction… pendant l’installation, Échec de construction si elle a échoué, et À jour quand tout ce qui est déclaré est installé. La construction se déclenche par le bouton Reconstruire, ou automatiquement au premier lancement de code. L’option Reconstruire automatiquement applique chaque changement immédiatement ; désactivée, les modifications attendent la construction suivante.

Mettre à jour

Vérifier les mises à jour interroge le dépôt de packages — à la demande, jamais automatiquement — et remplit la colonne Statut : À jour, ou la version disponible. Chaque ligne a son bouton Mettre à jour, et Tout mettre à jour fait passer chaque package à sa dernière version. Dans les deux cas l’environnement redevient Non construit — ou se reconstruit aussitôt si Reconstruire automatiquement est coché.

Les Options avancées règlent la source des packages — le dépôt CRAN pour R, l’index PyPI pour Python —, utile derrière un miroir interne à l’hôpital. Laissées vides, elles reprennent le réglage du workspace.

Éviter pip install et install.packages() dans un script

Cela fonctionne, et Linkr ne l’interdit pas — mais il vous avertit. Un package installé de cette façon est utilisable maintenant, et jusqu’à la prochaine reconstruction de l’environnement sur cette machine. Il n’est pas enregistré dans la liste versionnée : absent de l’export, absent du dépôt git, absent chez vos collègues.

L’avertissement propose un bouton pour refaire l’installation proprement dans l’environnement.

En mode navigateur, les packages sont plus limités

L’installation fonctionne, et survit à un rechargement de page. Mais les packages sont ceux du navigateur, pas du projet : partagés entre vos projets, ils ne sont ni versionnés ni exportés. Les packages compilés — pandas, numpy — sont figés à la version fournie par le moteur, et l’épinglage de version n’existe pas du tout pour R.

Sessions et tâches de fond

Plusieurs sessions

Une session est un espace de travail de code indépendant, comme une seconde console dans RStudio. Utile pour faire tourner un calcul long d’un côté tout en explorant de l’autre.

Chaque session est propre à un langage : une session R n’apparaît que sur un script R.

Une session ouverte avant une reconstruction garde l'ancien environnement

Elle continue d’utiliser l’interpréteur précédent : les packages installés depuis ne sont pas importables. Linkr le signale et propose de redémarrer la session — ce qui efface ses variables.

Exécuter en tâche de fond

Exécuter le fichier en tâche de fond lance le script dans un processus neuf, suivi depuis le panneau des tâches en bas de l’écran. Vous pouvez fermer le fichier, changer de page : le calcul continue, et ses figures comme son tableau de résultat sont conservés.

Une tâche de fond ne voit pas vos variables

Elle démarre avec un espace de travail vide. C’est délibéré : un traitement long doit être reproductible, donc repartir de zéro. Pour lui transmettre des données, écrivez un fichier dans le projet.

Limites et droits

L’exécution de code est le droit le plus sensible de Linkr — il permet de faire tourner du code arbitraire sur le serveur. Il est donc distinct du droit d’afficher un tableau de bord, et réservé aux rôles d’édition.

Un administrateur peut désactiver complètement l’exécution de code sur une instance.

Les valeurs suivantes sont celles par défaut en mode serveur ; un administrateur peut les ajuster.

LimiteValeur par défaut
Durée d’une exécution interactive2 minutes
Durée d’une tâche de fond30 minutes
Sessions de code simultanées par utilisateur5
Inactivité avant fermeture d’une session1 heure
Aperçu d’un tableau de résultat1 000 lignes

Pour aller plus loin

  • Jeux de données — ce que les scripts lisent et produisent.
  • Applications web — faire tourner une application Shiny ou Streamlit depuis ce code.
  • Versioning et export — ce qui part avec vos scripts.
  • Collections de scripts SQL — pour du SQL destiné à être partagé.
PrécédentJeux de donnéesSuivantApplications web

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (logiciel)