Formato CRAM

gen de la especie Mus musculus From Wikipedia, the free encyclopedia

El formato CRAM (siglas del inglés, Compressed Reference-oriented Alignment Map) es un formato de archivo comprimido, basado en columnas, para almacenamiento de secuencias biológicas alineadas con una secuencia de referencia. Fue concebido inicialmente por Markus Hsi-Yang Fritz y colaboradores.[1]

Datos rápidos CRAM, Desarrollador ...
CRAM
Desarrollador
Markus Hsi-Yang Fritz et al
Vadim Zalunin
James Bonfield
www.ga4gh.org/cram/, www.ebi.ac.uk/ena/software/cram-toolkit
Información general
Extensión de archivo .cram
Tipo de formato Bioinformática
Formato abierto No 
Cerrar

CRAM se diseñó para ser una alternativa eficiente a los formatos SAM (del inglés, Sequence Alignment Map) y BAM (del inglés, Binary Alignment Map). Opcionalmente, utiliza un genoma de referencia para describir las diferencias entre los fragmentos de secuencia alineados y la secuencia de referencia, reduciendo los costes de almacenamiento. Adicionalmente, cada columna en el formato SAM está separada en sus propios bloques, mejorando la relación de compresión. Los archivos CRAM varían típicamente en tamaño de un 30 a un 60% más pequeños que los BAM, dependiendo de los datos que contengan.

Existen implementaciones de CRAM en htsjdk,[2] htslib,[3] JBrowse,[4] y Scramble.[5]

La Global Alliance for Genomics and Health (GA4GH)[6] mantiene las especificaciones del formato, siendo accesible desde la página web de EMBL-EBI.[7]

Formato de archivo

La estructura básica de un archivo CRAM es una serie de contenedores; el primero contiene una copia comprimida de la línea de cabecera en formato SAM; los siguientes contenedores consisten en otra línea de cabecera de los datos comprimidos, seguida de registros de alineamientos, formateados como una serie de bloques.

Archivo CRAM:

Número mágico Contenedor

(Línea de cabecera de SAM )

Contenedor

(Datos)

... Contenedor

(Datos)

Contenedor

(EOF)

Contenedor:

Línea de cabecera

del contenedor

Cabecera

de compresión

Porción ... Porción

Porción:

Cabecera de la porción Bloque Bloque ... Bloque

Los archivos CRAM recogen registros de un conjunto de datos, describiendo los componentes de un alineamiento. La cabecera de compresión específica qué datos están codificados en cuales bloques, qué codificador se utiliza y metadatos específicos del codificador (por ejemplo, una tabla de longitudes de códigos Huffman). La mezcla de diferentes conjuntos de datos en un mismo bloque es posible, aunque su separación mejora normalmente la compresión y ofrece la oportunidad para decodificar selectiva e eficientemente los bloques con los datos necesarios.

El acceso selectivo a un archivo en formato CRAM está garantizado mediante el índice (con el sufijo ".crai"). Los índices indican, en datos ordenados por coordenadas genómicas, cuales regiones están cubiertas por cuales porciones. En datos no ordenados, los índices pueden utilizarse para simplemente buscar un contenedor concreto. La decodificación selectiva también puede obtenerse utilizando la cabecera de compresión para pasar sobre conjuntos de datos específicos, si se necesitas registros parciales.

Historia

Más información Año, Versión ...
Año Versión Notas
2010-11 pre-CRAM Publicación original que describe la referencia en la que se basa el formato. Entonces, no se llamaba CRAM, sino mzip. Este software se implementó en python como prototipo y demostración de los conceptos básicos.[1]
2011-12 0.3–0.86 Vadim Zalunin, del Instituto Europeo de Bioinformática (EBI) creó la primera implementación llamada CRAM como un paquete de software llamado CRAMtools,[8] escrito en el lenguaje de programación java.
2012 1.0[9] Implementación en java CRAMtools.[10]
2013 Implementación en C añadida a la herramienta Scramble,[11][5]creada por James Bonfield, del Instituto Sanger.
2013 2.0 Se incluyó soporte para más de una secuencia de referencia por porción (útil para ensamblajes muy fragmentados); mejor codificación de marcas auxiliares de formato SAM; metadatos para rastreo del número de registros y bases por porción; y correcciones para marcas de formato BAM.
2013 Añadido a htslib (0.2.0).
2014 2.1[12] Añadido a bloques EOF para ayudar a identificar archivos truncados.
2014 Añadido a htsjdk (1.127).
2014 3.0[13] Inclusión del algoritmo lzma y el codificador rANS para la compresión de bloques, así como múltiples controles para asegurar la integridad de los datos.
2018 Implementación en JavaScript como parte de JBrowse[4] (1.15.0), creada por Rob Buels.
2021 Implementación enn Noodles
2023 3.1[14] Adoptado oficialmente (Borrador de 2019)
Cerrar

La versión 4.0 de CRAM existe como prototipo en Scramble,[5] demostrado inicialmente en 2015, aunque aún no se ha adoptado como estándar.[cita requerida]

Véase también

Referencias

Related Articles

Wikiwand AI