2
Institut Pasteur - Larvahub
Applications recherche scientifique
AVIGNON, FR

About
Présentation du projets Larvahub.
En collaboration avec les chercheurs de l'Institut Pasteur, j'ai participé au développement d'un ensemble d'applications web dédiées à la gestion et à l'exploitation des données issues de l'entraînement de modèles d'intelligence artificielle et de l'analyse de vidéos microscopiques. Ces outils couvraient l'ensemble du cycle de traitement des données, depuis leur collecte et leur annotation jusqu'à l'inférence des modèles et la visualisation des résultats. Mon rôle englobait le développement front-end (Next.js / design système), back-end ( python FastApi, worker Celery), ainsi que des sous tâches de devOps (Docker, Kubernetes, Gitlab CI/CD).
Client
Institut Pasteur
Développeur Fullstack
Louis Castel
Développeur Fullstack
Eric Paoli
Développeur Fullstack
Raphaël Kueny
Développeur Fullstack
Jérémy Dufroy
Chef de projet
Jérémy Grey
Années
2026
Technologies
Next.js, Python (FastAPI), Julia, PostgreSQL, Celery, Redis, Docker, Kubernetes, GitLab CI/CD

Larvahub - Inférence
LarvaHub Inference est une plateforme de traitement et d’analyse de données biologiques permettant de générer automatiquement des fichiers d’inférence à partir de paires de données d’entrée (spine et outline). L’application centralise les traitements, historise les résultats et offre des fonctionnalités de visualisation et de comparaison des données générées. Les utilisateurs peuvent suivre l’avancement des calculs en temps réel, consulter l’historique des exécutions et exporter les résultats pour des analyses complémentaires. Cette solution facilite l’exploitation de modèles d’inférence tout en fournissant un environnement unifié pour la production et l’analyse des données.
L’utilisateur charge des paires de fichiers (spine/outline) via une interface développée en Next.js et sélectionne le type de traitement souhaité (embed, predict ou full). Le backend FastAPI enregistre la demande puis délègue l’exécution à des workers Celery spécialisés, orchestrés par Redis pour le suivi temps réel des tâches. Les traitements produisent des fichiers d’inférence (.h5 et/ou .label) qui sont stockés et référencés dans PostgreSQL afin de constituer un historique complet des exécutions. À partir de cet historique, l’utilisateur peut sélectionner un ensemble de résultats pour générer des visualisations et effectuer des comparaisons graphiques ou statistiques. L’ensemble de la plateforme est conteneurisé avec Docker et déployé automatiquement sur Kubernetes via GitLab CI/CD, Helm et Helmfile, garantissant une exploitation scalable et industrialisée.



8
Mois de collaboration
7
Applicatifs développés
10
à définir
Larvahub - Database
LarvaHub Database est une plateforme de gestion et de diffusion de données biologiques reposant sur une architecture PostgreSQL zéro downtime. Le projet a été conçu pour permettre l’intégration et la mise à jour de bases de données volumineuses sans interruption de service grâce à une stratégie de déploiement Blue/Green. Il met à disposition une interface web de consultation des données ainsi qu’une API REST destinée aux applications du système d’information LarvaHub. Cette approche garantit la continuité des accès tout en automatisant les opérations de mise à jour et de déploiement dans des environnements Kubernetes.
L’architecture s’appuie sur deux instances PostgreSQL exécutées en parallèle (Blue et Green), dont une seule est exposée en production à un instant donné. Lorsqu’un nouveau fichier SQLite est déposé sur un volume partagé, le service SynchroDB détecte l’import, le transforme en fichier SQL valide et le charge dans la base de données inactive. Une fois la synchronisation validée, le trafic est automatiquement basculé vers cette nouvelle instance sans interruption de service. Les données sont ensuite exposées via une API développée avec FastAPI et consommées par une interface utilisateur réalisée en Next.js. L’ensemble de l’infrastructure est déployé automatiquement sur Kubernetes grâce à une chaîne CI/CD GitLab utilisant Docker, Helm et Helmfile pour la gestion des images, des configurations et des releases applicatives.

