# FASTA (format de fichier)

Le format FASTA (ou format Pearson) est un format de fichier texte utilisé pour stocker des séquences biologiques de nature nucléique ou protéique. Ces séquences sont représentées par une suite de lettres codant des acides nucléiques ou des acides aminés selon la nomenclature IUPAC. Chaque séquence peut être précédée par un nom et des commentaires. Ce format est originellement issu de la suite de programmes FASTA mais, de par son utilisation très répandue, est devenu un standard de facto en bioinformatique.
La simplicité du format FASTA rend la manipulation et la lecture (ou analyse syntaxique) des séquences aisée par l'utilisation d'outils de traitement de texte et de langages de script tels que Python, R, Ruby ou Perl.
Un fichier au format FASTA est conventionnellement signalé par une extension .fasta ou .fa.

## Historique

Le format FASTA fut développé par William R. Pearson pour son programme FASTA. Mais son utilisation fut adoptée au-delà de ce simple programme et fut rendue populaire entre autres par le programme BLAST.
Le format FASTA a évolué également pour donner naissance au format FASTQ, combinaison du format FASTA et du format QUAL, très largement utilisé dans le domaine du séquençage d'ADN haut-débit.

## Format
### Description

Un fichier FASTA est composé au minimum de deux lignes. La ligne 1 décrit la séquence en commençant par le signe ">" suivi immédiatement de l'identifiant de la séquence et d'un commentaire séparé de l'identifiant par un espace. Le signe ">" est obligatoire mais identifiant et commentaire sont optionnels, même si pour des questions de bonnes pratiques bioinformatiques il est fortement recommandé d'adjoindre au moins un identifiant à la séquence. Identifiant et commentaire peuvent contenir tout type de caractères excepté les caractères de contrôle autres que ceux codant une fin de ligne.
La ligne 2 est constituée des lettres représentant les acides nucléiques ou les acides aminés de la séquence. Cette ligne possède cependant une longueur maximale de 120 résidus : toute séquence de longueur supérieure doit être découpée en plusieurs lignes. Pour des raisons historiques liées aux premiers affichages sur écran DEC-VT, le découpage généralement rencontré est de 80 caractères, correspondant au mode 80 caractères par ligne permis à l'époque (en parallèle du mode 132 qui était plus difficile à lire). Des découpages de 60 ou 70 caractères sont aussi largement répandus mais ce découpage peut en réalité être réalisé avec n'importe quelle longueur de chaîne de caractères inférieure ou égale à 120 caractères. Si la séquence comprend des espaces, tabulations ou caractères ne respectant pas la nomenclature IUPAC, ceux-ci sont ignorés.
Ainsi un fichier FASTA se présente sous la forme suivante (les X représentant acides nucléiques ou aminés) :
Le format FASTA normalise l'utilisation du signe ";" en début de ligne pour les commentaires (ces lignes doivent être ignorées).

### Fichier multi-séquences

Un fichier FASTA multi-séquences ou multi-entrées est un fichier contenant plusieurs séquences d'une seule nature (nucléique ou protéique), chaque séquence étant précédée de sa ligne d'identification. Ce type de fichier peut être constitué ab initio ou être le résultat d'une concaténation de fichiers FASTA constitués d'une ou plusieurs séquences. Il respecte le même formatage que précédemment, la fin d'une séquence étant interprétée alors par la rencontre à nouveau du signe ">" indiquant le commencement de la ligne d'identification d'une autre séquence. Pour une lecture humaine plus aisée des fichiers, il est recommandé d'insérer une ligne vide entre la fin de la séquence et le signe ">" suivant.

### Exemples types

Voici un exemple de séquence nucléique :
Voici un exemple de séquence protéique :

## Identifiants de séquences

La ligne d'identification, commençant par le signe ">", permet de donner un nom pouvant contenir un identifiant unique à une séquence donnée ainsi que beaucoup d'autres informations considérées comme commentaires. De nombreuses banques de séquences utilisent des lignes d'identification standardisées, qui peuvent être utiles pour une extraction automatique de données contenues dans ces lignes. Un usage devenu obsolète permettait d'associer plusieurs lignes d'identification en une seule à l'aide du caractère de contrôle Start of Header (code ASCII 1).
Les lignes de commentaires introduite par le signe ";" et pouvant être associés à la ligne d'identification, option présente dans les premières versions du format FASTA, ne sont pas reconnues par les banques de séquences et certains programmes bioinformatiques suivant les spécifications des fichiers FASTA du NCBI.
Le NCBI a défini un standard pour la génération d'identifiants uniques de séquence (SeqID) pour la ligne d'identification. Le manuel de formatdb dit sur le sujet : "formatdb traitera automatiquement les SeqID et créera des index, mais les identifiants de bases de données dans les lignes d'identification du fichier FASTA doivent suivre les conventions du FASTA Defline Format".
Cependant, aucune description définitive du format de la ligne d'identification FASTA (FASTA Defline Format) ne fut donné. Une tentative pour créer un tel format est décrit ci-dessous (voir également "The NCBI Handbook", Chapter 16, The BLAST Sequence Analysis Tool).
| Base de données | Format de la ligne d'identification |
| GenBank | gi|numéro gi|gb|numéro d'accession|locus |
| Laboratoire européen de biologie moléculaire | gi|numéro gi|emb|numéro d'accession|locus |
| DNA Data Bank of Japan | gi|numéro gi|dbj|numéro d'accession|locus |
| NBRF PIR | pir||entrée |
| Protein Research Foundation | prf||nom |
| Swiss-Prot | sp|numéro d'accession|nom |
| Brookhaven Protein Data Bank (1) | pdb|entrée|chaîne |
| Brookhaven Protein Data Bank (2) | entrée:chaîne|PDBID|CHAÎNE|SÉQUENCE |
| Brevets | pat|brevet|numéro |
| GenInfo Backbone Id | bbs|numéro |
| General database identifier | gnl|base de données|identifiant |
| NCBI Reference Sequence | ref|numéro d'accession|locus |
| Local Sequence identifier | lcl|identifiant |
La barre verticale dans la liste ci-dessus ne sert pas de séparateur au sens de la forme Backus-Naur mais est une partie entière du format. De multiples identifiants peuvent être concaténés en utilisant cette barre verticale.

