ViLoVar : un outil pour la visualisation de variations génétiques

Pour mon pre­mier article, je vais vous pré­sen­ter un outil que j'ai déve­lop­pé lorsque je tra­vaillais sur le pro­jet "Myo­cap­ture"; un pro­jet natio­nal de séquen­çage d'exomes qui por­tait sur les myo­pa­thies (https://​www​.afm​-tele​thon​.fr/​m​y​o​p​a​t​h​i​e​-​c​o​n​g​e​n​i​t​a​l​e​-​6​675). Ce pro­jet visait à trou­ver de nou­velles muta­tions res­pon­sables de ces mala­dies rares. Il a éga­le­ment per­mis d'identifier de nou­veaux gènes impli­qués dans des myo­pa­thies congé­ni­tales.

Pour ce pro­jet, nous avons sui­vi les Best Prac­tices du Broad Ins­ti­tute pour réa­li­ser l'ensemble des étapes bio­in­for­ma­tiques ; incluant les contrôles qua­li­tés, le net­toyage et l'alignement des reads sur le génome de réfé­rence (GRCh37). L'étape sui­vante consiste à retrou­ver les dif­fé­rences entre ce génome de réfé­rence et l'individu étu­dié (un nucléo­tide A rem­pla­cé par un G par exemple); on appelle cela le "variant cal­ling". De nom­breux outils très per­for­mant existent pour réa­li­ser cette étape, comme par exemple GATK Haplo­ty­pe­Cal­ler. L'ensemble des varia­tions géné­tiques détec­tées sont sto­ckées dans un fichier texte, au for­mat VCF (Variant Call For­mat). Ensuite, une étape d'annotation des variants est réa­li­sée. Cette der­nière per­met de lier une varia­tion géné­tique à un gène et à son impact sur la pro­téine. Fina­le­ment, la der­nière étape consiste à déter­mi­ner si une varia­tion est patho­gé­nique ou non.

Pathogénicité des variations génétiques

Plu­sieurs fac­teurs entrent en jeu pour défi­nir la patho­gé­ni­ci­té d'une varia­tion :

  • Sa fré­quence dans la popu­la­tion géné­rale doit être cor­ré­lée à la fré­quence de la mala­die. Plus une mala­die est rare, plus la fré­quence du variant est faible
  • Les indi­vi­dus sains ne pré­sentent pas la varia­tion (pour les cas domi­nants)
  • L'impact de la varia­tion sur la pro­téine ou sur sa pro­duc­tion
  • La posi­tion du variant sur le gène.

Clas­si­que­ment, les ana­lyses des varia­tions géné­tiques se font à par­tir d'un patient ; les variants d'un indi­vi­du sont fil­trés et prio­ri­sés selon dif­fé­rents cri­tères afin de limi­ter le nombre de variants can­di­dats.

Présentation de l'outil ViLoVar

ViLo­Var (Visua­lize the Loca­li­za­tion of Variants) est un outil visuel déve­lop­pé en Python avec un appel à un script R pour géné­rer le graphe avec ggplot2. Il per­met de réa­li­ser une ana­lyse par gènes et peut venir en com­plé­ment de l'analyse clas­sique ; en par­ti­cu­lier pour la recherche de nou­veaux gènes. L'idée est de mettre en avant gra­phi­que­ment les variants rares et délé­tères dans une cohorte d'individus sains et/​ou malades.
Pour cela, il suf­fit de pas­ser en entrée de ViLo­Var :
— Une liste de gènes à étu­dier
— Le che­min vers un ensemble de fichier VCF anno­tés avec snpEff et snp­Sift (http://​snpeff​.sour​ce​forge​.net/)
— Éven­tuel­le­ment le nombre maxi­mum de fois où un variant est retrou­vé dans la cohorte

Pour uti­li­ser ViLo­Var, il vous faut python (tes­té uni­que­ment avec la ver­sion 2.7) et R/​ggplot2. Il suf­fit ensuite d'entrer cette ligne de com­mande dans votre console. En rem­pla­çant évi­dem­ment avec votre liste de gènes et votre che­min vers les VCF :

Résultat

Le résul­tat est ren­du sous la forme d'un graphe dont vous pou­vez voir un exemple sur l'image ci-des­sous, avec quelques anno­ta­tions que j'ai rajou­tées.

Chaque ligne cor­res­pond à un indi­vi­du pré­sen­tant au moins une varia­tion sur le gène étu­dié. Les iden­ti­fiants des indi­vi­dus cor­res­pondent aux noms des fichiers VCF. Dans cet exemple, ces noms sont pré­cé­dés d'une lettre : A pour les indi­vi­dus malades (Affec­ted), U pour les indi­vi­dus sains (Unaf­fec­ted) et I pour les indi­vi­dus dont le sta­tut est incer­tain. En effet, cela per­met­tait de regrou­per les indi­vi­dus sains sur le haut du gra­phique et les indi­vi­dus malades en bas. On avait ain­si une visua­li­sa­tion plus claire. Les variants sont posi­tion­nés selon leurs coor­don­nées sur le CDS (coding sequence) du gène et colo­rés selon l'impact de la varia­tion (rouge pour perte de fonc­tion par exemple). Un tri­angle cor­res­pond à un variant asso­cié à un rsID (refe­rence SNP ID), c'est-à-dire un variant connu et pré­sent dans les bases de don­nées publiques. À l'inverse, un rond cor­res­pond à un variant incon­nu. 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 indi­vi­du est colo­ré en rouge lorsqu'il pré­sente deux variants dif­fé­rents sur le gène, pour mettre en évi­dence les cas réces­sifs (sans tou­te­fois savoir si les variants sont sur deux allèles dif­fé­rents).


Un fichier tabu­lé est éga­le­ment géné­ré. Chaque ligne cor­res­pond à un variant retrou­vé sur le gène avec diverses infor­ma­tions : posi­tion sur le génome, pro­fon­deur de lec­ture du variant, effet du variant, liste des indi­vi­dus pré­sen­tant le variant…

En résu­mé, ViLo­Var per­met de mettre en avant les poten­tielles muta­tions sur un gène don­né et éga­le­ment d'avoir une infor­ma­tion sur la varia­bi­li­té de ce gène.

Améliorations à apporter

ViLo­Var n'en est qu'à sa pre­mière ver­sion. L'outil est lar­ge­ment amé­lio­rable et per­fec­tible :

  • Il est néces­saire d'avoir un fichier VCF par indi­vi­du. Ce der­nier doit être anno­té avec snpEff ⇒ Le script pour­rait être adap­té à d'autres outils d'annotations de variants
  • Pour chaque gène à ana­ly­ser, l'ensemble des fichiers VCF est par­cou­ru. Le temps d'exécution est donc pro­por­tion­nel au nombre de gènes à étu­dier et au nombre d'individus ⇒ Le script pour­rait être adap­té pour récu­pé­rer les infor­ma­tions pour l'ensemble des gènes en un seul par­cours des fichiers.
  • On obtient une image d'un graphe, alors qu'il serait pos­sible de géné­rer un résul­tat plus "dyna­mique" qui per­met­trait d'afficher des infor­ma­tions sur les variants.
  • Il est pos­sible d'associer un script per­met­tant d'interpréter auto­ma­ti­que­ment si un gène pré­sente poten­tiel­le­ment des varia­tions patho­gé­niques.

Voi­là pour le prin­cipe de ViLo­Var, le code est dis­tri­buée libre­ment sous licence GNU GPL et acces­sible en ligne. N'hésitez pas à le tes­ter, le modi­fier et l'améliorer !

https://​github​.com/​p​i​o​u​p​i​o​u​6​7​/​V​i​L​o​Var

Mer­ci à eornGuillaume Devailly et max pour leur relec­ture 🙂



Pour continuer la lecture :


Commentaires

Une réponse à “ViLoVar : un outil pour la visualisation de variations génétiques”

  1. Avatar de Corentin

    Mer­ci pour cet aticle inter­es­sant.

    Concer­nant le temps d'execution, est ce que tu uti­lises tabix ? (http://​www​.hts​lib​.org/​d​o​c​/​t​a​b​i​x​.​h​tml) C'est un outil qui per­met d'indexer des fichiers vcf pour pou­voir acce­der tres tres rapi­de­ment a une region pre­cise (ou meme plu­sieurs regions a la fois si tu as un fichier bed) .

Laisser un commentaire