Pour mon premier article, je vais vous présenter un outil que j'ai développé lorsque je travaillais sur le projet "Myocapture"; un projet national de séquençage d'exomes qui portait sur les myopathies (https://www.afm-telethon.fr/myopathie-congenitale-6675). Ce projet visait à trouver de nouvelles mutations responsables de ces maladies rares. Il a également permis d'identifier de nouveaux gènes impliqués dans des myopathies congénitales.
Pour ce projet, nous avons suivi les Best Practices du Broad Institute pour réaliser l'ensemble des étapes bioinformatiques ; incluant les contrôles qualités, le nettoyage et l'alignement des reads sur le génome de référence (GRCh37). L'étape suivante consiste à retrouver les différences entre ce génome de référence et l'individu étudié (un nucléotide A remplacé par un G par exemple); on appelle cela le "variant calling". De nombreux outils très performant existent pour réaliser cette étape, comme par exemple GATK HaplotypeCaller. L'ensemble des variations génétiques détectées sont stockées dans un fichier texte, au format VCF (Variant Call Format). Ensuite, une étape d'annotation des variants est réalisée. Cette dernière permet de lier une variation génétique à un gène et à son impact sur la protéine. Finalement, la dernière étape consiste à déterminer si une variation est pathogénique ou non.
Pathogénicité des variations génétiques
Plusieurs facteurs entrent en jeu pour définir la pathogénicité d'une variation :
- Sa fréquence dans la population générale doit être corrélée à la fréquence de la maladie. Plus une maladie est rare, plus la fréquence du variant est faible
- Les individus sains ne présentent pas la variation (pour les cas dominants)
- L'impact de la variation sur la protéine ou sur sa production
- La position du variant sur le gène.
Classiquement, les analyses des variations génétiques se font à partir d'un patient ; les variants d'un individu sont filtrés et priorisés selon différents critères afin de limiter le nombre de variants candidats.
Présentation de l'outil ViLoVar
ViLoVar (Visualize the Localization of Variants) est un outil visuel développé en Python avec un appel à un script R pour générer le graphe avec ggplot2. Il permet de réaliser une analyse par gènes et peut venir en complément de l'analyse classique ; en particulier pour la recherche de nouveaux gènes. L'idée est de mettre en avant graphiquement les variants rares et délétères dans une cohorte d'individus sains et/ou malades.
Pour cela, il suffit de passer en entrée de ViLoVar :
- Une liste de gènes à étudier
- Le chemin vers un ensemble de fichier VCF annotés avec snpEff et snpSift (http://snpeff.sourceforge.net/)
- Éventuellement le nombre maximum de fois où un variant est retrouvé dans la cohorte
Pour utiliser ViLoVar, il vous faut python (testé uniquement avec la version 2.7) et R/ggplot2. Il suffit ensuite d'entrer cette ligne de commande dans votre console. En remplaçant évidemment avec votre liste de gènes et votre chemin vers les VCF :
1 |
python ViLoVar.py -g gene1,gene2,gene3 -p chemin/vers/VCF/ |
Résultat
Le résultat est rendu sous la forme d'un graphe dont vous pouvez voir un exemple sur l'image ci-dessous, avec quelques annotations que j'ai rajoutées.
Chaque ligne correspond à un individu présentant au moins une variation sur le gène étudié. Les identifiants des individus correspondent aux noms des fichiers VCF. Dans cet exemple, ces noms sont précédés d'une lettre : A pour les individus malades (Affected), U pour les individus sains (Unaffected) et I pour les individus dont le statut est incertain. En effet, cela permettait de regrouper les individus sains sur le haut du graphique et les individus malades en bas. On avait ainsi une visualisation plus claire. Les variants sont positionnés selon leurs coordonnées sur le CDS (coding sequence) du gène et colorés selon l'impact de la variation (rouge pour perte de fonction par exemple). Un triangle correspond à un variant associé à un rsID (reference SNP ID), c'est-à-dire un variant connu et présent dans les bases de données publiques. À l'inverse, un rond correspond à un variant inconnu. La taille de la forme représente la fréquence du variant dans la cohorte, plus le variant est rare, plus la forme est grosse. Et enfin, le nom d'un individu est coloré en rouge lorsqu'il présente deux variants différents sur le gène, pour mettre en évidence les cas récessifs (sans toutefois savoir si les variants sont sur deux allèles différents).
Un fichier tabulé est également généré. Chaque ligne correspond à un variant retrouvé sur le gène avec diverses informations : position sur le génome, profondeur de lecture du variant, effet du variant, liste des individus présentant le variant…
En résumé, ViLoVar permet de mettre en avant les potentielles mutations sur un gène donné et également d'avoir une information sur la variabilité de ce gène.
Améliorations à apporter
ViLoVar n'en est qu'à sa première version. L'outil est largement améliorable et perfectible :
- Il est nécessaire d'avoir un fichier VCF par individu. Ce dernier doit être annoté avec snpEff ⇒ Le script pourrait être adapté à d'autres outils d'annotations de variants
- Pour chaque gène à analyser, l'ensemble des fichiers VCF est parcouru. Le temps d'exécution est donc proportionnel au nombre de gènes à étudier et au nombre d'individus ⇒ Le script pourrait être adapté pour récupérer les informations pour l'ensemble des gènes en un seul parcours des fichiers.
- On obtient une image d'un graphe, alors qu'il serait possible de générer un résultat plus "dynamique" qui permettrait d'afficher des informations sur les variants.
- Il est possible d'associer un script permettant d'interpréter automatiquement si un gène présente potentiellement des variations pathogéniques.
Voilà pour le principe de ViLoVar, le code est distribuée librement sous licence GNU GPL et accessible en ligne. N'hésitez pas à le tester, le modifier et l'améliorer !
https://github.com/pioupiou67/ViLoVar
Merci à eorn, Guillaume Devailly et max pour leur relecture 🙂
Laisser un commentaire