Pourquoi certains fichiers FASTQ finissent par 001 ?

Les fichiers .fastq finis­sant en _001.fastq.gz

Sur le chan IRC du blog, un de nos membres se deman­dait pour­quoi les noms de fichiers FASTQ devait finir par _001.fastq sur la pla­te­forme de cloud com­pu­ting d'Illumina BaseS­pace. Mais avant de répondre à cette ques­tion pres­sante, repar­tons du début.

Les fichiers FASTQ

En cette période de domi­na­tion du séquen­çage haut débit de l'ADN, le for­mat de fichier .fastq est extrê­me­ment com­mun et très mani­pu­lé par les bio-infor­ma­ti­ciens. Il s'agit d'un for­mat de fichier texte sto­ckant des séquences de l'ADN tel un fichier FASTA, mais rajou­tant pour chaque base des infor­ma­tions sur la qua­li­té des bases (le q de FASTQ veut d'ailleurs dire qua­li­ty). Vous pour­rez lire tout un tas d'informations ennuyantes sur les spé­ci­fi­ca­tions exactes du for­mat FASTQ sur cette page wiki­pe­dia.

Si toutes les tech­no­lo­gies de séquen­çage de l'ADN peuvent four­nir un fichier FASTQ ou presque, le billet du jour s'intéresse à un pat­tern de nom­mage des fichiers FASTQ qui nous vient d'Illumina.

Une convention de nommage des fichier FASTQ Illumina

Voi­ci donc un bien joli nom de FASTQ Illu­mi­na tota­le­ment fic­tif, mais assez popu­laire :

SampleName_S1_L001_R1_001.fastq.gz

Sam­ple­Name et S1 sont le nom et l'identifiant de l'échantillon, rien de bien pas­sion­nant.

L001 est une sub­ti­li­té liée au séquen­çage Illu­mi­na : le séquen­çage se fait sur des lames en verre appe­lées flow­cells qui dis­posent de plu­sieurs pistes où a lieu le séquen­çage. Une même banque de lec­ture (libra­ry) peut être séquen­cé sur plu­sieurs pistes (lane) d'une même flow­cell, afin d'équilibrer la répar­ti­tion des banques entre pistes. De même il peut y avoir plu­sieurs banques séquen­cées sur une même piste (ce qu'on appelle le mut­li­plexage). L001 veut dire que ce fichier FASTQ regroupe des lec­tures situées sur la piste 001 de la flow­cell.

Une flow­cell Illu­mi­na à 8 pistes (lanes). Wiki­me­dia Com­mons, CC BY 3.0

R1 veut dire qu'il s'agit des 1ères lec­tures (par oppo­si­tion à R2, les secondes lec­tures). En effet sur Illu­mi­na, on peut faire du séquen­çage single end ou pair end. Dans le single end, on ne séquen­ce­ra que les X pre­mières paires de bases du frag­ment d'ADN (X = 50, 100, 150, 250 de nos jours, mais il des­cen­dait jusqu'à 24 dans mes années folles de doc­to­rant). Dans le séquen­çage pair end, on séquence le début du frag­ment (la lec­ture une, R1), puis la fin du frag­ment (la lec­ture deux, R2, que l'on range dans un autre FASTQ). Il y a même par­fois une troi­sième lec­ture (R3) dans le cas des tech­no­lo­gies 10x Geno­mics.

Pour savoir à quoi cor­res­pond le 001 final, tour­nons nous vers l'aide de BaseS­pace :

001—The last seg­ment is always 001.

Page d'aide de BaseS­pace, Illu­mi­na

Vous avoue­rez que ce n'est pas très infor­ma­tif. Enquê­tons !

Le mystère des fichiers FASTQ finissant par 001.

Si pour de nom­breux bio-infor­ma­ti­ciens, un fichier FASTQ est un fichier de don­nées brut, il faut savoir que les séquen­ceurs Illu­mi­na ne sortent en géné­ral pas des fichiers FASTQ, mais plu­tôt des fichiers BCL (bina­ry base call), for­mat de base cal­ling binaire obte­nue depuis les images suc­ces­sives de spots de fluo­res­cences sur la flow­cell. On retrouve ici le fameux adage :

Les fichiers bruts de quelqu'un sont les fichiers pro­ces­sés d'un autre (et réci­pro­que­ment).

Adage popu­laire en science des don­nées

Ces fichiers BCL sont ensuite conver­tis en FASTQ grâce à un uti­li­taire astu­cieu­se­ment nom­mé bcl-convert. Allons donc voir ce qui concerne le nom­mage des fichiers FASTQ en sor­tie dans la doc de ce logi­ciel :

The file name for­mat is construc­ted from fields spe­ci­fied in the sample sheet. The for­mat is as fol­lows.
• _S#_L00#_R#_001.fastq.gz

Doc récente de bcl-convert

Diantre, le 001 final est bien là, mais tou­jours aus­si peu jus­ti­fié. L'enquête pié­tine.

Avant bcl-convert, Illu­mi­na pré­co­ni­sait plu­tôt un autre uti­li­taire, astu­cieu­se­ment nom­mé bcl2fastq. Allons donc lire la doc (pdf) de la der­nière ver­sion (la v2.20) de cet outil, notam­ment la par­tie concer­nant le for­mat de nom­mage des FASTQ en sor­tie :

001 — The last por­tion of the file name is always 001.

Docu­men­ta­tion de bcl2fastq v2.20, Illu­mi­na

Voi­là qui ne nous avance guère.

Par curio­si­té, je suis quand même aller lire la docu­men­ta­tion (pdf) de l'ancienne ver­sion de bcl2fastq, la v1.8.4, datant de 2013 :

Illu­mi­na FASTQ files use the fol­lo­wing naming scheme :

<sample name> _​ <bar­code sequence> _​L <lane> _​R <read num­ber> _​ <set num­ber> .fastq.gz

Docu­men­ta­tion de bcl2fastq v1.8.4, Illu­mi­na

Ah ! Enfin l'enquête pro­gresse. Le 001 final était donc un numé­ro variable en des temps recu­lés, qui cor­res­pon­dait à un set num­ber !

Mais qu'est-ce donc qu'un set dans ce contexte-là, me diriez-vous ?

Set Size

The FASTQ files are divi­ded in files with the file size set by the –fastq-clus­ter-count com­mand line option of confi­gure Bcl​To​Fastq​.pl. The dif­ferent files are dis­tin­gui­shed by the 0‑padded 3‑digit set num­ber.

Docu­men­ta­tion de bcl2fastq v1.8.4, Illu­mi­na

On pou­vait donc divi­ser les gros BCL en plu­sieurs petits FASTQ via un para­mètre. Les petits FASTQ se dis­tin­guaient entre eux par le numé­ro final !

Mais pourquoi avoir plusieurs petits FASTQ plutôt qu'un gros ?

En des temps recu­lés où bcl2fastq pro­po­sait encore de faire plein de petit FASTQ, il était pos­sible la taille d'un gros fichier FASTQ (même com­pres­sé) dépasse la capa­ci­té de sup­port tels que les CD-ROM (700 Mo), les DVD (4.2 ou 8.5 Go), ou la taille maxi­male des fichiers dans des sys­tèmes de fichiers comme le FAT32 (4 Go max). C'était donc pra­tique de pou­voir décou­per les gros fichiers en plu­sieurs petits pour pou­voir les trans­fé­rer plus aisé­ment d'un sup­port à l'autre.

La conclusion de l’enquête

Main­te­nant que la taille maxi­male des fichiers n'est plus trop un sou­ci, l'option de décou­page a dis­pa­ru de bcl2fastq, puis de bcl-convert, mais le 001 final est res­té, sans doute pour assu­rer une plus grande com­pa­ti­bi­li­té entre les dif­fé­rents outils Illu­mi­na sans trop s'embêter. Il s'agit donc d'un arte­fact, trace d'un pas­sé où les limites tech­niques nous impo­sait de pas­ser par de tels arti­fices.

Mer­ci aux Admins du blog, ain­si qu'aux relec­teurs de cet article, ZaZo0o, max et aze­rin, pour leurs pré­cieux conseils !



Pour continuer la lecture :


Commentaires

2 réponses à “Pourquoi certains fichiers FASTQ finissent par 001 ?”

  1. Génial ! Mer­ci pour cette enquête. 🙂

  2. Par­tir d'un petit détail pour dérou­ler une ficelle digne des plus grands thril­lers ! Comme quoi on en sait jamais assez sur ces séquen­çeurs.

Laisser un commentaire