###### tags: `UAX` `Estudiantes` `2024-2025` <font color = 'gray'> <p style="text-align:right;">Prof.: Laura J. Marcos-Zambrano </font> # Repaso de Laboratorio: :computer: La idea es asegurarnos de que todo funciona bien y tener preparados los ordenadores de cara a la evaluación del día 13/11. Además de repasar funciones y códigos que seguramente estarán presentes en el examen. ### Manejo de R * Preparar la sesión de RStudio Trabajaremos con el dataset ["iris"](https://es.wikipedia.org/wiki/Conjunto_de_datos_flor_iris) incluido en el paquete `tidyverse`. ```r=1 #Cargar librerías library(tidyverse) #Cargar dataset iris <- iris ``` * Seleccionar y filtrar variables ```r=5 # Usando la función select para seleccionar variables select(iris, Sepal.Length, Sepal.Width) # Seleccionando por rango select(iris, Petal.Length:Sepal.Length) # Seleccionar filas # Seleccionar la especie "setosa" filter(iris, Species == 'setosa') ### Seleccionar especio Setosa o Virginica filter(iris, Species == 'setosa' | Species == 'virginica') ### Seleccionar especies setosa con longitud se sépalo menor a 5 mm filter(iris, Species == 'setosa', Sepal.Length < 5) ``` * Utilizando "pipes" para construir el código. Aquí creamos un dataframe nuevo llamado `i` filtrando todas las muestras con longitud de sépalo menor a 5 mm y seleccionamos las variables Ancho y longitud de sépalo y especie ```r=22 i <- iris %>% filter(Sepal.Length < 5) %>% select(Sepal.Width, Sepal.Length, Species) ``` * Creando una nueva variable con la función mutate. *Ejemplo:* Variable Sepal.Shape formada por la división del ancho entre la longitud del sépalo y lo guardamos en el dataframe nuevo llamado `i2` ```r=25 i2 <- iris %>% mutate(Petal.Shape = Petal.Width / Petal.Length, Sepal.Shape = Sepal.Width / Sepal.Length) %>% select(Species, Petal.Shape, Sepal.Shape) ``` * Usando funciones `Group_by` y `summarise` para calcular estadísticos por grupo ```r=29 meanlength <- iris %>% group_by(Species) %>% summarise(Mean.Petal.Length = mean(Petal.Length)) ``` * Agrupar múltiples columnas y crear nuevas variables Crear la variable Petal.Long y calcular parametros estadísticos Media, desviación, desv estandar ```r=32 iris %>% mutate(Petal.Long = Petal.Length > 5) %>% group_by(Species, Petal.Long) %>% summarise(Mean.Petal.Length = mean(Petal.Length), n.Petals = length(Petal.Length), sd.Petal.Length = sd(Petal.Length), SE.Petal.Length = sd(Petal.Length) / sqrt(length(Petal.Length))) ``` * Haciendo gráficos con GGplot ```r=39 # Graficar la relación entre longitud y ancho de sépalo ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() ### Graficar la relación entre longitud y ancho de sépalo relacionando con la especie y longitud del petalo ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, size = Petal.Length)) + geom_point() ### boxplot del ancho de sépalo por especies g <- ggplot(iris, aes(x = Species, y = Sepal.Width, fill = Species)) g + geom_boxplot() ``` Ver otras opciones de gráficas con [ggplot](https://ggplot2.tidyverse.org/reference/) [ Cheat Sheet](https://www.maths.usyd.edu.au/u/UG/SM/STAT3022/r/current/Misc/data-visualization-2.1.pdf) Ggplot. ## Practicar línea de comandos y alineamiento de secuencias :evergreen_tree: - Descarga [estas](https://drive.google.com/drive/folders/1n1s2-Bu0zrpYe0zapFBN_6PPNJyyBDht?usp=drive_link) secuencias de nucléotidos. - Júntalas todas en un sólo archivo en la línea de comandos. **CON GITBASH!!**! ```bash=1 cat albicans.fasta glabrata.fasta krusei.fasta parapsilosis.fasta xylosifermentans.fasta niger.fasta > hongos_para_alinear.fasta ``` - Haz el alineamiento múltiple de secuncias con [Clustal](https://www.ebi.ac.uk/jdispatcher/msa/clustalo?outfmt=fa). - >:memo: Nota: Si todavía tienes instalado el programa Ugene también sepuede hacer allí. ![image](https://hackmd.io/_uploads/rk9Wftggbe.png) ![image](https://hackmd.io/_uploads/ryITDYelWl.png) - Construye un árbol usando el método de NJ en R - Selecciona un outgroup adecuado para enraizar el árbol (Justificalo) Ten a mano la práctica de [filogenia](https://rpubs.com/laurichi13/1101060) ```r=1 #Cargar librerias library(ape) library(phangorn) library(phytools) hongos <- read.phyDat(file = "hongos_alineados.aln", format = "FASTA", type = "DNA") matrizdist <- as.DNAbin(hongos) matrizdist <- dist.dna(matrizdist) matrizdist arbolNJ <- nj(matrizdist) plotTree(arbolNJ) #Personalización plotTree(arbolNJ, ftype="b", fsize=0.8, offset=1, color="red", lwd=2) #Escogemos el hongo menos relacionado - en este caso Candidas son levaduras y Aspergillus hongo filamentoso arbolNJraiz <-root(arbolNJ, outgroup = "Aspergillus niger", r = TRUE) plot(arbolNJraiz) ``` ## Construir árboles filogenéticos :female-construction-worker: (Más práctica en casa) - Descarga [estas](https://drive.google.com/file/d/1RiLAq9iHntLgFr8c93DTUvIKnCXeahmo/view?usp=drive_link) secuencias de proteinas. - Haz el alineamiento múltiple de seceuncias con [Clustal](https://www.ebi.ac.uk/jdispatcher/msa/clustalo?outfmt=fa). - Construye un árbol usando el método de NJ - Selecciona un outgroup adecuado para enraizar el árbol (Justificalo) Ten a mano la práctica de [filogenia](https://rpubs.com/laurichi13/1101060)