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.
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.
stays <- sql_query("SELECT * FROM visit_occurrence")nrow(stays)fit <- survfit(Surv(days, death) ~ group, stays)ggsurvplot(fit)Plan
Cliquez sur la prise pour ouvrir les Connexions.
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.

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
| Fichier | Langage |
|---|---|
.py | Python |
.R | R |
.sql | SQL |
.Rmd, .qmd | Notebooks R Markdown |
.ipynb | Notebooks 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.
↑ 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.
Environnements
Python et R s'exécutent sur le serveur en mode full-stack.
| Package | Version | Doc | Statut | Actions |
|---|---|---|---|---|
| matplotlib | 3.9.2 | — | ||
| numpy | 1.26.4 | — | ||
| pandas | 2.2.3 | — | ||
| scikit-learn | 1.5.2 | — |
L'environnement est à jour : tous les packages déclarés sont installés.
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.
| Limite | Valeur par défaut |
|---|---|
| Durée d’une exécution interactive | 2 minutes |
| Durée d’une tâche de fond | 30 minutes |
| Sessions de code simultanées par utilisateur | 5 |
| Inactivité avant fermeture d’une session | 1 heure |
| Aperçu d’un tableau de résultat | 1 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é.