Sur Bioinfo-fr.net, nous avons plusieurs fois parlé des bases de données biologiques. Que ce soit du point de vue de la gestion, de l'exploitation ou même du stockage physique. J'aimerai revenir aujourd'hui sur un souci qui se présente souvent lors de l'exploitation de plusieurs bases de données : les identifiants.
Un objet biologique dans une base de données est représenté par un identifiant. Cet identifiant est unique du point de vue de la base considérée. Mais comment faire le lien entre des identifiants venant de différentes bases de données ? Et surtout, comment être sûr qu'ils représentent bien le même objet biologique ?
Dans le cadre de mon travail, j'ai eu à faire l'union de deux réseaux métaboliques. L'un basé sur les identifiants de la base MetaCyc, l'autre sur les identifiants de la base KEGG. Sachant que dans MetaCyc, il y a des liens vers KEGG, j'ai simplement récupéré les fichiers fournis par MetaCyc et j'ai écris un programme qui lit un réseau métabolique, récupère les identifiants et les cherche dans les fichiers MetaCyc. De cette simple recherche, j'ai fait deux observations.
La première était que certains identifiants du réseau produit à partir de MetaCyc n'étaient plus dans la dernière version de MetaCyc. Il y avait donc un problème de mise à jour des identifiants. La deuxième était que seulement 1564 identifiants KEGG sur 2553 étaient présents dans MetaCyc. Il y avait donc un problème de lien entre les bases de données.
Cela m'a conduit à chercher si des solutions existaient pour résoudre ce genre de problèmes. Et il en existe beaucoup… mais avant de parler de ces diverses initiatives, parlons du problème à résoudre.
L'hétérogénéité des identifiants, des formats, des données.
Les données biologiques, comme beaucoup d'autres données, sont hétérogènes et surtout disséminées dans diverses bases de données, dans divers formats, pour diverses utilisations. Cela est une observation qui peut être faite dans de nombreux domaines. J'ai assisté à une soutenance de thèse en réalité virtuelle où ils avaient le même genre de soucis avec les différents formats de représentation 3D, de traitement des textures, des moteurs de rendu, etc. Alors, quelque soit le domaine, comment résoudre cette hétérogénéité ?
En gros, trois solutions s'offrent à nous :
- On crée un standard avec un système d'identifiants uniques et tout le monde s'y tient.
- On crée un méta-standard qui permet de lire chaque donnée dans chaque standard.
- On crée un traducteur universel qui fait juste le lien entre les différents identifiants.
Problèmes :
- Les standards, il y en a déjà plein (cf xkcd.com-927) et on ne s'y tient pas.
- Les méta-standards introduisent de nouveau identifiants qu'il faut mettre à jour (donc un nouveau standard).
- Un traducteur est universel s'il connaît toutes les sources de données… et il y aura toujours de nouvelles sources de données (avec de nouveaux standards).
Sommes-nous donc condamnés à nager dans un océan de données sans lien entre elles ? J'aurai tendance à répondre oui… mais il existe quelques solutions.
Différentes initiatives
Je ne vais évidemment pas faire une énumération exhaustive des différentes initiatives. Je vous propose plutôt deux solutions qui abordent des points qui me semblent pertinents.
The Synergizer, tout d'abord, est une initiative consistant à créer un "traducteur" universel d'identifiants à partir de certaines sources de données (ncbi, ensembl…). Le principe est d'associer à des identifiants de gènes et de protéines leurs différents synonymes dans d'autres bases de données. La connaissance des synonymes est directement extraite des sources. Ils utilisent donc une information venant d'une "autorité" qu'ils supposent vraie. Cela est une approche plutôt rationnelle qui me semble naturelle. Bien que les données soient hétérogènes, il faut bien faire confiance à quelqu'un.
D'un autre coté, avec cette méthode, nous n'obtenons que ce qui est déjà connu. Une autre approche consiste à essayer de trouver des synonymes sans connaissance a priori. C'est ce qu'essaye de faire MNXref dans le domaine des réseaux métaboliques (le papier). Ils essayent de "réconcilier" des métabolites en se basant sur leur structure chimique (SMILE, InChi), sur leur nom (en considérant les homonymes et synonymes) mais également sur des références croisées entre bases de données. Ils essayent également de relier des réactions chimiques en fonctions des métabolites impliqués et des références croisées.
Enfin, ces deux approches (comme beaucoup d'autres) sont disponibles via des interfaces web ou des API, ce qui les rend très accessibles.
Malgré ces initiatives et de nombreuses autres, un papier paru l'année dernière (lien) montre que nous ne sommes pas au bout de nos peines. Les auteurs ont choisi de s'intéresser au cycle TCA chez l'humain. Ce cycle est particulièrement bien étudié depuis de nombreuses années. Ils ont extrait ce cycle dans 10 bases de données de réseaux métaboliques. Sur ces dix réseaux, aucun n'était correct par rapport à la littérature et en plus ils n'étaient d'accord que sur trois réactions.
Cela prouve combien l'expertise manuelle est encore nécessaire dans la mise à jour et la correction des bases de données. Dans cet objectif, les auteurs proposent d'ailleurs l'utilisation massive d'un système type Wiki (WikiPathway), afin que les corrections puissent être soumises, validées ou invalidées par la communauté scientifique.
Conclusion
Pour conclure, après quelques mois à nager dans les données, je pense qu'une solution pérenne viendra d'une approche qui réunira les trois aspects :
- exploitation des liens existants entre bases de données pour construire sur ce que nous savons déjà ;
- découverte automatique de nouveaux liens ;
- validation par expertise manuelle.
En espérant que vous n'êtes pas trop désespérés par cet océan de données, n'hésitez pas à nous faire part de vos commentaires sur ce sujet.
Laisser un commentaire