martes, 6 de enero de 2015

BEDTools

BEDTools es un conjunto de herramientas muy útiles para todos aquellos que trabajen con datos genómicos, es decir, archivos que contengan posiciones o incluso secuencias de genes, tránscritos, exones, utrs, etc. La principal ventaja que tienen es su gran rapidez a la hora de procesar grandes cantidades de información. Los requerimientos computacionales de dichas herramientas en comparación con programas escritos en diferentes lenguajes como Python , Awk o Bash es realmente inferior.

Sin embargo, para poder utilizar estas herramientas, es necesario que los archivos de trabajo estén en el formato BED. Este formato es bastante sencillo, debe poseer como mínimo tres columnas para cada elemento/línea y cada columna debe estar separada de la anterior por un tabulador:
  • 1: El cromosoma en el que se sitúa el elemento.
  • 2: La posición o nucleótido de inicio.
  • 3: La posición o nucleótido en el que acaba el elemento.

Es posible utilizar más columnas con diferentes contenidos o información, algunos de ellos son:

  • 4: Nombre del elemento.
  • 5: Puntuación: Número entre 0 y 1000 que se usa para representar el elemento con diferentes herramientas de visualización con colores o escalas de grises.
  • 6: Cadena en la que se sitúa el elemento: Puede ser “+” o “-”.

Un ejemplo de dicho formato es:

chr1 100000 500000 gen1 50 +
chr5 2380000 2386000 exon3 60 -



Una vez tenemos el archivo en formato BED, podremos comenzar a usar las diferentes herramientas disponibles en este paquete. Una de las más usadas es “merge”, el cual tiene varias opciones y parámetros, sin embargo el comportamiento básico es unir elementos que se solapan. Tiene como requisito que los elementos estén ordenados por la primera columna (cromosoma) y luego por la segunda columna (posición de inicio). A continuación veremos un caso representando su utilidad.

Supongamos que tenemos el siguiente archivo en formato BED:

chr1 40000 50000 gen3 10 + 
chr1 100000 500000 gen1 50 + 
chr1 300000 700000 gen4 40 + 
chr1 400000 400500 gen2 56 +

Una representación gráfica de estos elementos sería:



De modo que todos los elementos que solapen entre sí serán unidos por el programa “merge” en uno solo. Si aplicamos el siguiente comando:

mergeBed -i archivo.bed

El resultado sería el siguiente:

chr1 40000 50000
chr1 100000 700000

Y su representación gráfica sería la siguiente:



A continuación un procedimiento alternativo al estandard para instalar BEDTools en linux ubuntu que evita algunos problemas de instalación:

  • Seleccionar la versión que deseada en el siguiente enlace (en este caso usaré la versión 2.19.1): https://github.com/arq5x/bedtools2/releases
  • Descargar el archivo “Source code (tar.gz)”.
  • Aplicar los siguientes comandos en la carpeta donde se descargó el archivo:
    sudo tar -zxvf bedtools2-2.19.1.tar.gz
    cd bedtools2-2.19.1
    sudo apt-get install build-essential g++
    apt-get install zlib1g-dev
    sudo make
    sudo cp bin/* /usr/local/bin/

Para mayor información ver los siguientes enlaces: