# Formato BED

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 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.
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.

## Historia

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, GFF y BED. 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.

## Formato

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.
Las especificaciones formales del formato BED se publicaron en 2021, bajo la garantía de la Global Alliance for Genomics and Health.

### Descripción

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. 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.
Columns of BED files :
| 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 |

### Línea de cabecera

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,dependiendo de su función o puede ser simplemente descriptiva. Así, esta puede empezar con estas palabras o símbolos:
* "browser": encabezado funcional utilizado por el UCSC Genome Browser para configurar opciones asociadas con este.
* "track": título funcional usado por navegadores genómicos para especificar las opciones de visualización asociadas.
* "#": título descriptivo para añadir comentarios, tales como el nombre de cada columna

### Sistema de coordenadas

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. 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:
se convertiría a las siguientes coordenadas del genoma humano basadas en 1, tal como las utiliza un explorador de genoma como UCSC:
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) ($x_{end}-x_{start}$) . Cuando el sistema de coordenadas está basado en 1 para la primera posición, el cálculo es ligeramente más complejo: $x_{end}-x_{start}+1$ . 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.

### Ejemplos

Este es un ejemplo mínimo:
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.

## Extensión de archivo

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".

## Uso

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:
* Navegadores genómicos: Permiten la visualización y extracción de secuencias de genomas secuenciados actualmente a partir de archivos BED (ej.:, la función Manage Custom Tracks en el UCSC Genome Browser)
* Galaxy: plataforma online.
* Herramientas de línea de comandos:
** BEDTools: programa que permite la manipulación de conjuntos de coordenadas genómicas y la extracción de secuencias a partir de un archivo BED.
** BEDOPS: conjunto de herramientas para operaciones rápidas booleanas en archivos BED.
** BedTk: una alternativa más rápida que BEDTools para tareas más limitadas y especializadas.
** covtobed: una herramienta para transformar archivos en formato BAM a archivos BED de cobertura.

## Archivos .genome

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