Larvahub - Portal access
Cette application constitue le portail central de l’écosystème LarvaHub et offre un point d’entrée unique vers l’ensemble des outils et services de la plateforme. Elle permet aux utilisateurs d’accéder rapidement aux différentes applications métier, de naviguer entre les modules disponibles et de centraliser les ressources associées à leurs activités. Le portail améliore l’expérience utilisateur en proposant une interface homogène, simplifiant l’accès aux services et renforçant la cohérence globale de l’écosystème applicatif.
Développé avec Next.js, le portail agit comme une couche de présentation centralisée permettant de référencer et d’exposer les différentes applications de la plateforme. Après authentification, l’utilisateur accède à un tableau de bord regroupant les outils disponibles selon ses droits et ses besoins. L’application gère la navigation entre les différents services, les redirections vers les applications cibles ainsi que la présentation des informations et ressources associées. Son architecture web moderne facilite l’intégration de nouveaux modules tout en offrant une interface performante, responsive et facilement maintenable.

Larvahub - Pretraining
LarvaHub Pretraining est une plateforme intermédiaire dédiée à la préparation et à l’entraînement des modèles sur une base de donnée défini (csv) utilisés au sein de l’écosystème LarvaHub. Elle permet de récupérer les jeux de données générés depuis l’application Database, de lancer des processus d’entraînement du modèle MaggotUBA et de gérer les versions produites. Les modèles entraînés sont ensuite mis à disposition de l’application Inference afin d’améliorer la qualité et la pertinence des prédictions réalisées sur les paires de données spine/outline. Ce projet assure ainsi la continuité entre la gestion des données, l’apprentissage des modèles et leur exploitation opérationnelle.
Lorsqu’un utilisateur sauvegarde une requête dans l’application Database, les données associées deviennent disponibles pour le processus de pré-entraînement. Depuis l’interface Next.js, l’utilisateur peut sélectionner un jeu de données et déclencher un entraînement du modèle MaggotUBA. Le backend FastAPI orchestre les traitements et délègue les tâches longues à des workers Celery, tandis que Redis assure la gestion des files d’exécution et le suivi de progression. Les calculs d’entraînement sont réalisés à l’aide d’un moteur développé en Julia, spécialisé dans l’exécution du modèle de machine learning. Une fois le modèle généré et validé, il est stocké et rendu accessible à l’application Inference, qui l’utilise lors de la génération des fichiers de prédiction à partir des paires spine/outline. L’ensemble de la solution est conteneurisé avec Docker et déployé sur Kubernetes via une chaîne CI/CD GitLab automatisée.

Larvahub - Vidéo
Application de gestion et d’archivage des vidéos comportementales de larves au sein de l’écosystème Pasteur. Elle permet l’import de vidéos au format AVI, leur conversion automatique vers le format FFV1 sans perte afin de garantir la préservation des données scientifiques, puis leur stockage centralisé pour une exploitation par les différents outils de la plateforme.
LarvaTagger
LarvaTagger est une application dédiée à l’annotation manuelle et automatique des comportements et postures de larves de Drosophila. Elle propose une interface web permettant de visualiser les données de suivi, d’associer des étiquettes comportementales et de constituer des jeux de données annotés. La plateforme s’intègre avec le modèle MaggotUBA afin d’automatiser l’identification et la classification des comportements observés. Cette application est centrale dans le processus de création de jeux de données annotés, essentiels pour l’entraînement et l’amélioration des modèles d’intelligence artificielle utilisés dans l’écosystème LarvaHub.
Larvahub - Auth
Service d’authentification centralisé de l’écosystème Pasteur, basé sur des jetons JWT. Il assure la gestion des utilisateurs, l’authentification des sessions et le contrôle des accès aux différentes applications de la plateforme. Cette solution garantit une expérience unifiée et sécurisée à travers l’ensemble des services du système d’information.





