Correr la paquetería
Intalación de paquetes
Pacman: llama a otros paquetes y si no están los instala
if(!require(pacman))
install.packages("pacman")
## Cargando paquete requerido: pacman
## Warning: package 'pacman' was built under R version 4.4.3
Llamar a pacman
library("pacman")
Llamar paqueteria necesaria
p_load("vroom",
"dplyr",
"ggplot2",
"tidyr",
"ggrepel",
"plotly")
Llamar a la base de datos
Melting_curves <- vroom(file= "https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Disociaci%C3%B3n_Grupo2_17022025.csv")
## Rows: 61 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (7): Temperature, A1, B1, C1, D1, E1, H1
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Melting_curves
## # A tibble: 61 × 7
## Temperature A1 B1 C1 D1 E1 H1
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 7448. 6822. 8564. 7347. 5628. 6126.
## 2 65.5 7418. 6860. 8557. 7266. 5599. 6067.
## 3 66 7388. 6897. 8550. 7185. 5570. 6008.
## 4 66.5 7358. 6934. 8543. 7104. 5541. 5949.
## 5 67 7328. 6971. 8536. 7022. 5513. 5890.
## 6 67.5 7298. 7009. 8529. 6941. 5484. 5831.
## 7 68 7268. 7046. 8522. 6860. 5455. 5772.
## 8 68.5 7222. 7072. 8499. 6769. 5418. 5707.
## 9 69 7161. 7083. 8458. 6673. 5377. 5639.
## 10 69.5 7089. 7075. 8399. 6574. 5332. 5568.
## # ℹ 51 more rows
Modificar Base de datos
Melting_curves2 <- Melting_curves %>% #Ctrl/Cmnd+Shift+M
mutate(Temperatura = Temperature, Manuel = A1, Regina = B1, Marian = C1, Ricardo = D1, Neto = E1, Johan = H1) %>%
select(-Temperature:-H1)
Melting_curves2
## # A tibble: 61 × 7
## Temperatura Manuel Regina Marian Ricardo Neto Johan
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 7448. 6822. 8564. 7347. 5628. 6126.
## 2 65.5 7418. 6860. 8557. 7266. 5599. 6067.
## 3 66 7388. 6897. 8550. 7185. 5570. 6008.
## 4 66.5 7358. 6934. 8543. 7104. 5541. 5949.
## 5 67 7328. 6971. 8536. 7022. 5513. 5890.
## 6 67.5 7298. 7009. 8529. 6941. 5484. 5831.
## 7 68 7268. 7046. 8522. 6860. 5455. 5772.
## 8 68.5 7222. 7072. 8499. 6769. 5418. 5707.
## 9 69 7161. 7083. 8458. 6673. 5377. 5639.
## 10 69.5 7089. 7075. 8399. 6574. 5332. 5568.
## # ℹ 51 more rows
Agrupación de datos
Melting_curves3 <- Melting_curves2 %>%
pivot_longer(cols = -Temperatura,
names_to = "Muestras",
values_to = "Fluorescencias")
Melting_curves3
## # A tibble: 366 × 3
## Temperatura Muestras Fluorescencias
## <dbl> <chr> <dbl>
## 1 65 Manuel 7448.
## 2 65 Regina 6822.
## 3 65 Marian 8564.
## 4 65 Ricardo 7347.
## 5 65 Neto 5628.
## 6 65 Johan 6126.
## 7 65.5 Manuel 7418.
## 8 65.5 Regina 6860.
## 9 65.5 Marian 8557.
## 10 65.5 Ricardo 7266.
## # ℹ 356 more rows
Grafica
Grafica_melting <- ggplot(Melting_curves3,
aes(x = Temperatura,
y= Fluorescencias,
color= Muestras)) +
geom_line(linewidth = 1.5)+
theme_classic()+
labs(title = "Curvas de disociación",
subtitle = "Todas las muestras",
caption = "Diseño: Johan Medina",
x = "Temperatura (°C)",
y= "Fluorescencia (u.a)")+
theme(axis.line = element_line (size = 1.2, color = "black"),
axis.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
legend.text = element_text(face = "bold"))
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafica_melting
Derivadas de las curvas de disociación
Derivadas <- Melting_curves2 %>%
mutate(across(Manuel:Johan,
~ -c(NA, diff(.x)/diff(Melting_curves2$Temperatura)),.names = "d_{.col}"
)) %>%
select(-Manuel:-Johan) %>%
slice(-1)
Derivadas
## # A tibble: 60 × 7
## Temperatura d_Manuel d_Regina d_Marian d_Ricardo d_Neto d_Johan
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65.5 59.8 -74.6 14.2 162. 57.6 118.
## 2 66 59.8 -74.6 14.2 162. 57.6 118.
## 3 66.5 59.8 -74.6 14.2 162. 57.6 118.
## 4 67 59.8 -74.6 14.2 162. 57.6 118.
## 5 67.5 59.8 -74.6 14.2 162. 57.6 118.
## 6 68 59.8 -74.6 14.2 162. 57.6 118.
## 7 68.5 93.3 -51.9 46.4 182. 73.5 129.
## 8 69 121. -21.5 81.9 192. 83.0 136.
## 9 69.5 144. 15.6 117. 198. 90.1 141.
## 10 70 160. 54.4 149. 199. 96.6 142.
## # ℹ 50 more rows
Reordenar los datos
Derivadas2 <- Derivadas %>%
pivot_longer(cols = -Temperatura,
names_to = "Muestras",
values_to = "Derivadas")
Derivadas2
## # A tibble: 360 × 3
## Temperatura Muestras Derivadas
## <dbl> <chr> <dbl>
## 1 65.5 d_Manuel 59.8
## 2 65.5 d_Regina -74.6
## 3 65.5 d_Marian 14.2
## 4 65.5 d_Ricardo 162.
## 5 65.5 d_Neto 57.6
## 6 65.5 d_Johan 118.
## 7 66 d_Manuel 59.8
## 8 66 d_Regina -74.6
## 9 66 d_Marian 14.2
## 10 66 d_Ricardo 162.
## # ℹ 350 more rows
Gráficas Derivadas
Grafica_derivada <- ggplot(Derivadas2,
aes(x = Temperatura,
y = Derivadas,
color= Muestras))+
geom_line(linewidth = 1.5)+
theme_classic()+
labs(title = "Curvas de disociación",
subtitle = "Todas las muestras",
caption = "Diseño: Johan Medina",
x = "Temperatura (°C)",
y= expression (-frac(dT, dF)))+
theme(axis.line = element_line (size = 1.2, color = "black"),
axis.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
legend.text = element_text(face = "bold"))+
scale_x_continuous(breaks = seq(min(Derivadas2$Temperatura),max(Derivadas2$Temperatura),
by= 2.5))
Grafica_derivada
Construir una grafica 3D
Grafica_derivada_3D <- plot_ly(Derivadas2,
x= ~Temperatura,
y= ~Muestras,
z= ~Derivadas,
color= ~factor(Muestras),
type= "scatter3d",
mode = "lines",
line = list(width = 6)) %>%
layout (title = "Curvas de Disociación 3D",
scene = list(
xaxis = list(title= "Temperatura (°C)"),
yaxis= list(title = "Muestras"),
zaxis= list(title= "-dT/dF")
))
Grafica_derivada_3D
Grafica del equipo
Grafica_derivada_equipo <- ggplot(Derivadas,
aes(x = Temperatura))+
geom_line(aes(y = d_Johan, color = "d_Johan"), linewidth = 1.5) +
geom_line(aes(y = d_Manuel, color = "d_Manuel"), linewidth = 1.5) +
scale_color_manual(values = c("d_Johan" = "#f03d04", "d_Manuel" = "#074fff")) +
theme_classic()+
labs (title = "Derivada de Disociación",
subtitle= "Tejido: Bazo",
caption = "Diseño: Johan Medina",
x= "Temperatura",
y= expression (-frac(dT, dF)))+
theme(axis.line = element_line (size = 1.2, color = "black"),
axis.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
legend.text = element_text(face = "bold"))+
scale_x_continuous(breaks = seq(min(Derivadas2$Temperatura),max(Derivadas2$Temperatura),
by= 2.5))
Grafica_derivada_equipo
Etiquetas
Pico <- max(Derivadas$d_Manuel)
Pico
## [1] 320.71
Temperatura
Tm <- Derivadas %>%
filter(d_Manuel==Pico)%>%
select(Temperatura, d_Johan)
Tm
## # A tibble: 1 × 2
## Temperatura d_Johan
## <dbl> <dbl>
## 1 82.5 107.
Grafica con Etiqueta
Grafica_derivada_equipo2 <- Grafica_derivada_equipo+
geom_vline(xintercept = Tm$Temperatura, color = "#9eaffa",
linetype = "dashed",
linewidth = 1)+
geom_label_repel(data = Tm,
aes(x = Temperatura,
y = d_Johan,
label = paste ("Tm =", round(Temperatura), "°C")),
nudge_x = 4,
nudge_y = -0.03,
max.overlaps = 100,
color = "black",
fill = "#9eaffa")
Grafica_derivada_equipo2