El formato BED (Browser Extensible Data) es un formato de archivo de texto utilizado para almacenar regiones de un genoma como coordenadas con anotación asociada. Los datos se presentan en forma de columnas separadas por espacios o tabulaciones. Este formado fue desarrollado durante el Proyecto Genoma Humano[1] y adoptado después por otros proyectos de secuenciación. Su uso cada vez más extendido lo ha convertido de facto en un formato estándar en bioinformática, antes de cualquier propuesta formal.
BED | ||
---|---|---|
https://samtools.github.io/hts-specs/BEDv1.pdf | ||
Información general | ||
Extensión de archivo |
| |
Tipo de MIME | text/plain y text/x-bed | |
Número mágico |
62726F7773657220706F736974696F6E20636872 | |
Tipo de formato | Archivo de texto | |
Formato abierto | ? | |
Una de las ventajas de este formato es la manipulación de coordinadas en lugar de secuencias de nucleótidos, lo cual optimiza el poder y tiempo de computación al comparar diferentes partes de genomas. Además, su simplicidad facilita la manipulación y lectura de las coordenadas y su anotación utilizando lenguajes de procesamiento de texto y programación, como Python, Ruby o Perl, u otros más especializados como BEDTools.
Durante el final del siglo XX, aparecieron los primeros proyectos de secuenciación de genomas completos. De entre estos, el Proyecto Genoma Humano fue el más ambicioso de la época, desarrollando la secuenciación por primera vez de un genoma (véase, genoma humano) de varias de gigabases de tamaño. Esto requirió que los centros de secuenciación realizasen desarrollos metodológicos para automatizar el procesamiento de secuencias y su análisis. Así, se crearon varios formatos de archivo, tales como FASTQ, [2] GFF y BED. [3] Sin embargo, no se publicaron especificaciones oficiales, afectando a ciertos formatos como FASTQ conforme los proyectos de secuenciación se multiplicaban a principios del siglo XXI.
Su uso extendido en navegadores genómicos ha hecho posible definir el formato de una manera relativamente estable.
En su origen, el formato BED no tenía ninguna especificación oficial. En su lugar, el UCSC Genome Browser ofrece una descripción que se ha utilizado ampliamente como referencia.[4]
Las especificaciones formales del formato BED se publicaron en 2021, bajo la garantía de la Global Alliance for Genomics and Health.[5][6]
El formato BED consiste en un mínimo de tres columnas; hasta un máximo de nueve columnas opcionales se pueden añadir, con un total de doce columnas. Las primeras tres contienen los nombres de cromosomas o scaffolds, las coordenadas de comienzo y final de las secuencias. Las siguientes nueve columnas contienen las anotaciones relacionadas con estas secuencias. Las columnas deben estar separadas por espacios o tabulaciones, siendo la última opción la recomendada por razones de compatibilidad entre programas.[7] Cada fila debe tener el mismo número de columnas. Se debe respetar el orden de las columnas: si se utilizan las últimas columnas, las intermedias también deben especificarse.
Columna | Título | Definición | Obligatoria |
---|---|---|---|
1 | chrom | Nombre de un cromosoma (ej.: chr3, chrY, chr2_random) o un scaffold (e.g. scaffold10671) | Sí |
2 | chromStart | Coordenada de inicio en el cromosoma/scaffold de la secuencia (el primer nucleótido del cromosoma se numera como 0, es decir, está "en base 0") | Sí |
3 | chromEnd | Coordenada de final en el cromosoma/scaffold de la secuencia. Esta posición no es inclusiva, a diferencia de chromStart (el primer nucleótido del cromosoma se numera como 1, es decir, está "en base 1") | Sí |
4 | name | Nombre de la secuencia | No |
5 | score | Puntuación, de 0 a 1000 | No |
6 | strand | Orientación en las hebras de ADN (positivo ["+"] o negativo ["-"] o "." si no se específica) | No |
7 | thickStart | Coordenada de inicio para la visualización de la anotación. Se muestra como una línea gruesa (ej.: el codón de inicio de un gen) | No |
8 | thickEnd | Coordenada de final para la visualización de la anotación. Se muestra como el final de la línea gruesa (ej.: el codón stop de un gen) | No |
9 | itemRgb | Valor RGB (escrito en formato R, G, B, (ej.: 255,0,0)) que determina el color para la visualización de la anotación de la secuencia | No |
10 | blockCount | Número de bloques (ej.: exones) en la secuencia | No |
11 | blockSizes | Lista de valores separados por comas, que corresponden al tamaño de los bloques. El número de valores debe corresponder al de bloques en "blockCount". | No |
12 | blockStarts | Lista de valores separados por comas, que corresponden a las coordenadas de inicio de los bloques. Las coordenadas se calculan de acuerdo con las presentes en la columna "chromStart". El número de valores debe corresponder con el de "blockCount". | No |
Un archivo en formato BED puede contener una línea de cabecera de manera opcional. Sin embargo, no existe una descripción formal de esta. Puede contener una o más filas e indicarse por varias palabras o símbolos, [7]dependiendo de su función o puede ser simplemente descriptiva. Así, esta puede empezar con estas palabras o símbolos:
A diferencia del sistema de coordenadas utilizado por otros formatos estandarizados, tales como GFF, el sistema usado en el formato BED es "en base 0" para la coordenada de inicio, y "en base 1" para la de final. [7] De esta manera, el nucleótido con la coordenada 1 en el genoma tiene un valor de 0 en la columna 2 y un valor de 1 en la columna 3.
Una secuencia de mil nucleótidos en formato BED:
chr7 0 1000
se convertiría a las siguientes coordenadas del genoma humano basadas en 1, tal como las utiliza un explorador de genoma como UCSC:
chr7 1 1000
Esta elección se justifica por el método de cálculo de la longitud de regiones genómicas, el cual se basa en la simple resta de las coordenadas de: final (columna 3) - inicio (columna 2) ( ) . Cuando el sistema de coordenadas está basado en 1 para la primera posición, el cálculo es ligeramente más complejo: . Esta ligera diferencia puede tener un impacto relativamente grande en tiempo de computación cuando se utilizan conjuntos de datos de vario miles o cientos de miles de filas.
De manera alternativa, podemos visualizar ambas coordenadas como "basadas en cero", donde la posición final no es inclusive. En otras palabras, la posición final informa sobre el índice de la primera posición. Para el ejemplo anterior, la posición final 1000 indica la primera posición después de la característica, incluyendo posiciones de 0 a 999.
Este es un ejemplo mínimo:
chr7 127471196 127472363 chr7 127472363 127473530 chr7 127473530 127474697
Este es un ejemplo con nueve columnas, utilizado por el UCSC Genome Browser. Las primeras tres filas son para la configuración del navegador y son independientes de los datos especificados en formato BED.
Posición del navegador chr7:127471196-127495720 Navegador ocultar todo nombre de la pista="ItemRGBDemo" descripción="Demostración del elemento RGB" visibilidad=2 itemRgb="Activado" chr7 127471196 127472363 Pos1 0 + 127471196 127472363 255,0,0 chr7 127472363 127473530 Pos2 0 + 127472363 127473530 255,0,0 chr7 127473530 127474697 Pos3 0 + 127473530 127474697 255,0,0 chr7 127474697 127475864 Pos4 0 + 127474697 127475864 255,0,0 chr7 127475864 127477031 Negativo 1 0 - 127475864 127477031 0,0,255 chr7 127477031 127478198 Neg2 0 - 127477031 127478198 0,0,255 chr7 127478198 127479365 Negativo 3 0 - 127478198 127479365 0,0,255 chr7 127479365 127480532 Pos5 0 + 127479365 127480532 255,0,0 chr7 127480532 127481699 Negativo 4 0 - 127480532 127481699 0,0,255
No existe un estándar actualmente para la extensión de archivos en formato BED, siendo la extensión ".bed" es la más utilizada. El número de columnas se puede indicar a veces en la extensión, por ejemplo: ".bed3", ".bed4", ".bed6", ".bed12".[8]
El uso del formato BED se ha expandido rápidamente con el surgimiento de nuevas técnicas de secuenciación y la manipulación de archivos con secuencias cada vez más largas. La comparación de secuencias genómicas o incluso de genomas enteros puede requerir de recursos computacionales intensos y largos. La manipulación de archivos BED vuelve este trabajo más eficiente al utilizar coordenadas para extraer secuencias de interés a partir de datos de secuenciación para comparar y manipular directamente dos o más conjuntos de coordenadas.
Para realizar estas tareas, se pueden utilizar diferentes programas. A continuación se incluyen algunos ejemplos:
BEDTools también utiliza archivos con extensión .genome para determinar los límites de cromosomas y asegurar que ciertas manipulaciones de archivos BED no se extienden más allá de los límites. Estos archivos consisten en el siguiente formato, con dos columnas separadas por tabulaciones y una fila de cabecera
Cromosoma tamaño chr1 248956422 chr2 242193529 chr3 198295559 chr4 190214555 chr5 181538259 chr6 170805979 chr7 159345973 ...