## Représentation de séquences

Les séquences présentes dans un fichier FASTA peuvent être de nature nucléique ou protéique et peuvent contenir des gaps ou des caractères utilisés dans les alignements de séquences. Les séquences doivent être représentées dans le code du standard IUB/IUPAC des acides nucléiques et des acides aminés avec cependant la prise en compte des exceptions suivantes :
* les lettres minuscules sont acceptées et transformées en majuscules,
* le signe "-" peut être utilisé pour représenter un gap,
* dans les séquences protéiques, les signes "U" et "*" sont acceptés (voir ci-dessous).
Les signes numériques ne sont pas autorisés mais peuvent être utilisés dans certaines bases de données pour indiquer des positions au sein de la séquence.
Le code des acides nucléiques accepté est$^,$ :
| Code des acides nucléiques | Signification | Moyen de mémorisation mnémotechnique |
| A | A | Adénine |
| C | C | Cytosine |
| G | G | Guanine |
| T | T | Thymine |
| U | U | Uracile |
| R | A ou G | puRine |
| Y | C, T ou U | pYrimidines |
| K | G, T ou U | bases contenant une cétone (Ketones en anglais) |
| M | A ou C | bases contenant un groupe aMine |
| S | C ou G | interaction forte (Strong en anglais) |
| W | A, T ou U | interaction faible (Weak en anglais) |
| B | différent de A (c.-à-d. C, G, T ou U) | B vient après A |
| D | différent de C (c.-à-d. A, G, T ou U) | D vient après C |
| H | différent de G (c.-à-d. A, C, T ou U) | H vient après G |
| V | ni T ni U (c.-à-d. A, C ou G) | V vient après T et U |
| N | A, C, G, T ou U | N'importe ou Nucléotide |
| X | acide nucléique masqué | |
| - | gap | |
Le code des acides aminés (24 codes des acides aminés et 3 codes spéciaux) sont :
| Code des acides aminés | Signification |
| A | Alanine |
| B | Acide aspartique ou Asparagine |
| C | Cystéine |
| D | Acide aspartique |
| E | Acide glutamique |
| F | Phénylalanine |
| G | Glycine |
| H | Histidine |
| I | Isoleucine |
| K | Lysine |
| L | Leucine |
| M | Méthionine |
| N | Asparagine |
| O | Pyrrolysine |
| P | Proline |
| Q | Glutamine |
| R | Arginine |
| S | Sérine |
| T | Thréonine |
| U | Sélénocystéine |
| V | Valine |
| W | Tryptophane |
| Y | Tyrosine |
| Z | Acide glutamique ou Glutamine |
| X | n'importe |
| * | codon stop |
| - | gap |

## Extensions de fichier

Il n'existe pas d'extension de fichier officiel pour les fichiers textes contenant des séquences formatées en FASTA. Le tableau ci-après liste les différentes extensions utilisées et leur signification respective.
| Extension | Signification | Commentaires |
| .fasta .fas .fa | FASTA générique | Tout fichier fasta. Ces types de fichiers peuvent aussi avoir comme extension .seq (pour sequence) et .fsa (pour fasta sequence alignment) |
| .fna | fasta nucleic acid | Fichier FASTA contenant une séquence d'acides nucléiques. Pour des séquences de séquences codantes spécifiques d'un génome, il sera préféré l'extension .ffn. |
| .ffn | fasta functional nucleotide | Fichier FASTA contenant une séquence nucléique d'une région codante d'un génome. |
| .faa | fasta amino acid | Fichier FASTA contenant une séquence d'acides aminés. Un fichier contenant de multiples séquences pourra avoir l'extension plus spécifique mpfa. |
| .frn | fasta RNA non-coding | Fichier FASTA contenant une séquence d'ARN non-codant d'un génome (tels que les ARNt ou les ARNr) mais écrite dans la nomenclature du code ADN (l'uracile remplacé par la thymine). |

## Convertisseurs de formats

Les fichiers FASTA peuvent être convertis par lots vers ou à partir de fichiers FASTA multi-séquences en utilisant des programmes spécifiques, pour certains libres. Des programmes permettent également la conversion par lots de fichiers d'électrophorègrammes aux formats ABI ou SCF vers le format FASTA.