# Formato FASTA

En bioinformática, el formato FASTA es un formato de archivo informático basado en texto, utilizado para representar secuencias de nucleótidos o de aminoácidos (constituyentes de ácidos nucleicos y proteínas, respectivamente), y en el que estos se representan usando códigos de una única letra.
El formato también permite incluir nombres de secuencias y comentarios que preceden a las secuencias en sí. Se originó a partir del software de alineamiento de secuencias FASTA, creado en 1985. La simplicidad del formato FASTA hace fácil el manipular y analizar secuencias usando herramientas de procesado de textos y lenguajes de guion como Python y PERL.

## Formato

Una secuencia bajo formato FASTA comienza con una descripción en una única línea (línea de cabecera), seguida por líneas de datos de secuencia. La línea de descripción se distingue de los datos de secuencia por un símbolo '>' (mayor que) en la primera columna. La palabra siguiente a este símbolo es el identificador de la secuencia, y el resto de la línea es la descripción (ambos son opcionales). No debería existir espacio entre el '>' y la primera letra del identificador. Se recomienda que todas las líneas de texto sean menores de 80 caracteres. La secuencia termina si aparece otra línea comenzando con el símbolo '>'; esto indica el comienzo de otra secuencia. Un ejemplo simple de una secuencia en el formato FASTA puede ser:

### Línea de cabecera

La línea de cabecera, que comienza con '>', proporciona un nombre y/o un identificador único a la secuencia, y a menudo bastante información adicional. Muy diferentes bases de datos de secuencias usan cabeceras estandarizadas, lo que ayuda a la extracción automática de información desde la cabecera. La línea de cabecera puede contener más de una cabecera, separadas por un carácter ^A (Control-A). En el formato FASTA Pearson original, uno o más comentarios, distinguidos por un carácter ';' (punto y coma) al comienzo de la línea, podían aparecer tras la cabecera. La mayoría de las bases de datos y aplicaciones bioinformáticas no reconocen tales comentarios y siguen la especificación FASTA del NCBI. Un ejemplo de archivo con una secuencia múltiple bajo FASTA podría ser:

### Representación de la secuencia

Tras la línea de cabecera y los comentarios, una o más líneas pueden seguir para describir la secuencia: cada línea de una secuencia debería tener menos de 80 caracteres. Las secuencias pueden corresponder a secuencias de proteínas (estructura primaria de las proteínas) o de ácidos nucleicos, y pueden contener huecos (en inglés, gaps) o caracteres de alineamiento. Normalmente se espera que las secuencias se representen en los códigos estándar IUB/IUPAC para aminoácidos y ácidos nucleicos, con las siguientes excepciones: se aceptan letras minúsculas, las cuales se transforman en mayúsculas; un único guion o raya puede usarse para representar un hueco; y en secuencias de aminoácidos, 'U' y '*' son caracteres aceptables (ver más abajo). No se admiten dígitos numéricos, pero se utilizan en algunas bases de datos para indicar la posición en la secuencia.
Los códigos de ácidos nucleicos utilizados son:
| Código de ácido nucleico | Significado |
| A | Adenosina |
| C | Citosina |
| G | Guanina |
| T | Timidina |
| U | Uracilo |
| R | G A (puRina) |
| Y | T C (pirimidina/pYrimidine) |
| K | G T (cetona/Ketone) |
| M | A C (grupo aMino) |
| S | G C (interacción fuerte/Strong interaction) |
| W | A T (interacción débil/Weak interaction) |
| B | G T C (no A) (B viene tras la A) |
| D | G A T (no C) (D viene tras la C) |
| H | A C T (no G) (H viene tras la G) |
| V | G C A (no T, no U) (V viene tras la U) |
| N | A G C T (cualquiera/aNy) |
| X | máscara |
| - | hueco (gap) de longitud indeterminada |
Los códigos de aminoácidos son:
| Código de aminoácido | Significado |
| A | Alanina |
| B | Ácido aspártico o Asparagina |
| C | Cisteína |
| D | Ácido aspártico |
| E | Ácido glutámico |
| F | Fenilalanina |
| G | Glicina |
| H | Histidina |
| I | Isoleucina |
| K | Lisina |
| L | Leucina |
| M | Metionina |
| N | Asparagina |
| O | Pirrolisina |
| P | Prolina |
| Q | Glutamina |
| R | Arginina |
| S | Serina |
| T | Treonina |
| U | Selenocisteína |
| V | Valina |
| W | Triptófano |
| Y | Tirosina |
| Z | Ácido glutámico o Glutamina |
| X | cualquiera |
| * | parada de traducción |
| - | hueco (gap) de longitud indeterminada |

