Découverte :
À la découverte de BioMart !

Dans le cadre de mon travail, j'ai récemment découvert un outil formidable pour la consultation et la récupération de données à partir de certaines banques : BioMart.

Logo de BioMart. Image du domaine public

Logo de BioMart. Image du domaine public

Après avoir passé la frustration de devoir utiliser l'interface du service fourni pour télécharger les différentes données dont j'avais besoin, je me suis renseignée davantage sur ce logiciel. De façon simpliste, on peut définir BioMart comme un programme que l'on peut trouver sur certaines banques sous la forme d'un service web. En cherchant davantage, surprise : cette application peut être utilisée aussi bien pour créer sa propre base de données (étant données les spécifications de l'interface) que pour interroger à distance d'autres banques au travers d'une API fournie.

Bien qu'il existe deux API, l'une faite en Java, l'autre faite en Perl, je me suis basée sur l'API BioMart-Perl, pour des raisons d'architecture de mon lieu de travail, mais également en raison de mon manque d'expérience actuel en Java. Je vous présenterai donc plus spécifiquement BioMart-Perl au travers de quelques exemples pour la suite de ce billet.

Présentation de BioMart : qui gère cet outil et qui l'utilise ?

BioMart est développé dans le but de permettre d'interroger, avec un seul outil, un grand nombre de bases de données internationales. La volonté première du fondateur, Arek Kasprzyk, est de pouvoir fournir à la communauté scientifique un outil qui n'exige pas d'avoir de grandes connaissances en informatique pour pouvoir l'utiliser, ce qui peut être intéressant pour de nombreux biologistes et laborantins à court d'ingénieurs en informatique/bio-informatique.

À l'origine, BioMart fut développé pour le genome browser (navigateur de génome) Ensembl, en tant que base de données sous le nom de EnsMart. Au fil du développement, BioMart est devenu une solution générique pour l'intégration de données au travers d'une application simple et rapide à mettre en place ainsi que d'algorithmes permettant aux laboratoires de créer et de consulter leurs bases de données avec cet outil.

Parmi les bases de données qui peuvent être interrogées à travers BioMart on peut citer, pour les plus connues :

Vous pouvez trouver une liste plus exhaustive sur la page de la communauté de Biomart.

Exemples d'utilisation de l'API BioMart-Perl

Installer BioMart-Perl et configurer un registre

Avant d'utiliser l'API BioMart-Perl, sachez qu'elle n'existe pas encore pour la version 0.8 de l'outil : vous ne pourrez ainsi l'obtenir que pour la version 0.7. L'installation se fait plutôt facilement en suivant la documentation fournie. Les seuls prérequis à avoir sont : CVS installé sur votre machine, le langage Perl, les droits d'installation sur la machine. N'oubliez pas non plus de créer le fichier de configuration comme indiqué dans la documentation.

Afin de pouvoir récupérer les informations sur les banques accessibles via BioMart, vous devez créer des fichiers de configuration pour les registres. La liste des différents registres accessibles peut être consultée ici.

Voici à quoi ressemble un fichier de configuration pour interroger la banque HGNC :

Une fois votre fichier de configuration créé, vous êtes paré pour créer votre script.

Consulter la banque HGNC avec BioMart-Perl

Problèmatique : pour un gène donné, dont je connais le nom approuvé par HGNC -- ou nom officiel, -- je souhaite connaître ses noms synonymes, les noms qui lui ont été attribués par le passé, mais également des références pour ce lien vers les banques Ensembl (pour les données d'annotation) et Entrez Gene.

Dans un premier temps, rendez-vous sur le BioMart de HGNC. Pour ce faire, vous avez deux possibilités : soit vous passez par le site HGNC, soit vous passez directement par le portail central de BioMart en sélectionnant la base de données HGNC. Pour cet exemple, je passe par le BioMart fournit par HGNC (depuis le menu Downloads > Biomart et en cliquant sur Start Martview session), s'ensuit une procédure en trois étapes :

  1. Dans la rubrique DATASET, je choisis la DATABASE HGNC Database et le DATASET HGNC Data (par défaut).
  2. Dans la rubrique FILTERS, j'ouvre l'onglet "Filter by symbol" et je saisis, dans le champ "Approved Symbol", MAPK1. Par défaut le filtre "Record Grouping: primary" est toujours activé. Pour le désactiver, ouvrez l'onglet "Filter by Curated ID".
  3. Dans la rubrique ATTRIBUTES, je coche les attributs que je souhaite obtenir. Dans cet exemple, je coche les attributs "Approved Symbol", "Approved Name", "Previous Symbols", "Name Aliases", "Entrez Gene ID", "Ensembl ID (mapped data supplied by Ensembl)".

Une fois mes paramètres choisis, je clique sur le bouton Results afin de voir si le tableau obtenu me convient :

Approved Symbol Approved Name Name Aliases Previous Symbols Ensembl ID (mapped data supplied by Ensembl) Entrez Gene ID
MAPK1 mitogen-activated protein kinase 1 PRKM2, PRKM1 ENSG00000100030 5594

Une fois satisfaite des résultats obtenus, je clique sur le bouton Perl, qui me fournit le script Perl à utiliser avec l'API installée sur ma machine :

Avant d'exécuter le script, il faut modifier la variable $confFile en lui indiquant le chemin vers le fichier de configuration que vous avez précédemment créé. Lorsque j'exécute ce script en local, je récupère bien un tableau au format TSV sur mon terminal. Je pourrais aussi rediriger la sortie dans un fichier texte pour effectuer d'autres traitements par la suite. Il se peut que vous ayez des messages vous indiquant les différentes étapes d'interrogation et de récupération des données sur la banque HGNC, ces messages sont affichés sur la sortie d'erreur standard, pour ne plus les voir, il suffit donc de rediriger ces derniers dans un fichier d'erreur ou, dans mon cas, dans le trou noir (/dev/null) ; voir plus bas pour la commande.

Comme vous pouvez le constater, il peut être facile de modifier le code source afin de permettre à l'utilisateur d'exécuter ce script en envoyant directement le nom du gène d'intérêt en argument. Voici à quoi ressemble le programme une fois récrit :

Comme vous pouvez le constater, le script ne demande pas forcément des connaissances très poussées en Perl pour réaliser un premier jet, ce qui peut être utile si on souhaite avoir des résultats rapidement. Voici la commande que vous pouvez utiliser depuis un terminal afin de récupérer vos données tout en redirigeant la sortie d'erreur dans la poubelle :

Récupérer les coordonnées de plusieurs gènes avec Ensembl

Problèmatique : pour une liste de gènes donnée, dont je connais les nom approuvés par HGNC -- ou nom officiel -- et éventuellement les identifiants vers les données annotées par Ensembl, je souhaite connaître leur chromosome, leurs positions de début et de fin, le brin sur lequel ils se situent (un gène pouvant être dans le sens inverse), ainsi que leur nom associé et une référence vers leur fiche d'identité chez EntrezGene.

Ce second exemple, un peu plus complexe, va vous permettre de voir à quel point BioMart peut se montrer puissant et utile. Dans un premier temps, nous allons créer le script Perl de base en passant par le BioMart d'Ensembl, la procédure est la même que pour HGNC aussi je ne la redétaillerai pas. Voici le script que j'obtiens avec mes paramètres :

La première chose notable est la possibilité de passer plusieurs noms de gènes approuvés par HGNC chez Ensembl afin de pouvoir en récupérer plusieurs lignes. Je ne vous ai pas montré ce cas de figure pour la banque HGNC pour la simple et bonne raison que, ne sachant pas à l'avance si le gène à passer en paramètre sera un gène approuvé et non pas un alias ou un ancien nom, il me fallait pouvoir traiter les différentes possibilités une par une.

Le script fourni par Ensembl peut donc être adapté en fonction des arguments passés en paramètre. Dans notre exemple, l'argument passé en paramètre sera un fichier au format TSV où chaque ligne contient un gène qui indique son symbole approuvé par HGNC et son identifiant EnsemblID. En effet, il est possible que HGNC ne connaisse pas encore l'identifiant EnsemblID pour le gène mais qu'Ensembl en connaisse le symbole approuvé par HGNC, d'où l'intérêt du script que je vous présente :

Bien sûr, ce ne sont que de simples exemples, je n'ai pas la prétention d'être une experte de BioMart, loin de là, mais cette première approche de l'outil m'a beaucoup plu et j'espère avoir prochainement l'occasion de pouvoir me replonger dedans. Dans ce billet nous n'avons vu l'utilisation de BioMart-Perl que pour deux banques, mais nous avons déjà un bon aperçu des possibilités qui s'offrent à nous pour faire communiquer entre elles d'autres banques en ne passant que par un outil, réduisant ainsi de nombreuses heures de travail à chercher à comprendre les API de plusieurs banques pour un même résultat.

Je ne dis pas que BioMart est parfait pour tout : dans le cas de la banque HGNC par exemple, je n'ai pas encore trouvé comment utiliser un système de wildcards (joker) pour les gènes de type HLA qui comprennent de nombreux complexes. Après avoir cherché un long moment -- dans la documentation et sur le moteur de recherche Google --, il s'avérerait que cette option ne soit pas encore gérée par le logiciel, mais pour une première approche afin de trouver rapidement des données, cet outil me parait amplement suffisant.

Pour aller plus loin :

BioMart Central Portal - unified access to biological data, Syed Haider et al., Nucleic Acids Research, 2009, Vol. 37, Web Server issue, W23-W27
BioMart - biological queries made easy, Damian Smedley et al., BMC Genomics 2009, 10:22
Ensembl BioMarts: a hub for data retrieval across taxonomic space, Rhoda J. Kinsella et al., Database, Vol. 2011, Article ID bar030
Site officiel de BioMart

  • À propos de
  • Issue d'une licence de biologie cellulaire et physiopathologie et d'un master de bioinformatique, je m'intéresse tout particulièrement au monde de la recherche et au domaine de la santé. J'ai travaillé dans l'unité 946 de l'INSERM, dirigée par Florence Demenais, où mon travail principal a été l'étude et la recherche de bases de données et d'outils d'intérêt majeur pour l'axe de recherche dans lequel j'étais impliquée. J'ai aussi travaillé à l'Institut Pasteur où j'ai été recrutée en tant qu'ingénieure bioinformaticienne dans le cadre du LabEx Milieu Intérieur et où ma mission principale a été de mettre en place une base de données pour la gestion de nos échantillons biologiques. Mes centres d'intérêt en bioinformatique sont : la mise en application de méthodes dans les domaines de la génomique, de la protéomique et les interactions gène-gène protéine-protéine pouvant nous apporter des informations sur leurs influences dans les maladies. Je travaille actuellement au service informatique de l'IBENS où j'ai été recrutée en qualité de développeuse d'applications !

Laisser un commentaire