Ressources
Aide-mémoire des formats
Sept formats incontournables, leurs champs et les erreurs de parsing les plus coûteuses. Les exemples sont synthétiques et ne proviennent pas de jeux réels.
FASTA
.fa, .fasta, .fna, .faaSéquence(s) sans qualité. Une ligne d'en-tête, puis des lignes de séquence.
Champs principaux
- Ligne d'en-tête : >identifiant description facultative
- Lignes de séquence : alphabet, retours à la ligne libres
- Pas de qualité par base
- Plusieurs enregistrements possibles dans un même fichier
Exemple synthétique
>ecoli_lacZ_partial [Escherichia coli K-12]
ATGACCATGATTACGCCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCGGGTACCGAGCTCGAATTC
GTAATCATGGTCATAGCTGTTTCCTGTGTGAAATTGTTATCCGCTCACAATTCCACACAACATACGAGCCGGAPièges fréquents
- Une séquence peut être coupée sur plusieurs lignes : concaténer avant de compter.
- Le caractère > ne peut apparaître qu'en début de ligne d'en-tête.
- Les commentaires commençant par ; ne sont pas standard dans tous les parseurs.
- Les séquences peuvent contenir des caractères ambiguus (N, R, Y).
FASTQ
.fq, .fastq, .fq.gzLectures avec qualité par base, quatre lignes par enregistrement.
Champs principaux
- Ligne 1 : @identifiant et métadonnées
- Ligne 2 : séquence
- Ligne 3 : + (éventuellement répétition de l'identifiant)
- Ligne 4 : chaîne de qualité ASCII de même longueur que la séquence
Exemple synthétique
@read1
ACGTACGTACGT
+
IIIIIIIIIIIIPièges fréquents
- La qualité est encodée en ASCII : Q = ord(caractère) - 33 avec l'encodage Sanger/Illumina moderne.
- Les longueurs des lignes 2 et 4 doivent être identiques.
- Un fichier FASTQ peut être compressé en gzip ; ne pas le lire comme du texte brut.
- Les adaptateurs ne sont pas retirés automatiquement.
SAM / BAM
.sam, .bam, .cramAlignements de lectures sur une référence. BAM est la version binaire compressée.
Champs principaux
- En-tête @HD, @SQ, @RG, @PG (lignes commençant par @)
- QNAME : nom de la lecture
- FLAG : propriétés binaires (paire, brin, non alignée, duplicat…)
- RNAME, POS : référence et position 1-based
- MAPQ : qualité de l'alignement
- CIGAR : description des opérations d'alignement
- RNEXT, PNEXT, TLEN : paire et longueur du fragment
- SEQ, QUAL : séquence et qualité
Exemple synthétique
@HD VN:1.6 SO:coordinate
@SQ SN:chr1 LN:1000
read1 99 chr1 10 60 12M = 30 32 ACGTACGTACGT IIIIIIIIIIIIPièges fréquents
- POS est 1-based, alors que de nombreux index Python sont 0-based.
- FLAG est un entier : le décoder avec samtools flags plutôt qu'à la main.
- Un CIGAR avec N (saut) ne signifie pas une délétion génomique.
- Un BAM doit être trié et indexé pour l'appel de variants.
VCF
.vcf, .vcf.gz, .bcfVariants par rapport à une référence, avec génotypes et annotations.
Champs principaux
- CHROM, POS, ID, REF, ALT
- QUAL : qualité du variant
- FILTER : PASS ou motifs de rejet
- INFO : annotations clé=valeur
- FORMAT : champs par échantillon (GT, DP, AD…)
- Colonnes d'échantillons
Exemple synthétique
##fileformat=VCFv4.3
##contig=<ID=chr1,length=1000>
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT S1
chr1 42 . A G 50 PASS DP=30 GT:DP 0/1:30Pièges fréquents
- Un VCF décrit des variants par rapport à une référence : vérifier la version du génome.
- Un allèle 0/1 n'est pas un dosage d'expression ; c'est un génotype.
- Les champs INFO et FORMAT ont des conventions différentes.
- Un VCF multi-échantillons peut contenir des sites non variants (0/0).
GTF / GFF
.gtf, .gff3Annotation de gènes et transcrits en neuf colonnes tabulées.
Champs principaux
- seqname, source, feature (gene, transcript, exon, CDS)
- start, end : coordonnées 1-based inclusives
- score, strand (+/-/.), frame
- attributes : clé "valeur" (GTF) ou clé=valeur (GFF3)
Exemple synthétique
chr1 synthetic gene 1 900 . + . gene_id "gene1"; gene_name "lacZ";
chr1 synthetic exon 1 300 . + . gene_id "gene1"; transcript_id "tx1";Pièges fréquents
- Les coordonnées sont 1-based inclusives, contrairement à BED.
- Le champ frame n'a de sens que pour les CDS.
- Les attributs GTF et GFF3 n'ont pas la même syntaxe.
- Les identifiants de transcrits et de gènes ne sont pas toujours cohérents.
PDB
.pdb, .entStructure macromoléculaire en colonnes de largeur fixe.
Champs principaux
- HEADER, TITLE, COMPND, SOURCE : métadonnées
- REMARK 465/470 : résidus manquants ou non observés
- SEQRES : séquence des chaînes
- ATOM : atomes d'une chaîne de macromolécule
- HETATM : ligands, eau, ions
- TER : fin de chaîne
- MODEL/ENDMDL : modèles multiples (RMN)
Exemple synthétique
ATOM 1 N THR A 1 17.047 14.099 3.625 1.00 13.79 NPièges fréquents
- Les colonnes sont fixes : découper par position, pas par espaces.
- Le champ d'occupation et le facteur B ne sont pas des mesures de qualité équivalentes.
- Un fichier peut contenir plusieurs modèles : choisir explicitement le premier.
- Les atomes d'hydrogène et les altloc compliquent le comptage.
Newick
.nwk, .tree, .treArbre parenthésé avec longueurs de branches et valeurs de support.
Champs principaux
- Feuilles : noms
- Parenthèses : clades
- Virgules : séparation des enfants
- Deux-points : longueur de branche
- Nombres après les nœuds : souvent des valeurs de bootstrap
Exemple synthétique
((A:0.1,B:0.2)95:0.3,(C:0.1,D:0.2)80:0.4);Pièges fréquents
- Un point-virgule final est obligatoire dans la plupart des parseurs.
- Les étiquettes contenant des espaces ou des parenthèses doivent être citées.
- La racine n'est pas toujours biologique : un arbre peut être enraciné artificiellement.
- Bootstrap et probabilités postérieures ne sont pas la même quantité.