class: center, middle, inverse, title-slide .title[ # Control de Calidad en scRNA-Seq ] .author[ ### Dra. Evelia Coss
07 de agosto de 2023 ] --- # Enfoques o Ideas principales Detectar **células verdaderas y de alta calidad** ✅🍪, de modo que cuando agrupemos nuestras células sea más fácil **identificar poblaciones de tipos celulares distintos**. Identificar las **muestras fallidas** e intentar **salvar los datos o eliminarlas** del análisis, además de intentar comprender por qué falló la muestra. --- # ¿Por qué hay problemas con los datos? - Problemas con el rompimiento de las células - Fallos en la preparación de las bibliotecas (ineficiencias en la transcripción inversa, amplificacion por PCR, etc). - Más de una célula durante la secuenciación (douplets o multiplets). - Problemas en el alineamiento. --- # Preguntas Básicas Se responden durante el análisis de Single-cell RNA-Seq. - ¿Cuántos droplets traen más de una célula? (douplets 🍪🍪 o multiplets 🍪🍪🍪). - ¿Cuántas células murieron durante el proceso de secuenciacion? Cada **droplets** debe contener una **sola célula** 🍪. --- # Ejemplo del contenido <img src="data:image/png;base64,#img/quality_control.jpeg" width="80%" style="display: block; margin: auto;" /> Figura obtenida de [Single-Cell best practices](https://www.sc-best-practices.org/preprocessing_visualization/quality_control.html). --- # La mala calidad en los datos puede ser debida a varios factores Una o varias células podemos encontrar: - ⚠️ Baja cantidad de cuentas totales - ⚠️ Baja cantidad de genes expresados - ⚠️ Alta proporción de cuentas (reads) provenientes de la mitocondria - ⚠️ Alta proporción de cuentas provenientes de las secuencias control (ERCC spike-in control transcripts) Mas informacion sobre [ERCC spike-in control transcripts](https://www.agilent.com/cs/library/applications/ERCC%20Spike-in%20App%20Note%205994-1767EN_1.7.pdf). --- # Recomendaciones * Tener un correcto diseño experimental (evitar efecto *bash*). 👾 * Correcta preparación de las muestras. 🎮 * Analizar la calidad de los datos. 🍪 --- # Tipos de filtros - **Fixed thresholds:** Valores de corte fijos y estrictos (FDR < 0.5) ♠️ - **Adaptative thresholds:** Valores de cortes adaptados al comportamiento de nuestros datos.♦️ --- # Parámetros empleados para evaluar la calidad con la función `addPerCellQC` - `sum`: Número de cuentas (lecturas) totales de cada célula. - `detected`: Genes expresados con al menos una cuenta. - `altexps_ERCC_percent`: Porcentaje de cuentas mapeadas de las secuencias control (ERCC spike-in control transcripts). - `subsets_Mito_percent`: Porcentaje de cuentas mapeadas provenientes de la mitocondria. --- class: chapter-slide # Ejemplo: linea celular 416 en ratón --- # Actividades contempladas Realizaremos las siguientes actividades con este ejemplo: - Eliminar células de baja calidad. - Comparar entre los tipos de filtros (Fixed thresholds y Adaptative thresholds). - Filtrar células baja calidad - Visualización de datos crudos y filtrados --- # Contenido de los datos <img src="data:image/png;base64,#img/416Dataset.png" width="80%" style="display: block; margin: auto;" /> Línea celular de células mieloides progenitoras inmortalizadas de ratón usando [SmartSeq2](https://osca.bioconductor.org/lun-416b-cell-line-smart-seq2.html). --- # 1. Paquetes e Importar los datos en R ```r library(scRNAseq) ## para descargar datos de ejemplo library(DropletUtils) ## para detectar droplets library(Matrix) ## para leer datos en formatos comprimidos library(AnnotationHub) ## para obtener información de genes library(scater) ## para gráficas y control de calidad library(BiocFileCache) ## para descargar datos ``` Cargar los datos empleando el paquete `scRNAseq` ```r sce.416b <- LunSpikeInData(which = "416b") # Conversion a factor, evitemos mensajes de error sce.416b$block <- factor(sce.416b$block) ``` --- # Anotación de genes ```r ah <- AnnotationHub() query(ah, c("Mus musculus", "Ensembl", "v97")) # Anotacion de genes con la localizacion de cada cromosoma ens.mm.v97 <- ah[["AH73905"]] # solo un cromosoma location <- mapIds(ens.mm.v97, keys=rownames(sce.416b), keytype="GENEID", column="SEQNAME") # deteccion de genes mitocondriales is.mito <- which(location=="MT") ``` --- # Análisis de calidad con `addPerCellQC` ```r # Agregar la informacion de la calidad #por cada gen y celula en un mismo archivo # Identificar genes mitocondriales sce.416b <- addPerCellQC(sce.416b, subsets = list(Mito = is.mito) ) sce.416b ``` Podemos observar la informacion de este data frame usando `colData`: ```r # observar la informacion contenida en el dataframe colData(sce.416b) # Ver el nombre de las columnas colnames(colData(sce.416b)) ``` --- # Contenido del archivo Al imprimir la variable `sce.416b` podemos observar que es de tipo *SingleCellExperiment*. <img src="data:image/png;base64,#img/Panel1.png" width="80%" style="display: block; margin: auto;" /> Podemos ver el nombre de las columnas. <img src="data:image/png;base64,#img/Panel2.png" width="80%" style="display: block; margin: auto;" /> --- # Preguntas sobre los datos - ¿Cuántas células detectadas se encuentran en el dataframe `sce.416b`? - ¿Cuántos genes fueron analizados con almenos una cuenta? --- # Visualización de los datos crudos Genes detectados en cada uno de los bloques de secuenciación. ```r plotColData(sce.416b, x = "block", y = "detected") ``` <img src="data:image/png;base64,#img/Panel3.png" width="50%" style="display: block; margin: auto;" /> --- class: chapter-slide # Evaluando los tipos de filtros --- class: chapter-slide # Visualizacion grafica de las celulas de buena calidad --- class: chapter-slide # Visualizacion grafica de las celulas de buena calidad --- class: chapter-slide # Identificando droplets vacíos con datos de PBMC --- # Conceptos basicos <img src="data:image/png;base64,#img/Reagent_delivery_system.png" width="50%" style="display: block; margin: auto;" /> <img src="data:image/png;base64,#img/quality_control.jpeg" width="50%" style="display: block; margin: auto;" /> --- # Identificando droplets vacíos Descripción gráfica la tecnología Next GEM de 10x Genomics. Fuente: [10x Genomics](https://www.10xgenomics.com/technology). <img src="data:image/png;base64,#img/emptyDrops_Fig2.png" width="80%" style="display: block; margin: auto;" /> Opciones algorítmicas para detecar los droplets vacíos. Fuente: [Lun et al, _Genome Biology_, 2019](https://doi.org/10.1186/s13059-019-1662-y). --- .pull-left[<br><br><br><br><br><br><br> .center[ # ¡Gracias! ] ] .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ]