- Le blog participatif de bioinformatique francophone depuis 2012 -

Fabriquer un trackhub dans UCSC

J'ai déci­dé de par­ta­ger avec vous la petite astuce du moment que j'ai décou­verte grâce à Jona­than et que j'ai incor­po­rée dans mon tra­vail actuel (mer­ci encore à lui, il a lu toute l’infâme docu­men­ta­tion de UCSC).

[edit : Il vient d'ailleurs de me signa­ler que la docu­men­ta­tion pour les track­hubs vient d'être mise à jour et est deve­nue beau­coup plus digeste. Tant mieux pour les sui­vants.]

Le navi­ga­teur géno­mique (pour ne pas dire genome brow­ser) de UCSC nous auto­rise donc à géné­rer et visua­li­ser des "track­hubs".

Qu'est ce qu'un trackhub ?

On parle de track­hub quand on regroupe plu­sieurs fichiers géno­miques dans un même dos­sier qui peut être ensuite par­ta­gé sur UCSC ou avec d'autres per­sonnes par exemple. On pour­ra empi­ler des tracks (pistes) venant du même orga­nisme et du même assem­blage géno­mique et on pour­ra par­ta­ger faci­le­ment tous les fichiers issus d'une même ana­lyse juste en quelques clics.

Les tracks issues de ces fichiers seront utiles pour mieux visua­li­ser les don­nées et voir ce qui change entre elles. On a alors la pos­si­bi­li­té de soit les ali­gner l'une sous l'autre, soit les super­po­ser pour dis­tin­guer des résul­tats qui ne nous auraient pas for­cé­ment sau­té aux yeux avec des tracks les unes sous les autres (sur­tout si notre écran est petit).

Comment on fait ?

Casque | Alexandre Prévot
Casque | Alexandre Pré­vot

Pre­miè­re­ment, vous devez avoir accès à une par­ti­tion (en local ou sur un ser­veur) acces­sible de l'extérieur pour que UCSC puisse venir foui­ner dedans. Pour ma part j'ai com­plè­te­ment auto­ma­ti­sé la chose pour l'incorporer dans mon appli­ca­tion web (faite avec Tur­bo­gears et SQLAl­che­my) et c'est mon ser­veur qui four­nit à UCSC les fichiers néces­saires. La fina­li­té est d'obtenir une URL qui pointe sur un fichier se trou­vant dans un dos­sier entiè­re­ment acces­sible lui aus­si.
Inté­res­sons-nous donc à ces fichiers qu'il va fal­loir construire. Atten­tion, à par­tir de cette ligne le port du casque devient obli­ga­toire car vous allez ren­trer dans la logique de UCSC (ou du moins essayer) et ça peut faire mal.

Créez un dos­sier qui com­por­te­ra le nom de votre track­hub :

Ce dos­sier devra conte­nir deux fichiers à sa racine ain­si qu'un dos­sier.

Il vous fau­dra d'abord créer le fichier hub.txt (les noms sont impor­tants et doivent être stric­te­ment iden­tiques à ce que je vous dis, sinon UCSC part bou­der dans son coin et ça ne vous arrange pas). Ce fichier devra conte­nir les lignes sui­vantes :

Expli­ca­tion de texte du fichier décrit ci-des­sus : la ligne hub cor­res­pond au nom de votre dos­sier, ici "Toto_​mon_​trackhub"; le short­La­bel devra ne conte­nir qu'un mot si pos­sible en oppo­si­tion au lon­gLa­bel qui pour­ra accueillir un mode plus ver­beux (le tout sépa­ré par des unders­cores comme vous pou­vez le voir dans l'exemple). Quant au geno­mes­File, il devra tou­jours être sui­vi de "genomes.txt". C'est le lien à la pro­chain étape. Je ne pense pas avoir à détailler la ligne sur l'email, qui est obli­ga­toire éga­le­ment.

Venons-en donc au deuxième fichier devant se trou­ver à la racine de votre dos­sier : genomes.txt.

Voi­là ce que contient genomes.txt dans le cadre de mon exemple :

Gros fichiers non ? Bon si vous ne devez rete­nir que deux choses ici c'est : mettre la ver­sion de votre assem­blage géno­mique ici (tout en fai­sant atten­tion aux majus­cules qui sont chères à UCSC) et créer un dos­sier du nom de ce même assem­blage géno­mique à la racine de votre dos­sier tout frais.

