Correr la paqueteria Instalación de paquetes #Pacman: llama a otros paquetes y si no estan los instala
if(!require(pacman))
install.packages("pacman")
## Loading required package: pacman
Llamar a pacman
library("pacman")
Llamar paqueterĆa necesaria
p_load("vroom",
"dplyr",
"ggplot2",
"tidyr",
"ggrepel",
"plotly")
Llamar a base de datos
Melting_curves <- vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Disociaci%C3%B3n_G1.csv")
## Rows: 61 Columns: 7
## āā Column specification āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
## Delimiter: ","
## dbl (7): Temperature, A1, A2, A3, A4, A5, A6
##
## ā¹ 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 A2 A3 A4 A5 A6
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 2218. 2595. 2715. 2378. 2813. 2877.
## 2 65.5 2219. 2592. 2710. 2380. 2810. 2871.
## 3 66 2219. 2588. 2705. 2383. 2806. 2865.
## 4 66.5 2219. 2585. 2699. 2385. 2803. 2859.
## 5 67 2219. 2582. 2694. 2388. 2800. 2853.
## 6 67.5 2219. 2578. 2689. 2390. 2796. 2847.
## 7 68 2219. 2575. 2684. 2393. 2793. 2841.
## 8 68.5 2219. 2571. 2678. 2394. 2790. 2834.
## 9 69 2219. 2567. 2673. 2393. 2786. 2826.
## 10 69.5 2219. 2562. 2667. 2390. 2782. 2818.
## # ā¹ 51 more rows
Modificar la base de datos
Melting_curves2 <- Melting_curves %>%
mutate(Temperatura = Temperature,
KAM = A1,
Muestra2 = A2,
Muestra3 = A3,
Muestra4 = A4,
Muestra5 = A5,
Muestra6 = A6) %>%
select(-Temperature:-A6)
Melting_curves2
## # A tibble: 61 Ć 7
## Temperatura KAM Muestra2 Muestra3 Muestra4 Muestra5 Muestra6
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 2218. 2595. 2715. 2378. 2813. 2877.
## 2 65.5 2219. 2592. 2710. 2380. 2810. 2871.
## 3 66 2219. 2588. 2705. 2383. 2806. 2865.
## 4 66.5 2219. 2585. 2699. 2385. 2803. 2859.
## 5 67 2219. 2582. 2694. 2388. 2800. 2853.
## 6 67.5 2219. 2578. 2689. 2390. 2796. 2847.
## 7 68 2219. 2575. 2684. 2393. 2793. 2841.
## 8 68.5 2219. 2571. 2678. 2394. 2790. 2834.
## 9 69 2219. 2567. 2673. 2393. 2786. 2826.
## 10 69.5 2219. 2562. 2667. 2390. 2782. 2818.
## # ā¹ 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 KAM 2218.
## 2 65 Muestra2 2595.
## 3 65 Muestra3 2715.
## 4 65 Muestra4 2378.
## 5 65 Muestra5 2813.
## 6 65 Muestra6 2877.
## 7 65.5 KAM 2219.
## 8 65.5 Muestra2 2592.
## 9 65.5 Muestra3 2710.
## 10 65.5 Muestra4 2380.
## # ā¹ 356 more rows
GrƔfica
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 = "Equipo: KAM",
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")) +
scale_x_continuous(breaks = seq(min(Melting_curves3$Temperatura),
max(Melting_curves3$Temperatura),
by = 2.5))
## 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 per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafica_melting
Derivadas de las curvas de disociación *sĆmbolo llamado virgulilla (~)
Derivadas <- Melting_curves2 %>%
mutate(across(KAM:Muestra6,
~ -c(NA, diff(.x)/diff(Melting_curves2$Temperatura)),
.names = "d_{.col}")) %>%
select(-KAM:-Muestra6) %>%
slice(-1)
Derivadas
## # A tibble: 60 Ć 7
## Temperatura d_KAM d_Muestra2 d_Muestra3 d_Muestra4 d_Muestra5 d_Muestra6
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65.5 -0.207 6.72 10.5 -5.04 6.52 11.9
## 2 66 -0.207 6.72 10.5 -5.04 6.52 11.9
## 3 66.5 -0.207 6.72 10.5 -5.04 6.52 11.9
## 4 67 -0.207 6.72 10.5 -5.04 6.52 11.9
## 5 67.5 -0.207 6.72 10.5 -5.04 6.52 11.9
## 6 68 -0.207 6.72 10.5 -5.04 6.52 11.9
## 7 68.5 -0.250 7.86 10.6 -2.19 7.17 14.5
## 8 69 -0.103 8.61 10.9 0.998 7.15 15.8
## 9 69.5 0.404 9.26 11.7 6.50 8.22 16.2
## 10 70 0.767 10.00 11.8 11.6 9.05 16.3
## # ā¹ 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_KAM -0.207
## 2 65.5 d_Muestra2 6.72
## 3 65.5 d_Muestra3 10.5
## 4 65.5 d_Muestra4 -5.04
## 5 65.5 d_Muestra5 6.52
## 6 65.5 d_Muestra6 11.9
## 7 66 d_KAM -0.207
## 8 66 d_Muestra2 6.72
## 9 66 d_Muestra3 10.5
## 10 66 d_Muestra4 -5.04
## # ā¹ 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 la derivada de disociación",
subtitle = "Todas las muestras",
caption = "Equipo: KAM",
x = "Temperatura (ĀŗC)",
y = expression(-Delta~F / Delta~T)) +
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 grƔfica 3D
# GrƔfica 3D de las derivadas
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 derivada en 3D",
scene = list(
xaxis = list(title = "Temperatura (ĀŗC)"),
yaxis = list(title = "Muestras"),
zaxis = list(title = "-ĪF/ĪT")
))
Grafica_derivada_3D
GrƔfica del equipo
# GrƔfica derivada para KAM y Muestra3
Grafica_derivada_equipo <- ggplot(Derivadas,
aes(x = Temperatura)) +
geom_line(aes(y = d_KAM, color = "d_KAM"), linewidth = 1.5) +
geom_line(aes(y = d_Muestra3, color = "d_Muestra3"), linewidth = 1.5) +
scale_color_manual(values = c("d_KAM" = "#1e2f7c", "d_Muestra3" = "#900C3F")) +
theme_classic() +
labs(title = "Derivada de Disociación",
subtitle = "Comparación: KAM vs Muestra3",
caption = "Equipo: KAM",
x = "Temperatura (ĀŗC)",
y = expression(-Delta~F / Delta~T)) +
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_Muestra3, na.rm = TRUE)
Pico
## [1] 94.93191
Temperatura
Tm <- Derivadas %>%
filter(d_Muestra3 == Pico) %>%
select(Temperatura, d_Muestra3)
Tm
## # A tibble: 1 Ć 2
## Temperatura d_Muestra3
## <dbl> <dbl>
## 1 82.5 94.9
GrƔfica con etiqueta
Grafica_derivada_equipo2 <- Grafica_derivada_equipo +
geom_vline(xintercept = Tm$Temperatura,
color = "#FF5733",
linetype = "dashed",
linewidth = 1) +
geom_label_repel(data = Tm,
aes(x = Temperatura,
y = d_Muestra3,
label = paste("Tm =", round(Temperatura, 1), "ĀŗC")),
nudge_x = 4,
nudge_y = -0.03,
max.overlaps = 100,
color = "black",
fill = "#9eaffa")
Grafica_derivada_equipo2