# dbparser : des bases de données pharmacologiques complexes à des workflows R reproductibles

HTML canonique: https://dsti.school/fr/techblog/dbparser-donnees-pharmacologiques-r

Cette version Markdown est générée par le même build du site statique DSTI que la page HTML canonique. Elle est destinée à la lisibilité machine et à une consultation concise.

[DSTI TechBlog](https://dsti.school/fr/techblog)  /  Alumni

Alumni Logiciel de recherche open source

Un projet étudiant est devenu une véritable infrastructure de recherche, maintenue et évaluée par les pairs. Mohammed Ali, diplômé de DSTI, a créé `dbparser` pour transformer des bases de données pharmacologiques incompatibles en objets R cohérents et en workflows d’intégration reproductibles.

MA Mohammed Ali Diplômé de DSTI · Auteur et mainteneur de dbparser · R et intégration de données pharmacologiques

23 juin 2026 12 min de lecture CRAN · rOpenSci · JOSS

R dbparser pharmacovigilance bioinformatique open-source recherche-reproductible

![Logo officiel du package dbparser](https://dsti.school/assets/dsti-techblog-dbparser-logo.6ebb275baa.png)

## Trois sources. Un même modèle d’analyse.

DrugBank, OnSIDES et TWOSIDES deviennent des objets R cohérents et traçables.

DrugBank XML imbriqué

OnSIDES CSV relationnels

TWOSIDES interactions compressées
dvobject un objet drugverse cohérent

3 bases prises en charge

2.2.1 version CRAN actuelle

2018 première version CRAN

2026 publication JOSS

Les grandes bases pharmacologiques sont précieuses parce qu’elles conservent des relations complexes entre médicaments, cibles, voies biologiques, produits, effets indésirables et interactions. C’est aussi ce qui les rend difficiles à analyser. DrugBank se présente sous la forme d’un XML profondément imbriqué ; OnSIDES sous forme de fichiers CSV relationnels ; TWOSIDES sous forme de données d’interactions compressées. `dbparser` transforme ces sources différentes en objets R cohérents et en workflows d’intégration traçables.

i
Accès aux données et licences dbparser analyse les bases auxquelles la personne qui mène la recherche est autorisée à accéder. Le package ne redistribue pas le contenu restreint de DrugBank. La reproductibilité exige toujours de consigner la version de la base source, les conditions d’accès et la version exacte du package utilisée.

L’abstraction utile n’est pas simplement un fichier plus plat. C’est un modèle d’objet stable qui préserve les relations, les informations de version et la provenance tout en offrant une manière cohérente de travailler.

## 01 Le problème est structurel, pas cosmétique

Une base pharmacologique n’est pas une feuille de calcul avec trop de colonnes. Les fiches de médicaments sont reliées à des cibles, enzymes, transporteurs, voies biologiques, produits, références et identifiants externes. Un parseur qui se contente d’aplatir le fichier peut faciliter son chargement tout en détruisant silencieusement les relations qui donnent du sens aux données.

Les sources ne partagent ni les mêmes formats ni les mêmes identifiants. DrugBank utilise une vaste hiérarchie XML. OnSIDES distribue plusieurs tables CSV issues des notices de médicaments. TWOSIDES fournit une représentation compressée des effets indésirables associés à des paires de médicaments. Des scripts ad hoc peuvent suffire pour une analyse, mais ils masquent souvent les hypothèses de jointure, les versions et le traitement des valeurs manquantes.

DrugBank `Hiérarchie XML`
Mécanismes, médicaments, cibles, voies biologiques et identifiants.

OnSIDES `Tables CSV`
Effets indésirables extraits des notices de médicaments de la FDA.

TWOSIDES `CSV.GZ`
Effets indésirables associés à des paires de médicaments.

## 02 Un objet commun sans effacer la source

dbparser introduit le `dvobject` — un objet drugverse implémenté comme une liste R avec des modes d’accès cohérents. Il conserve des tables tidy pour l’analyse, des métadonnées sur la version de la base et le parsing, ainsi que des correspondances décrivant les relations entre les tables.

Pour une version de DrugBank, l’objet peut exposer les informations sur les médicaments, les sels, les produits, les références et les structures liées aux carriers, enzymes, targets et transporters. Lorsque plusieurs sources sont fusionnées, le même objet reçoit des composants imbriqués et des tables intégrées au lieu de devenir un ensemble de jointures non documentées.

### Ce qu’un dvobject conserve ensemble

objet prêt pour l’analyse

drugs tables principales sur les médicaments

cett carriers, enzymes, targets, transporters

products produits commercialisés

references articles, liens et ouvrages

metadata version et provenance

## 03 Du parseur au moteur d’intégration

La version actuelle du package utilise DrugBank comme noyau mécanistique. OnSIDES apporte les effets indésirables extraits des notices de la FDA, tandis que TWOSIDES apporte les effets associés à des associations de médicaments. Ce choix d’architecture en étoile réduit le nombre de correspondances d’identifiants à maintenir et rend le chemin d’intégration explicite.

Ce choix comporte une contrepartie : les workflows multi-bases dépendent des identifiants et des correspondances de DrugBank. Mais cette contrainte est visible et testable, plutôt qu’enfouie dans un notebook ponctuel.

OnSIDES Effets indésirables extraits des notices de médicaments de la FDA.

DrugBank DrugBank comme noyau mécanistique

TWOSIDES Effets indésirables associés à des paires de médicaments.

## 04 L’ingénierie logicielle autour du parseur

Un package de recherche utile ne repose pas uniquement sur des fonctions de parsing qui marchent. Il lui faut une interface publique stable, des tests, de la documentation, des métadonnées, des exemples, des versions identifiables et un processus de revue. dbparser est distribué sur CRAN, documenté par rOpenSci, publié sous licence MIT et maintenu dans un dépôt public.

Le package a fait l’objet d’une évaluation par les pairs chez rOpenSci, et son article logiciel a été publié dans le Journal of Open Source Software en février 2026. Ce parcours compte parce qu’il rend les affirmations de qualité vérifiables : dépôt, fil de revue, archive, documentation et suivi des problèmes sont publics.

Versions identifiables
Les archives CRAN rendent visibles l’évolution du package et la version exacte utilisée dans une analyse.

Évaluation par les pairs
La revue rOpenSci et le dossier JOSS exposent la documentation, les tests et les choix de conception.

Entrées reproductibles
Les métadonnées conservent les versions des sources et les détails du parsing avec l’objet prêt pour l’analyse.

## 05 Un workflow compact et reproductible

Le code ci-dessous montre l’architecture sans la masquer derrière une interface graphique. Chaque source est analysée séparément. Les objets obtenus sont ensuite fusionnés par des opérations explicites et chaînables. Le code est conservé exactement tel qu’il apparaît dans la documentation du package.

R Pipeline d’intégration

```r
library(dbparser)
library(dplyr)

drugbank_db <- parseDrugBank("data/drugbank.xml")
onsides_db  <- parseOnSIDES("data/onsides/")
twosides_db <- parseTWOSIDES("data/TWOSIDES.csv.gz")

final_db <- drugbank_db %>%
  merge_drugbank_onsides(onsides_db) %>%
  merge_drugbank_twosides(twosides_db)

head(final_db$integrated_data$drug_drug_interactions)
```

## 06 Du projet étudiant à l’infrastructure de recherche

CRAN enregistre la première version de dbparser en décembre 2018. L’archive publique montre ensuite une succession de versions maintenues, et non un dépôt isolé. Avec la version 2.2.1 publiée en janvier 2026, le package dépasse le seul parsing de DrugBank et prend en charge des workflows intégrés de pharmacovigilance sur trois sources.

La documentation du projet recense plus de dix publications évaluées par les pairs dans des domaines allant du repositionnement de médicaments aux biomarqueurs, à la modélisation de voies biologiques et à l’analyse d’essais cliniques. L’histoire forte n’est donc pas seulement qu’un étudiant a écrit un parseur : c’est que ce travail a résisté aux usages d’autres équipes, aux évolutions des bases sources, à la revue du package et à la maintenance dans le temps.

2018 dbparser 1.0.0 entre sur CRAN.

2023–24 La série 2.x modernise le package et son modèle de données.

2026 La version 2.2.1 intègre DrugBank, OnSIDES et TWOSIDES.

2026 L’article logiciel est publié dans JOSS après une revue ouverte.

## 07 Le diplômé derrière le projet open source

Mohammed Ali est diplômé de DSTI, auteur et mainteneur de dbparser. Ali Ezzat est coauteur du package et de l’article JOSS. Leur trace publique permet d’examiner le logiciel à plusieurs niveaux : version stable sur CRAN, manuel de référence, documentation rOpenSci, dépôt source, discussion de revue et publication JOSS archivée.

Cette ouverture fait partie du résultat d’ingénierie. Un outil de recherche reproductible doit permettre de retracer non seulement le résultat d’une analyse, mais aussi la version du logiciel, la version des données sources et les décisions qui ont transformé l’une en l’autre.

### Logiciel, documentation et publication

MA

### Mohammed Ali

Diplômé de DSTI, auteur et mainteneur de dbparser. Son travail réunit ingénierie logicielle en R, intégration de données pharmacologiques et infrastructures pour la recherche reproductible.

[LinkedIn](https://www.linkedin.com/in/mohammedali85/)

Sources et note éditoriale : Article élaboré à partir de l’ancienne présentation DSTI du projet étudiant, d’un manuscrit fourni et des sources actuelles de CRAN, rOpenSci, du dépôt et de JOSS. Les noms techniques, fonctions du package, code et titres de publications sont conservés exactement.
