Control de calidad en análisis de célula única: preprocesamiento de datos

Objetivos de aprendizaje

Comprender cómo importar y leer datos de secuenciación de ARN de célula única (scRNA-seq), realizar un control de calidad adecuado y preparar los datos para el aálisis posterior.

1. Preparación para el control de calidad

Tras la cuantificación de la expresión génica, es necesario importar estos datos en R para generar los insumos necesarios para el control de calidad (QC). Esta sección aborda el formato de los datos cuantificados y cómo cargarlos en R para iniciar la fase de QC del flujo de trabajo.

2. Origen del conjunto de datos

Este tutorial utiliza un conjunto de datos de scRNA-seq derivado de un estudio a gran escala publicado por Kang et al. en 2017. Los autores desarrollaron un algoritmo para determinar la identidad genética de gotas individuales (singletes) mediante variantes genéticas (eQTL) e identificar gotas que contienen dos células (dobletes).

El conjunto de prueba proviene de células mononucleares de sangre periférica (PBMC) de ocho pacientes con lupus, divididas en condiciones control y de tratamiento con interferón beta (estimulación).

  • Datos crudos: El conjunto de datos está disponible en GEO (GSE96583). Sin embargo, ya que las matrices de conteo disponibles no incluían lecturas mitocondriales, se descargaron archivos BAM desde SRA (SRP102802). Estos se convirtieron de vuelta a archivos FASTQ y se procesaron con Cell Ranger para obtener los datos de conteo utilizados.
  • Metadatos: Es fundamental recopilar información sobre el origen de los datos antes de su análisis. Los metadatos relevantes para este conjunto incluyen:
    1. Las bibliotecas se prepararon con la versión 2 de 10X Genomics.
    2. La secuenciación se realizó en Illumina NextSeq 500.
    3. Las muestras PBMC de los ocho pacientes se dividieron en dos alícuotas:
      • Una fue activada con 100 U/mL de IFN-β recombinante durante 6 horas.
      • La segunda no fue tratada.
      • Tras 6 horas, se agruparon ocho muestras de cada condición en dos pools.
    4. Se identificaron 12.138 y 12.167 células para los pools control y estimulado, respectivamente.
    5. Dado que son muestras de PBMC, se esperan tipos celulares inmunes como: células B, T, NK, monocitos, macrófagos y posiblemente megacariocitos.

Recomendación: Un conocimiento sólido de la muestra es invaluable para el diseño experimental y la interpretación de los resultados del análisis.

3. Preparación del entorno

Antes de comenzar, asegúrese de tener un entorno R configurado con los paquetes necesarios y los datos descargados en una estructura de directorios organizada.

Una estructura de directorios sugerida para el proyecto podría ser:


single_cell_analysis/
├── data/
├── results/
└── figures/

4. Carga de datos en R

Los datos de expresión cuantificados de scRNA-seq suelen constar de tres archivos por muestra: un archivo de códigos de barras (células), un archivo de características (genes) y una matriz de conteo. Estos archivos se encuentran típicamente en una carpeta como data/ctrl_raw_feature_bc_matrix.

Para cargar estos datos, la función Read10X() del paquete Seurat simplifica el proceso al leer directamente la carpeta de salida de Cell Ranger y combinar los archivos en una sola matriz dispersa. Cell Ranger produce una carpeta outs que contiene:

  • web_summary.html: Resumen de métricas de QC.
  • Archivos BAM de alineamiento.
  • filtered_feature_bc_matrix: Datos filtrados por Cell Ranger.
  • raw_feature_bc_matrix: Datos crudos sin filtrar (usualmente el punto de partida para un QC personalizado).

Para cargar una muestra individual y crear un objeto Seurat:


library(Seurat)
library(Matrix)

# Cargar los datos de conteo crudos
datos_control_cuentas <- Read10X(data.dir = "data/ctrl_raw_feature_bc_matrix")

# Crear el objeto Seurat, filtrando células con menos de 100 genes detectados
objeto_control <- CreateSeuratObject(counts = datos_control_cuentas, min.features = 100)

El parámetro min.features = 100 elimina células de baja calidad que pueden contener solo códigos de barras sin célula real.

Seurat almacena metadatos automáticamente en el slot meta.data del objeto, incluyendo:

  • orig.ident: Identificador de muestra.
  • nCount_RNA: Número total de UMI por célula.
  • nFeature_RNA: Número de genes detectados por célula.

# Inspeccionar los metadatos
head(objeto_control@meta.data)

5. Manejo de múltiples muestras

Para procesar múltiples muestras de manera eficiente, se puede utilizar un bucle. El siguiente ejemplo carga dos muestras y luego las fusiona en un único objeto Seurat para facilitar el análisis conjunto.


# Definir las carpetas de las muestras
carpetas_muestras <- c("ctrl_raw_feature_bc_matrix", "stim_raw_feature_bc_matrix")

# Bucle para cargar y crear objetos Seurat individuales
lista_objetos <- list()
for (carpeta in carpetas_muestras) {
  ruta <- paste0("data/", carpeta)
  cuentas <- Read10X(data.dir = ruta)
  objeto <- CreateSeuratObject(counts = cuentas, min.features = 100, project = carpeta)
  lista_objetos[[carpeta]] <- objeto
}

# Fusionar los objetos en uno solo, añadiendo un prefijo a los IDs de célula
objeto_fusionado <- merge(x = lista_objetos[[1]], y = lista_objetos[[2]],
                          add.cell.id = c("ctrl", "stim"))

El parámetro add.cell.id es crucial cuando se fusionan muestras, ya que garantiza que los identificadores de célula sean únicos en el conjunto de datos combinado, evitando conflictos si diferentes muestras comparten el mismo código de barras.


# Verificar los metadatos del objeto fusionado
head(objeto_fusionado@meta.data)
tail(objeto_fusionado@meta.data)

El objeto objeto_fusionado ahora está listo para las siguientes etapas de control de calidad y análisis.

Etiquetas: scRNA-seq Seurat control de calidad 10X Genomics R

Publicado el 6-2 00:56