À savoir aus­si qu'on peut éga­le­ment mettre plu­sieurs ver­sions d'assemblage, il suf­fit juste de répé­ter les deux lignes avec la nou­velle ver­sion (ou autre ver­sion) et de créer aus­si un autre dos­sier avec le même nom.

Ici on s'en tien­dra à un exemple simple.

On s'exécute donc :

Puis on fonce dedans pour y créer un autre fichier lui aus­si déjà réfé­ren­cé dans genomes.txt. Ça sera le der­nier je vous le pro­mets, et le plus inté­res­sant aus­si.

Il fau­dra à ce stade créer dans le dos­sier sacCer2 le fichier trackDb.txt. Encore une fois le nom du fichier est très impor­tant.

Voi­là ce que contient notre trackDb.txt d'exemple :

On va avoir beau­coup à dire sur ce fichier, donc nous allons pro­cé­der sous forme de liste, ça sera plus simple :

  • Le pre­mier track déter­mine le nom de votre track parent sur l'affichage de UCSC
  • contai­ner fait réfé­rence au type de vos fichiers que vous vou­lez regrou­per dans le track­hub. Ici pour l'exemple ce sont tous des big­Wig (on le ren­seigne d'ailleurs après avec la clé "type") donc la valeur à attri­buer à la clé sera "mul­ti­Wig". Vous sai­sis­sez le prin­cipe. Il est bien sûr impé­ra­tif que tous vos fichiers soient de la même exten­sion dans le même contai­ner.
  • short­La­bel et lon­gLa­bel font leur retour, ils déter­mi­ne­ront les noms de vos tracks
  • visi­bi­li­ty est à régler selon vos pré­fé­rences. Moi je la mets tou­jours d'emblée à full, et c'est de toute manière réglable par la suite à l'écran.
  • Pas mieux pour le max­Height­Pixels, cette valeur me convient très bien.
  • Je laisse le confi­gu­rable à on, on peut ain­si retou­cher à deux-trois réglages après géné­ra­tion du track­hub.
  • Pour la clé aggre­gate, encore une his­toire de goûts et de cou­leurs. Cela déter­mi­ne­ra l'affichage de la super­po­si­tion de vos tracks. Ici je choi­sis le mode en trans­pa­rence qui rend assez bien
  • Pour les deux der­nières clés du contai­ner, à savoir show­Sub­tra­ck­Co­lo­rO­nUi et prio­ri­ty, je vous demande de me faire confiance et de lais­ser ça comme tel. Pour la pre­mière il s'agit d'afficher la légende des cou­leurs uti­li­sées dans la page de confi­gu­ra­tion de votre track­hub et pour la seconde il s'agit en réa­li­té de la prio­ri­té que vous sou­hai­tez don­ner à votre piste par rap­port aux autres.  Rien ne vous empê­che­ra de jouer avec par la suite pour voir si ça vous est réel­le­ment utile.

On a fini de confi­gu­rer le contai­ner, qui sera appe­lé à par­tir de main­te­nant le "parent" de nos tracks exemples.

Il fau­dra à par­tir de main­te­nant mettre une inden­ta­tion (une tabu­la­tion) avant cha­cune des clés sui­vantes pour que notre ami UCSC soit content. Ces clés seront à répé­ter autant de fois que l'on a de fichiers géno­miques à affi­cher dans le track­hub :

  • track, ni plus ni moins que le nom de votre piste. J'ai cou­tume d'y mettre le nom du fichier.
  • parent cor­res­pon­dra au nom de notre contai­ner, ici Toto_​mon_​trackhub_​qui_​va_​etre_​tres_​beau
  • big­Da­taUrl sera le lien vers votre fichier (acces­sible depuis l'extérieur, j'insiste). Cela pour­ra être un lien http (comme notre exemple) ou bien un che­min rela­tif vers le fichier qui se trou­ve­ra quelque part dans votre dos­sier "sacCer2" (pour notre exemple).
  • On retrouve pour la der­nière fois nos amis short­La­bel et lon­gLa­bel. Pro­mis on ne les ver­ra plus.
  • Le type cor­res­pond à l'extension du fichier. Atten­tion à bien l'écrire comme UCSC le sou­haite (majus­cules-minus­cules), sinon il fait celui qui connaît pas et se braque comme un bour­ri­cot (j'en suis venu à pen­ser qu'il a eu une enfance dif­fi­cile…).
  • Pour l'autoS­cale, là encore je vous conseille de le lais­ser à on.
  • Enfin color sera la cou­leur de votre piste en RGB. Essayez de ne pas prendre des cou­leurs qui ne vont pas ensemble (du genre mar­ron, noir et vio­let fon­cé). C'est peut-être bête à avouer, mais c'est assez dif­fi­cile de trou­ver un bon com­pro­mis. Moi je me suis réso­lu à les géné­rer au hasard et à faire confiance au tirage au sort. Si quelqu'un a une meilleure solu­tion je suis bien enten­du pre­neur (pour n tracks bien sûr).

