El formato SAM (acrónimo del inglés, Sequence Alignment Map) es un formato de archivo de texto diseñado para el almacenamiento de secuencias biológicas alineadas a una secuencia de referencia y desarrollado por Heng Li y Bob Handsaker y colaboradores.[1] Se desarrolló durante el Proyecto 1000 genomas, con el objetivo de alejarse del formato MAQ y diseñar un nuevo formato. El diseño general de columnas separadas por tabulaciones se inspiró en el formato PSL de BLAT. El nombre de SAM viene de Gabor Marth, quien originalmente tenía un formato con el mismo nombre pero diferente sintaxis, similar al formato de salida de BLAST. [2] Se usa generalmente para almacenamiento de datos, tales como secuencias de nucleótidos, generados mediante tecnología de secuenciación, incluyendo secuencias no mapeadas. El formato acepta secuencias cortas y largas (hasta 128 Mpb) [3] producidas por diferentes plataformas de secuenciación; se ha utilizado en diferentes proyectos e instituciones como el Genome Analysis Toolkit, el Broad Institute, el Wellcome Sanger Institute y durante el Proyecto 1000 genomas.
Formato SAM | ||
---|---|---|
Desarrollador | ||
| ||
samtools.github.io/hts-specs/ | ||
Información general | ||
Extensión de archivo |
.sam | |
Tipo de formato | Bioinformática | |
Formato abierto | ? | |
El formato SAM consiste en sección de cabecera y otra con información sobre el alineamiento.[1] Los archivos SAM se pueden analizar y editar con el software SAMtools.[1] La sección de cabecera debe aparecer primero en el archivo, utilizando el símbolo "@" para distinguirla de la sección de alineamiento. La sección de alineamiento tiene 11 campos obligatorios, así como un número variable de campos opcionales.[1][4] A continuación se muestra una tabla con los campos obligatorios de la sección de alineamiento:
Columna | Campo | Tipo | Breve descripción |
---|---|---|---|
1 | QNAME | Cadena (de caracteres) | Es el identificador único para cada lectura |
2 | FLAG | Número entero | Indicador (mostrado en bits) |
3 | RNAME | Cadena | Nombre de la secuencia de referencia. Puede ser un cromosoma, un identificador de transcrito etc. |
4 | POS | Número entero | Primera posición mapeada (en base 1) |
5 | MAPQ | Número entero | Métrica de calidad del mape |
6 | CIGAR | Cadena | Resumen del alineamiento |
7 | RNEXT | Cadena | Nombre de la secuencia de referencia en el alineamiento primario de la siguiente lectura. En secuenciación paired-end, la siguiente lectura es la pareja, correspondiendo con el campo RNAME |
8 | PNEXT | Número entero | Posición de la siguiente lectura |
9 | TLEN | Número entero | Número de bases cubiertas por las lecturas del mismo fragmento |
10 | SEQ | Cadena | Secuencia de la lectura |
11 | QUAL | Cadena | Métrica de calidad de la lectura |
En un alineamiento múltiple de secuencias, donde r001 - r004 son lecturas alineadas con la secuencia de referencia, podemos visualizar este alineamiento de la siguiente manera:
Coordenadas 12345678901234 5678901234567890123456789012345 Referencia AGCATGTTAGATAA**GATAGCTGTGCTAGTAGGCAGTCAGCGCCAT +r001/1 TTAGATAAAGGATA*CTG +r002 aaaAGATAA*GGATA +r003 gcctaAGCTAA +r004 ATAGCT..............TCAGC -r003 ttagctTAGGC -r001/2 CAGCGGCAT
La información correspondiente en formato SAM es la siguiente:
@HD VN:1.6 SO:coordinate @SQ SN:ref LN:45 r001 99 ref 7 30 8M2I4M1D3M = 37 39 TTAGATAAAGGATACTG * r002 0 ref 9 30 3S6M1P1I4M * 0 0 AAAAGATAAGGATA * r003 0 ref 9 30 5S6M * 0 0 GCCTAAGCTAA * SA:Z:ref,29,-,6H5M,17,0; r004 0 ref 16 30 6M14N5M * 0 0 ATAGCTTCAGC * r003 2064 ref 29 17 6H5M * 0 0 TAGGC * SA:Z:ref,9,+,5S6M,30,1; r001 147 ref 37 30 9M = 7 -39 CAGCGGCAT * NM:i:1 -------------------------------------------------------------------------------------------------- | QNAME | FLAG | RNAME | POS | MAPQ | CIGAR | RNEXT | PNEXT | TLEN | SEQ | QUAL | Campos opcionales
Las dos primeras líneas son la sección de cabecera, las cuales están siempre indicadas con un "@" al comienzo y recogen información sobre los datos almacenados en el archivos y metadatos asociados codificados mediante una serie de etiquetas. En este ejemplo, "@HD" indica que esa línea contiene metadatos del archivo, siendo "VN:1.6" la versión del formato y "SO:coordinate", que los alineamientos están ordenados por coordenadas en el genoma. "@SQ" recoge información de la secuencia de referencia, donde "SN" indica que esta se llama "ref", y "LN:45" es su longitud.[4]
Las demás líneas son la sección de alineamiento, que contienen información para cada lectura individualmente.[4]
El campo FLAG se muestra como un solo número entero, pero la suma de valores en bits se usa para denotar múltiples atributos de un alineamiento.[4] Cada atributo denota un bit en la representación binaria.
Número | Binario | Descripción (Interpretación de lectura en pares) |
---|---|---|
1 | 000000000001
|
Plantilla que tiene múltiples plantillas secuenciadas (lecturas emparejadas) |
2 | 000000000010
|
Cada segmento está adecuadamente alineado (lecturas mapeadas y emparejadas) |
4 | 000000000100
|
Segmento no mapeado (la lectura 1 no mapea) |
8 | 000000001000
|
Siguiente segmento en la plantilla no mapeado (la lectura 2 no mapea) |
16 | 000000010000
|
SEQ es la secuencia complementaria reversa (lectura 1) |
32 | 000000100000
|
SEQ es el siguiente segmento en la plantilla, que es complementaria reversa (lectura 2) |
64 | 000001000000
|
El primer segmento en la plantilla (lectura 1) |
128 | 000010000000
|
El último segmento en la plantilla (lectura 2) |
256 | 000100000000
|
Alineamiento no primario |
512 | 001000000000
|
El alineamiento falla los controles de calidad |
1024 | 010000000000
|
Lectura duplicada (PCR u óptica) |
2048 | 100000000000
|
Alineamiento suplementario (ej.: específico de alineador, puede ser una porción de la lectura partida o una región enlazada) |
Los atributos FLAG se suman para obtener el valor final, por ejemplo, una fila SAM resultante de un registro FASTQ de extremos emparejados de Illumina que tiene el valor FLAG 2145 indicaría:
Valor de la bandera | Significado | Valor acumulado |
---|---|---|
1 | la lectura está emparejada | 1 |
32 | read2 fue complementado inversamente | 33 |
64 | lectura1 | 97 |
2048 | alineamiento suplementaria | 2145 |
La duodécima columna en los archivos SAM corresponde a campos opcionales, separados por comas. Estos recogen información sobre secuencias identificadoras de lecturas, de célula (en caso de que los datos provengan de secuenciación de célula única), métricas de calidad Phred etc. Los campos opcionales siempre comienzan con el formato: Indicador (FLAG):Tipo:Valor.[4] El tipo puede ser uno de los siguientes: A (caracter), C(número entero 0-255), f (número real), H (conjunto hexadecimal), i (número entero) o Z (cadena de caracteres).[6]