###### 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í.


- 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)