Bon à savoir :

  • Vous ne pour­rez pas avoir un short­La­bel et un lon­gLa­bel iden­tique. Si c'est le cas, vous fache­rez UCSC et n'obtiendrez rien de lui.
  • Il est impor­tant de res­pec­ter les sauts de lignes et les tabu­la­tions comme dans l'exemple don­né, sinon même puni­tion que pour le pre­mier point
  • Il est pos­sible de mettre plu­sieurs contai­ners/​parents dans trackDb.txt. L'exemple se vou­lant réso­lu­ment facile pour vous fami­lia­ri­ser avec la chose.

Une fois arri­vés là vous avez fait le plus dur.

Il existe d'autres clés modi­fiables, vous pour­rez les retrou­ver sur la nou­velle docu­men­ta­tion des track­hubs de UCSC.

Pour arri­ver à la fina­li­té du pro­ces­sus il ne vous res­te­ra plus qu'à vous rendre à l'adresse sui­vante :

http://​genome​.ucsc​.edu/​c​g​i​-​b​i​n​/​h​g​H​u​b​C​o​n​n​ect

Il vous sera alors deman­dé de dépo­ser une URL poin­tant sur le fichier hub.txt de votre track­hub.

Page d'accueil pour soumettre un trackhub
Page d'accueil pour sou­mettre un track­hub

Enfin après un temps plus ou moins long d'attente lié au proc­ces­sing (et au nombre de confrères uti­li­sant le ser­vice), voi­là votre mer­veilleux track­hub qui s'affiche enfin devant vos yeux émer­veillés. Bon vision­nage et bonne explo­ra­tion géno­mique.

Trackhub généré grâce à notre exemple
Track­hub géné­ré grâce à notre exemple

Voi­là, il ne tient qu'à vous d'automatiser tout ça. C'est assez simple puisque main­te­nant on vous a tout décor­ti­qué. Il ne vous reste plus qu'à créer les dos­siers et fichiers, puis géné­rer l'adresse poin­tant sur le hub.txt.

Une der­nière chose : si quelqu'un com­prend le prin­cipe de UCSC de faire poin­ter sur un fichier qui pointe ensuite sur un second, puis sur un troi­sième qui à son tour va poin­ter sur de mul­tiples fichiers : mer­ci de m'expliquer. J'ai pas com­pris pour­quoi ils n'ont pas fait tout ce "work­flow" à par­tir d'un seul et même fichier texte… Pour­quoi faire simple quand on peut faire com­pli­qué ? La devise de UCSC 🙂

Je remer­cie Estel, Nol­wenn et Julien pour leur relec­ture sans faille et jso­bel pour ses conseils de jedi UCSC.



Pour continuer la lecture :


Commentaires

3 réponses à “Fabriquer un trackhub dans UCSC”

  1. Avatar de Morgane

    Très très utile ! Par contre, il y a une typo short­la­bel => short­La­bel dans hub.txt, ce qui fait que le hub ne fonc­tionne pas si on copie/​colle direc­te­ment.

    Mer­ci !

    1. Yoann M.

      Oups ! 🙂
      Mer­ci, c'est cor­ri­gé. Heu­reux que ça vous plaise !

  2. Je conseille­rai aus­si l'utilisation de hub­Check pour véri­fier si le track­Hub est bon.
    Ça donne les mêmes infos que si on teste sur l'UCSC, mais ça per­met de s'en rendre compte d'erreurs en amont.
    (je par­tage l'info car cela m'a été utile à l'instant).
    Mais mer­ci Yo pour ce rapide tuto.

Laisser un commentaire