Projet de recherche · Bioinformatique · Data ingestion

RAIDGBS Research Project

Conception et implémentation d’un système capable de récupérer des données de séquences ADN depuis des bases de données biologiques publiques et de les stocker dans une base de données locale structurée.

Expérience associée

CBMN

Analyste-développeur Perl · 2010

Voir l’expérience correspondante

Contexte

Ce projet a été réalisé dans le cadre de mon travail de fin d’études pendant mon bachelier en informatique.

Le travail s’est déroulé au CBMN, le Centre de Biophysique Moléculaire Numérique à Gembloux, et faisait partie du programme de recherche RAIDGBS.

RAIDGBS portait sur l’analyse de séquences génétiques de streptocoques du groupe B, une bactérie pouvant provoquer de graves infections chez les nouveau-nés lorsqu’elle est transmise par la mère pendant la grossesse ou l’accouchement.

L’objectif plus large du programme de recherche était de mieux comprendre la variabilité génétique de ces bactéries afin de contribuer au développement de tests diagnostiques plus rapides et plus abordables.

Mon travail portait sur la construction du système de traitement de données utilisé pour collecter et structurer les données de séquences biologiques utilisées dans cette recherche.

Objectif

Concevoir et implémenter un système capable de récupérer des données de séquences ADN depuis des bases de données biologiques publiques et de les stocker dans une base de données locale structurée.

Le système devait automatiser la récupération et le traitement de ces jeux de données afin que les chercheurs puissent facilement accéder aux informations collectées et travailler avec celles-ci.

Mon rôle

J’étais le développeur principal responsable de l’implémentation du système pendant mon stage de fin d’études.

Le projet a été réalisé sous la supervision du chercheur Sven Steinhauer, qui avait préalablement défini les objectifs de recherche, les sources de données et l’approche technologique.

Mon travail s’est concentré sur l’implémentation technique du système, incluant la conception de la base de données, les scripts de traitement des données et l’automatisation du workflow d’ingestion.

Responsabilités

Défis techniques

Technologies utilisées

Langages

  • Perl
  • SQL
  • Bash

Base de données

  • MySQL

Sources de données

  • Bases de données biologiques publiques

Environnement

  • Linux

Outils

  • NetBeans
  • PhpMyAdmin

Implémentation technique

Le système implémentait un pipeline d’ingestion de données récupérant des jeux de données biologiques depuis des bases de données publiques.

Les scripts Perl étaient responsables de la récupération des jeux de données, de la transformation des données et de la génération de fichiers SQL contenant les requêtes d’insertion.

Un script Bash orchestrant l’ensemble du workflow prenait en charge la création du schéma de base de données, la création des tables, l’exécution des scripts SQL d’insertion et l’application des contraintes d’intégrité une fois les données insérées.

Cela permettait de recréer la base de données depuis zéro et garantissait que l’ensemble du processus d’ingestion pouvait être exécuté automatiquement.

Optimisation des performances

Lors du traitement de jeux de données plus volumineux, le temps d’exécution est devenu un problème pendant le processus d’ingestion.

Plusieurs améliorations ont été implémentées : réduction des requêtes SQL générées inutilement, utilisation de stratégies d’insertion par lots au lieu d’exécuter de nombreuses requêtes d’insertion individuelles, et report de la création des contraintes de clés étrangères après l’insertion massive des données.

Ces optimisations ont réduit significativement le temps d’exécution du pipeline d’ingestion, le faisant passer de plusieurs heures à seulement quelques minutes.

Ce fut l’une de mes premières expériences pratiques liées à la performance des bases de données et à l’optimisation de l’ingestion de données.

Résultats / impact

Le projet a abouti à un prototype fonctionnel capable d’importer des jeux de données expérimentaux dans une base de données structurée.

Le système a automatisé une grande partie du processus d’ingestion de données et a fourni une base pour de futures analyses de données de recherche.

Apprentissages clés