### Identificadores de secuencia

El NCBI definió un estándar para el identificador único usado para las secuencias (término original en inglés, SeqID) en la línea de cabecera. Paquetes de software, como makeblastdb y table2asn, reconocen automáticamente los identificadores y su base de datos de origen, siempre que se correspondan con los establecidos oficialmente por el NCBI.
| Tipo | Formato/s | Ejemplo/s |
| Local (ej.: sin referencia a bases de datos) | lcl|número entero lcl|secuencia de caracteres | lcl|123 lcl|hmm271 |
| Geninfo (backbone seqid) | bbs|número entero | bbs|123 |
| Geninfo (backbone moltype) | bbm|número entero | bbm|123 |
| Geninfo (import ID) | gim|número entero | gim|123 |
| GenBank | gb|identificación|locus | gb|M73307|AGMA13GT |
| EMBL | emb|identificación|locus | emb|CAM43271.1| |
| PIR | pir|identificación|nombre | pir||G36364 |
| Swiss-Prot | sp|identificación|nombre | sp|P01013|OVAX_CHICK |
| patente | pat|país|patente|número de secuencia | pat|US|RE33188|1 |
| patente preconcedida | pgp|country|número de solicitud|número de secuencia | pgp|EP|0238993|7 |
| RefSeq | ref|identificación|nombre | ref|NM_010450.1| |
| Referencia general a cualquier base de datos no presente en esta lista | gnl|base de datos|número entero gnl|base de datos|secuencia de caracteres | gnl|taxon|9606 gnl|PID|e1632 |
| Geninfo Integrated Database | gi|número entero | gi|21434723 |
| DDBJ | dbj|identificación|locus | dbj|BAC85684.1| |
| PRF | prf|identificación|nombre | prf||0806162C |
| PDB | pdb|identificación|cadena | pdb|1I4L|D |
| Genbank (de terceros) | tpg|identificación|nombre | tpg|BK003456| |
| EMBL (de terceros) | tpe|identificación|nombre | tpe|BN000123| |
| DDBJ (de terceros) | tpd|identificación|nombre | tpd|FAA00017| |
| TrEMBL | tr|identificación|nombre | tr|Q90RT2|Q90RT2_9HIV1 |

### Extensiones de archivo

No hay una extensión de archivo estándar para un fichero de texto conteniendo secuencias formateadas en FASTA. La siguiente tabla incluye las diferentes extensiones utilizadas en archivos FASTA en función de su contenido.
| Extensión | Uso |
| .fasta, .fas, .fa | Cualquier archivo FASTA |
| .fna | Archivo FASTA que contiene secuencias de ácidos nucleicos |
| .ffn | Contiene secuencias de regiones codificantes de un genoma |
| .faa | Contiene secuencias de aminoácidos |
| .mpfa | Contiene secuencias de múltiples proteínas |
| .frn | Contiene secuencias de ARNs no codificantes (ej.: ARN ribosómico) |

### Convertidores de formato

Los archivos FASTA pueden ser convertidos por lotes a, o desde, el formato MultiFASTA usando herramientas libres como FASTA to multi-FASTA converter y multi-FASTA to FASTA converter. También pueden conseguirse otras herramientas libres para conversión por lotes desde formatos de cromatogramas (ABI/SCF) a FASTA: ABI2FASTA converter y Chromatogram explorer.

