Astuce :
Astuce programmation BioPython : Parser les multi-genbank et les multi-FASTA produits par Batch Entrez

Prérequis : Savoir 'un peu' se servir d'un shell et avoir installé Python et son module Bio.

But : Redécouper des multi-genbank ou des multi-FASTA en un fichier par entrée.

Difficulté : 2/5 (Facile)

Principe : Le NCBI propose un outil très pratique pour récupérer facilement des jeux de données diversifiés : BatchEntrez, vous trouverez plus d'information ici. On télécharge ainsi un fichier texte unique réunissant toutes les données. Si les données sont au format FASTA, on obtient un multi-FASTA ; ce format est bien reconnu par les logiciels, par contre, pour des fichiers au format Genbank on obtient un multi-Genbank moins aisé à manipuler. On souhaiterait donc redécouper ce fichier de façon à obtenir un fichier unique par entrée. Il est possible de faire ce découpage à la main  mais ça reste assez contraignant dès qu'on a plus de deux entrées, mais fort heureusement, Python et sa bibliothèque Bio sont là pour nous aider !

Bibliothèque BioPython : BioPython est un ensemble d'outils développés en Python et dédiés à la manipulation de données de biologie moléculaire. Vous trouverez une liste exhaustive des modules sur le site http://www.biopython.org et un tutoriel très abordable à l'adresse http://biopython.org/DIST/docs/tutorial/Tutorial.html. Pour vous donner un petit aperçu, il contient divers 'parseurs' de fichiers aux formats les plus utilisés en bioinformatique, des outils de manipulation de séquences nucléotidiques (reverse-complémentation, randomisation, etc.), plusieurs outils d'alignement (MUSCLE) et la possibilité de lancer des BLAST et d'en 'parser' les résultats, des outils de modélisation protéique, de phylogénie, et j'en passe. En plus BioPython est constamment amélioré par une grande communauté de contributeurs.
S'il n'est pas déjà mis en place sur votre machine Unix, BioPython s'installe assez facilement à l'aide des commandes 'pip install biopython' ou 'easy_install biopython'.

Démonstration :

Dans un shell Unix, on commence naturellement par se placer dans le dossier qui contient notre fichier, puis on lance une ligne de commande python, en entrant (suspens) :

$ python

Ensuite, on importe le module BioPython dédié à la manipulation de séquences et d’annotations et on ouvre le fichier (ici un multi-genbank .ggbk) dans la variable 'a' :

>>> from Bio import SeqIO
>>> a = open('mon_fichier.ggbk', 'r')

Enfin, on écrit la sortie

>>> for record in SeqIO.parse(a, 'genbank'):
... SeqIO.write([record], open(record.id[:-2]+'.gbk', 'w'), 'genbank')
...

On obtient dans le dossier un fichier par entrée, portant le nom de l'identifiant genbank de la séquence, ou de l'identifiant fasta pour un multi-fasta (le cas échéant, simplement remplacer 'genbank' par 'fasta').

TIP pour les débutants : pour quitter l’interpréteur python, il suffit de faire taper exit() ou son raccourci clavier Ctrl-D pour les gens sympas ou pomme-D pour les autres gens sympas

Et voilà, c'était facile.

  • À propos de
  • Post-doc pour l'institut Matís de Reykjavík (Islande) sur la biodiversité des lacs sous-glaciaires et des sources géothermales (projet MarieCurie AstroLakes). Doctorat de l'UPMC pour une thèse en écologie des picocyanobactéries marine à la Station Biologique de Roscoff, Un profil pltôt axé bioanalyse/bioinformatique, sur des données de génomique et métagénomique (assemblage, biodiversité, miTAGs...) Sinon... joueur de go (à mes heures perdues), choriste, amateur de bouquins et de musique, de randonnées islandaises... je milite pour un nouveau monde (sur une base extrêmiste modérée).

2 commentaires sur “Astuce programmation BioPython : Parser les multi-genbank et les multi-FASTA produits par Batch Entrez

  1. Merci pour l\'astuce.

    Cette technique n\'est pas universelle : Ce script doit être édité pour d\'autres sources.
    Personnellement, j\'utilise un outil d\'EMBOSS http://emboss.sourceforge.net/ pour découper ces fichiers: seqretsplit

    Pour les multi-genbank :
    seqretsplit mon_fichier.ggbk -osformat2 genbank -osextension2 gb -auto

    Pour les multi-fasta (en utilisant les valeurs par défaut):
    seqretsplit mon_fichier.fasta -auto

    Ce programme gère de nombreux types de fichier, cependant il ne permet pas de conserver la casse de l\'identifiant pour le nom du fichier créé.

    • merci pour l\'information car j\'en arai toujours besoin pour ma formation continue sur ce domaine

Laisser un commentaire