Découverte :
Récupérer la fiche d'un gène avec les Eutils du NCBI

En bioinformatique il n'est pas rare que l'on ait besoin d’accéder à des informations disponibles sur des bases de données internationales, nous verrons ici le cas de la banque Gene du NCBI. Avant de s'intéresser à la récupération d'une fiche d'un gène en passant par les Eutils, un peu de théorie et d'explications sur une fiche type s'impose.

Pourquoi choisir d'utiliser les Eutils ?

Bien qu'il soit possible de jouer avec la construction d'une URL afin de récupérer la fiche d'un gène au format texte ou XML directement sur le serveur officiel, le NCBI préconise plutôt l'utilisation du serveur Eutils, qui est un outil dédié à l'exécution massive externe de ce genre de requête. Cet outil paraît d'autant plus intéressant qu'il vous permet d'effectuer de nombreuses requêtes sans avoir à trop vous inquiéter de savoir si l'IP de votre laboratoire risque d'être bloquée ou non. La seule limitation étant de ne pas effectuer plus de trois requêtes par seconde en passant par les Eutils, il est nécessaire de prévoir une temporisation des requêtes si besoin.

Récupérer une fiche par les Eutils : les étapes

Pour récupérer la fiche du gène que vous souhaitez consulter, vous devez passer par deux étapes distinctes. Dans notre exemple, la première étape consiste à effectuer une recherche sur la banque Gene afin de trouver le gène dont l'identifiant est le numéro 5371. Pour cela nous devons construire l'URL suivante :

Voici ce que les Eutils vont comprendre :

  • http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi indique que le moteur de recherche des Eutils est sollicité pour récupérer des informations dans la banque de données ;
  • db=gene précise que la base de données "db" à consulter est Gene "gene" ;
  • term=5371[uid] précise que le terme "term" recherché est un numéro d'identifiant unique "[uid]" auquel on a spécifié le numéro en question ;
  • usehistory=y est à utiliser pour spécifier que vous souhaitez utiliser l'historique mais pas seulement (voir plus loin).

Pour la prochaine étape vous aurez besoin de récupérer, dans le fichier XML qui vient de s'afficher, les informations suivantes :

  • le WebEnv, qui n'apparait pas si vous avez choisi de ne pas utiliser l'historique ;
  • le numéro QueryKey, qui lui est exigé pour la seconde étape

La seconde étape va vous permettre de récupérer la fiche de votre gène d'intérêt avec cette nouvelle requête :

Et voici l'explication sur ce que le moteur des Eutils effectuera :

  • http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi indique que les Eutils doivent afficher des informations à l'utilisateur ;
  • db=gene précise que la base de données "db" à consulter est Gene "gene" ;
  • WebEnv=NCID_1_239264264_130.14.22.101_9001_1330635030_79372563 indique l'identifiant de WebEnv qui correspond à la requête de recherche précédemment effectuée ;
  • query_key=1 indique le numéro QueryKey "query_key" pour la requête ;
  • rettype=xml informe que l'affichage devra être de type XML ;
  • retmode=text précise que l'affichage doit être retourné en mode texte.

Une fois votre requête envoyée au serveur, vous aurez sous vos yeux la fiche au format XML du gène PML dont l'identifiant est 5371.

Explications sur la fiche du gène récupéré

Tout d'abord, merci de tenir compte du fait qu'il est parfaitement possible de trouver la fiche d'un gène en utilisant son seul nom, cependant il peut y avoir une forte redondance et un retour de plusieurs entrées pour un même nom. Dans mon exemple je me focalise sur un identifiant unique afin de n'avoir qu'une seule fiche à récupérer.
La fiche d'un gène du NCBI renferme de nombreuses informations sur le gène, en voici une liste non-exhaustive :

  • de nombreuses références croisées avec d'autres banques telles que Ensembl, HPRD, Vega, OMIM, PubMed
  • des informations sur la position du gène sur son chromosome
  • les protéines qui interagissent avec le gène ainsi que les produits du gène
  • la section Gene Ontology permet d'obtenir des renseignements sur la fonction, le processus et le composant cellulaire pour le gène
  • un accès direct aux différents profils d'expression du gène en fonction du tissu et/ou de la maladie...

Récupérer la même fiche à l'aide d'un script Perl

Parce qu'il est toujours plus simple d'automatiser ce genre de processus, ce script Perl peut vous être très utile :

Pour appeler ce script depuis un terminal, il vous suffit d'utiliser la ligne de commande suivante :

Ce script étant très largement inspiré du guide officiel, et adapté en fonction de mes besoins, celui-ci est donc libre d'accès. Vous êtes donc parfaitement libre de le récupérer, le disséquer et le modifier à votre convenance.

Sources

Pour une prise en main rapide des Eutils : http://www.ncbi.nlm.nih.gov/books/NBK25500/
Pour aller plus loin avec les Eutils : http://www.ncbi.nlm.nih.gov/books/NBK25501/

  • À 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 !

6 commentaires sur “Récupérer la fiche d'un gène avec les Eutils du NCBI

  1. Comme vous vous limitez à l'uid toute la partie esearch est inutile. Vous pouvez directement taper dans efetch

    • Merci pour la remarque, je l'ignorais à ce moment là mais je pense que cela me sera utile un jour ou l'autre.
      Néanmoins, le script étant générique, il peut parfaitement adapté à d'autres cas de figures, tel que la recherche d'un gène par son nom, où là il peut y avoir plus d'une fiche.

  2. merci pour ce script très instructif.
    -Serait il possible de récupérer de manière similaires les séquences nucléotidique d'un gène ?
    -Y'a t'il une possibilité similaire d'interrogation de la base Ensembl ?

    merci

    • Bonjour, oui c'est possible.

      Pour récupérer les séquences nucléotidiques d'un gène de façon similaire, il vous faudra passer par la banque Nucleotide du NCBI, donc a priori il vous suffit de remplacer gene par nuccore, toutefois le comportement de la banque est très différent, aussi il vous faudra ajuster la requête envoyée par term afin de trouver la liste des séquences nucléotidiques connues pour votre gène d'intérêt.
      Il existe également un autre moyen, pour cela vous pouvez passer par la récupération de la fiche XML de votre gène d'intérêt et chercher le tag XML définissant la banque de donnée Nucleotide, vous devriez ainsi trouver l'identifiant unique pour la séquence nucléotidique que vous cherchez, ce qui vous permettra d'envoyer la requête directement à cette banque. Après il ne vous restera plus qu'à choisir de récupérer la fiche au format XML ou au format Fasta.
      Voici un exemple du tag auquel je fais allusion :

      Je vous conseille, par expérience, de passer par un parser XML (Perl en possède quelques uns, disponibles sur le CPAN) afin de vous faciliter la tâche, les fichiers XML fournis par le NCBI ne sont pas toujours faciles à appréhender pour certaines informations.

      Pour la possibilité similaire d'interrogation de la base Ensembl, oui, il en existe au moins 2, dont une que je connais bien, il s'agit de l'API BioMart-Perl, que vous pouvez trouver chez BioMart, fourni par le Sanger Institute. L'API Perl n'est disponible que pour la version 0.7, mais si vous préférez une API en Java la version 0.8, plus récente, est disponible pour ce langage. La seconde API en Perl, dont un article pour le blog est prévu, utilise BioPerl et est fournie, et documentée, par Ensembl.

      J'espère avoir répondu à vos attentes.

    • Pour interroger Ensembl, un système équivalent existe. Vous trouverez la documentation ici.

    • Merci a vous,
      Je regarde tout ça avec intérêt.

Laisser un commentaire