Author: Cynthia SC (04-27-2026)
Formatos H5 vs MTX en single-cell RNA-seq
Estructura, interpretación y uso práctico en Seurat v5
Contenido
- ¿Qué son los formatos H5 y MTX?
- ¿Por qué existen distintos formatos para los mismos datos?
- Aplicación directa en Seurat v5
¿Qué son los formatos H5 y MTX?
En el análisis scRNA-seq los datos no se generan directamente como matrices listas para análisis. A partir de archivos FASTQ con herramientas como Cell Ranger, se realiza el procesamiento inicial: alineamiento, cuantificación y filtrado de células.
Este proceso generará matrices de conteos génicos (features) y códigos de barras (barcodes) sin filtrar (Unfiltered feature-barcode matrix) y filtrados (Filtered Feature-Barcode Matrix) en dos formatos de archivo, el formato MEX y el HDF5, que describimos a continuación.
¿Por qué existen distintos formatos para los mismos datos?
A primera vista, esto puede generar confusión: ¿Son datos distintos? ¿Cambian los resultados? ¿Cuál debo usar?
La respuesta corta es: NO cambia el contenido biológico, solo la forma en que están almacenados los datos.
En ambos formatos se representan el mismo contenido biológico, pero tienen estructuras distintas que impactan directamente la eficiencia del análisis y la forma en que interactuamos con los datos.
Primera idea clave: mismo dato, distinta estructura
Ambos formatos contienen exactamente la misma información:
- matriz de conteos (genes × células)
- barcodes celulares (UMIs)
- anotación de features (genes, picos, etc.)
La diferencia está en cómo se organiza la información:
| Formato | Estructura |
|---|---|
| H5 | Un solo archivo binario jerárquico que puede comprimir y acceder a los datos de forma mucho más eficiente que los formatos de texto como MEX. |
| MTX | Tres archivos de texto separados |
Estructura de los formatos
-
Formato H5 (.h5): formato de datos jerárquicos (Hierarchical Data Format)
El nivel superior del archivo contiene un único grupo HDF5, denominado matriz, y metadatos almacenados como atributos HDF5. Dentro del grupo matriz se encuentran conjuntos de datos que contienen las dimensiones de la matriz, las entradas, características y los códigos de barras de las células asociadas a las filas y columnas de la matriz, respectivamente.
(root) └── matrix [HDF5 group] ├── barcodes ├── data ├── indices ├── indptr ├── shape └── features [HDF5 group] ├─ _all_tag_keys ├─ target_sets [for Flex] │ └─ [target set name] ├─ feature_type ├─ genome ├─ id ├─ name ├─ pattern [Feature Barcode only] ├─ read [Feature Barcode only] └─ sequence [Feature Barcode only]La matriz se almacenan en formato de columna dispersa comprimida (CSC).
-
Formato MTX (.mtx + .tsv): formato de texto MEX (Market Exchange Format)
La matriz se almacena en el formato MEX (Market Exchange Format). Contiene archivos TSV comprimidos con gzip, con secuencias de características y códigos de barras que corresponden a los índices de fila y columna, respectivamente. Por ejemplo, el directorio con los archivos de salida del
cellrangertiene el siguiente aspecto:cd /cyntsc/runs/samplePBMC/outs tree filtered_feature_bc_matrix filtered_feature_bc_matrix ├── barcodes.tsv.gz ├── features.tsv.gz └── matrix.mtx.gz 0 directories, 3 filesEn features.tsv.gz se tiene a los índices de fila. Para cada característica, el ID y el nombre se almacenan en la primera y segunda columna del archivo, respectivamente. La tercera columna identifica el tipo de característica, que será Expresión genética, Captura de anticuerpos, Captura de guía CRISPR, Captura multiplexada o PERSONALIZADA, según el tipo de característica. Por ejemplo:
main ❯ gzip -cd features.tsv.gz | head ENSG00000290825 DDX11L2 Gene Expression ENSG00000243485 MIR1302-2HG Gene Expression ENSG00000237613 FAM138A Gene ExpressionLos códigos de las células estan en barcodes.tsv.gz. Por ejemplo:
❯ gzip -cd barcodes.tsv.gz | head AAACCAAAGGTGACGA-1 AAACCCTGTGACGAGT-1 AAACGAATCAGGCTAC-1En matrix.mtx.gz esta la matriz de expresión génica en formato disperso (sparse) basado en coordenadas. La idea central es guardar únicamente los valores distintos de cero, ya que en scRNA-seq la mayoría de genes NO se detectan en la mayoría de células. Por ejemplo:
❯ gzip -cd matrix.mtx.gz | head %%MatrixMarket matrix coordinate integer general %metadata_json: {"software_version": "cellranger-9.0.0", "format_version": 2} 38606 5710 19262779 9 1 1 19 1 3 22 1 1En la primera fila estan los metadatos agregados por
cellranger, la siguiente fila contiene las dimensiones de la matriz (38606 X 5710), pero solo almacenó 19,262,779 entradas NO vacías. Por lo tanto, las filas representan:fila columna valorAnálogo a:
gen célula conteo
Segunda idea clave: eficiencia vs transparencia
Ahora que ya conoces las estructuras de ambos formatos, podemos concluir de la siguiente manera.
H5 (HDF5)
- Archivo único
- Lectura rápida
- Menor tamaño
- Ideal para pipelines
Pensado para eficiencia computacional
MTX (Matrix Market)
- Compuesto de tres archivos
- Formato legible
- Fácil de inspeccionar
Pensado para transparencia y entendimiento
Más brevemente:
- H5 optimiza el análisis
- MTX facilita el aprendizaje
Aplicación directa en Seurat v5
¿Y como se ve esto en un flujo de análisis single-cell? Veamos un ejemplo con Seurat v5.
Cargar datos desde H5: un solo archivo contiene todo lo necesario
library(Seurat)
data <- Read10X_h5("filtered_feature_bc_matrix.h5")
seurat_obj <- CreateSeuratObject(counts = data)
seurat_obj
Salida:
An object of class Seurat
38606 features across 5710 samples within 1 assay
Active assay: RNA (38606 features, 0 variable features)
1 layer present: counts
Cargar datos desde MTX: es un directorio con 3 archivos
library(Seurat)
data <- Read10X(data.dir = "filtered_feature_bc_matrix/")
seurat_obj <- CreateSeuratObject(counts = data)
Salida:
An object of class Seurat
38606 features across 5710 samples within 1 assay
Active assay: RNA (38606 features, 0 variable features)
1 layer present: counts
Como puedes observar los objetos de clase Seurat que se crean son idénticos, aunque la estructura de datos de entrada es diferente.
Mientras .h5 tiene la ventaja de ser un solo archivo de lectura más rápida, .mtx es un directorio de archivos, como recibir un rompecabezas con tres bolsas, conteniendo piezas, instrucciones y etiquetas, para luego ensamblarlas.
El formato no cambia la biología, pero sí la experiencia de análisis. Aunque ambos formatos representan lo mismo, la forma en que interactuamos con los datos cambia nuestra comprensión del dato, generalmente con MTX entendemos la estructura y con H5 nos enfocamos en el análisis.
OJO. Ni el formato HDF5 ni el formato MEX/MTX son exclusivos de 10x Genomics/Cell Ranger. Ambos son formatos relativamente estándar utilizados en bioinformática y análisis de datos dispersos (sparse matrices).
Algo que sí puede ser específico de Cell Ranger, es la estructura del directorio filtered_feature_bc_matrix organizado en 3 archivos, una convención específica popularizada por 10x y hoy casi un “estándar de facto” en single-cell.
MEX = Matrix Exchange format, es un formato estándar definido por NIST Matrix Market para almacenar matrices dispersas, que es ampliamente utilizado por muchísimas herramientas (Scanpy, STARsolo, kallisto, Alevin, SciPy, Bioconductor).
Y, HDF5 = Hierarchical Data Format version 5, es un estándar científico general, muy utilizado en astronomía, física, machine learning, imágenes, y ahora también en genómica y single-cell. Herramientas y ecosistemas enormes lo usan (AnnData, loompy, Seurat, TensorFlow, PyTorch)
Una diferencia clave en HDF5, es qué su uso no es universal, ya que es como un contenedor, donde cada herramienta decide como organizar los grupos, datasets, nombres internos y metadatos. Por eso .mtx es casi un formato universal, mientras .h5 depende de la estructura interna. Esto explica por qué hoy existe tanta interoperabilidad entre herramientas single-cell.
Cynthia SC
Recursos de consulta
- Feature-Barcode Matrices from Cell Ranger Pipelines
- Feature Barcode Matrices
- Load in data from 10X
- Cell Ranger – Outputs Overview
© 2026 El Arkhe MultiOmics · México