## Formato HUPO-PSI

Este formato pretende resolver bastantes problemas del formato tradicional FASTA:
* Las líneas de definición varían ampliamente sin una buena razón. Esto causa problemas a los usuarios finales que quieren usar estos archivos con herramientas de identificación de proteínas. Los creadores de estas herramientas se enfrentan a un desafío importante: o bien soportar todas estas variaciones, o bien permitir al usuario hacer frente a las mismas.
* La misma base de datos es procesada en diferentes motores de búsqueda -> identificadores diferentes -> dificultades para mapear (P00761 vs. ALBU_HUMAN).
* La misma proteína en diferentes bases de datos puede tener identificadores muy diferentes (P00761 vs gi|3446572|sp|p00761 vs. IPI:12345678).
* La información extraída de los formatos FASTA es heterogénea, lo que provoca problemas de análisis sintáctico.
* Descripción y disponibilidad de la taxonomía (nombres lationos, nombres comunes, TaxID del NCBI=

### Bloque de cabecera

Incluye información sobre la/s base/s de datos incluida/s. Todas las líneas del bloque empiezan con el carácter '#'. Un término de cabecera de la lista siguiente por línea:
| Términos para la cabecera | Descripción | Valor |
| #\DbComponent= | Incremento en la cuenta | Entero |
| #\Name= | Nombre de la base de datos | CV según proveedor de la base de datos (UniprotKnowledgeBase) |
| #\PrimaryIdentifierType= | Identificador para ser usado como prefijo para entradas de proteínas individuales | CV |
| #\Decoy= | ¿Es una base de datos señuelo? | ?: true/false or description |
| #\Version= | Versión de la base de datos, de acuerdo a su proveedor | De acuerdo al proveedor de la base de datosAccording to the database provider |
| #\ReleaseDate= | Fecha de la base de datos fuente | |
| #\NumberOfEntries= | Número de entradas | Entero |
| #\Sequence_type= | Tipo de secuencia | DNA (ADN), AA, RNA (ARN), EST, etc. |
Ejemplo de bloque cabecera:

### Línea de cabecera de secuencia

| Descripción de la línea de cabecera de la entrada individual | Ejemplo |
| La cabecera empieza con >, seguido por la AC primaria, precedida con el prefijo de la base de datos (útil si hay concatenadas más de una base de datos). Campo obligatorio. | >sp_ac|P000761 |
| Descripción de toda la información aparte de la secuencia \term=valor (los términosterms son descriptores de vocabulario controlado) | \ID=ALBU_HUMAN |
| El orden de los campos adicionales no es importante | |
| Valor puede ser una lista. Los elementos de la lista son representado como (valor_1)(valor_2) | \ALTERNATE_AC=(P00786)(Q22222) |
| Valor puede estar entre " ", si es necesario | \DE="Human serum albumin" |
| ' puede usarse como separador para todos los campos individuales | \MODRES=(1|Acetyl) |
| ¿Ctrl-A como separador para entradas multi-cabecera? (Caso de uso NCBInr) | (Caso de uso NCBInr) |
| Término de campo cabecera | Definición | Formato |
| ALT_AC | AC alternativa | |
| ID | SwissProt_ID | |
| DE | Descripción de la proteína | |
| ALT_DE | Descripción alternativa | |
| NCBITAXID | Identificador de taxonomía NCBI (9606) | Entero |
| TAX_LATIN | Taxonomía con nombre en latín (Homo sapiens) | |
| TAX_COM | Taxonomía en formato de nombre común (human) | |
| MODRES | Residuo modificado (PTM) | (posición|modificación) (PSI_MOD) |
| VARIANT | Mutación de residuo | (posición|residuo original|residuo final) |
Ejemplo de entrada de proteína: