En esta sesión seguiremos trabajando con Biostrings. En esta ocasión trabajaremos con datos de un experimento en que se definieron los genes cuya expresión se ve reprimida por un microRNA. Usaremos solamente las secuencias no-traducidas asociadas a estos genes (llamadas UTRs por el inglés Un-Translated Regions) para ver si podemos, mediante descubrimiento de patrones, inferir la secuencia exacta del microRNA que está actuando.
Se necesita lo siguiente para realizar esta práctica
| R | Instalado |
| Bioconductor | Instalado |
| Biostrings (paquete de BioC) | Instalado |
| Todas las secuencias UTR del genoma del ratón | all_utrs.zip |
| Secuencias UTR de los genes reprimidos por el microRNA | repressed_utrs.zip |
Para descargar los archivos de las secuencias, conviene dar click con botón derecho y elegir "guardar liga como". Conviene guardar los archivos en la misma carpeta donde están trabajando con R. Va a ser necesario descomprimir los archivos .zip, generalmente basta con tratar de abrirlos en windows.
Para esta práctica vamos a definir simplemente una serie de pasos a seguir, y trataremos de ir escribiendo el código necesario directamente como un programa (R script) dentro de RStudio.
Un programa de R va a ser un archivo de texto con todo el código que queremos ejecutar. Esto nos permite volver a ejecutar todas las instrucciones cuando queramos, en la misma u otra computadora. También permite hacer modificaciones puntuales más fácilmente y ver el efecto sobre los resultados.
Entonces, vamos a abrir un nuevo archivo (R script) dentro de RStudio. Nuestro programa debe hacer lo siguiente:
- Cargar el paquete Biostrings (library)
- Leer los dos archivos de secuencias (readDNAStringSet)
- Como sabemos que los microRNAs utilizan palabras de 6 nucleótidos para pegarse a su secuencia blanco, vamos a contar las veces que aparecen cada una de las palabras posibles de longitud 6 en todas las secuencias (oligonucleotideFrequency).
- Como queremos comparar en conjunto, todas las secuencias reprimidas contra todas las del genoma, en realidad no nos sirven las cuentas para cada secuencia individual. Debemos sumar las cuentas para tener un gran total por cada palabra posible de longitud 6 (colSums).
- En este momento conviene explorar visualmente los resultados. Grafiquemos las ocurrencias de cada palabra en las secuencias reprimidas vs las del genoma completo (plot). Dado que tienen totales muy diferentes conviene graficar la frecuencia en lugar de las ocurrencias. Ven algo sobresaliente?
- Para darnos una idea de qué tan relevante es el resultado anterior, podemos hacer un control. Extraigan un conjunto aleatorio de secuencias del genoma, de igual número a las reprimidas, y repitan los pasos anteriores (sample).
- Visualmente es difícil cuantificar un resultado. Por ello nos conviene usar un método estadístico para decidir cuál o cuáles palabras se encuentran significativamente sobre-representadas en las secuencias reprimidas. Podemos calcular una probabilidad hipergeométrica (phyper).
- Para completar el programa, podemos calcular las probabilidades hipergeométricas para todas las palabras de longitud 6 y representar el resultado en una gráfica de barras (barplot). Dado que los p-valores que nos interesan son muy chicos, podemos sacarles el logaritmo para visualizarlos mejor (-log10(p)). Podemos hacer lo mismo para nuestras secuencias control y comparar.