if(! require(pacman))
install.packages("pacman")
## Loading required package: pacman
library("pacman")
p_load("vroom",
"dplyr",
"ggplot2",
"tidyr",
"ggrepel",
"plotly")
Melting_curves <- vroom(file="https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Disociaci%C3%B3n_Grupo1_17022024.csv")
## Rows: 61 Columns: 7
## āā Column specification āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
## Delimiter: ","
## dbl (7): Temperature, A1, B1, C1, D1, E1, F1
##
## ā¹ 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 F1
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 7376. 3875. 9643. 3732. 4066. 7145.
## 2 65.5 7371. 3870. 9602. 3729. 4057. 7068.
## 3 66 7366. 3865. 9561. 3727. 4048. 6991.
## 4 66.5 7360. 3859. 9520. 3725. 4039. 6914.
## 5 67 7355. 3854. 9478. 3723. 4030. 6837.
## 6 67.5 7350. 3849. 9437. 3721. 4021. 6760.
## 7 68 7345. 3843. 9396. 3719. 4013. 6682.
## 8 68.5 7321. 3836. 9332. 3715. 4002. 6595.
## 9 69 7280. 3826. 9246. 3711. 3990. 6503.
## 10 69.5 7224. 3816. 9145. 3705. 3977. 6408.
## # ā¹ 51 more rows
Modificar la base de datos
Melting_curves2 <- Melting_curves %>%
mutate(Temperatura = Temperature,
PPBA = A1,
ZARX = B1,
FSFS = C1,
LANS = D1,
Negativo = E1,
D2MI = F1,) %>%
select(-Temperature:-F1) %>%
filter(Temperatura>=6)
Melting_curves2
## # A tibble: 61 Ć 7
## Temperatura PPBA ZARX FSFS LANS Negativo D2MI
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65 7376. 3875. 9643. 3732. 4066. 7145.
## 2 65.5 7371. 3870. 9602. 3729. 4057. 7068.
## 3 66 7366. 3865. 9561. 3727. 4048. 6991.
## 4 66.5 7360. 3859. 9520. 3725. 4039. 6914.
## 5 67 7355. 3854. 9478. 3723. 4030. 6837.
## 6 67.5 7350. 3849. 9437. 3721. 4021. 6760.
## 7 68 7345. 3843. 9396. 3719. 4013. 6682.
## 8 68.5 7321. 3836. 9332. 3715. 4002. 6595.
## 9 69 7280. 3826. 9246. 3711. 3990. 6503.
## 10 69.5 7224. 3816. 9145. 3705. 3977. 6408.
## # ā¹ 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 PPBA 7376.
## 2 65 ZARX 3875.
## 3 65 FSFS 9643.
## 4 65 LANS 3732.
## 5 65 Negativo 4066.
## 6 65 D2MI 7145.
## 7 65.5 PPBA 7371.
## 8 65.5 ZARX 3870.
## 9 65.5 FSFS 9602.
## 10 65.5 LANS 3729.
## # ā¹ 356 more rows
GrƔfica
GrƔfica_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: Deni Uribe",
x = "Temperatura (°C)",
y = "Fluorescencias (u.a.)")+
theme(axis.line = element_line(size = 1.5, 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.
GrƔfica_melting
Derivadas de las curvas de disociación
Derivadas <- Melting_curves2 %>%
mutate(across(PPBA:D2MI,
~ -c(NA, diff(.x)/diff(Melting_curves2$Temperatura)), .names = "d_{col}")) %>%
select(-PPBA: -D2MI) %>%
slice(-1)
Derivadas
## # A tibble: 60 Ć 7
## Temperatura d_PPBA d_ZARX d_FSFS d_LANS d_Negativo d_D2MI
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 65.5 10.4 10.7 82.5 4.34 17.7 154.
## 2 66 10.4 10.7 82.5 4.34 17.7 154.
## 3 66.5 10.4 10.7 82.5 4.34 17.7 154.
## 4 67 10.4 10.7 82.5 4.34 17.7 154.
## 5 67.5 10.4 10.7 82.5 4.34 17.7 154.
## 6 68 10.4 10.7 82.5 4.34 17.7 154.
## 7 68.5 46.5 15.2 128. 7.20 21.1 174.
## 8 69 82.2 19.5 171. 9.00 24.1 185.
## 9 69.5 112. 20.9 204. 11.1 25.3 190.
## 10 70 137. 22.9 228. 12.3 26.3 191.
## # ā¹ 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_PPBA 10.4
## 2 65.5 d_ZARX 10.7
## 3 65.5 d_FSFS 82.5
## 4 65.5 d_LANS 4.34
## 5 65.5 d_Negativo 17.7
## 6 65.5 d_D2MI 154.
## 7 66 d_PPBA 10.4
## 8 66 d_ZARX 10.7
## 9 66 d_FSFS 82.5
## 10 66 d_LANS 4.34
## # ā¹ 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 = "DiseƱo: Deni Uribe",
x = "Temperatura (°C)",
y = expression(-Delta~F / Delta~T))+
theme(axis.line = element_line(size = 1.5, 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 derivada en 3D",
scene = list(
xaxis = list(title = "Temperatura (°C)"),
yaxis = list(title = "Muestras"),
zaxis = list(title = "-ĪdT/ĪdF") # Cambia la etiqueta del eje Y
))
Grafica_derivada_3D
GrƔfica del equipo
Grafica_derivada_equipo <- ggplot(Derivadas, aes(x = Temperatura)) +
geom_line(aes(y = d_D2MI, color = "d_D2MI"), linewidth = 1.5) +
geom_line(aes(y = d_FSFS, color = "d_FSFS"), linewidth = 1.5) +
geom_line(aes(y = d_Negativo, color = "d_Negativo"), linewidth = 1.5) +
theme_classic() +
scale_color_manual(values = c("d_D2MI" = "#ff3384",
"d_FSFS" = "#33cbff",
"d_Negativo" = "#9060e3")) +
labs(title = "Derivada de Disociación",
subtitle = "Tejido: HĆgado VS Corazón",
caption = "DiseƱo: D2MI",
x = "Temperatura (°C)",
y = expression(-Delta~F / Delta~T)) +
theme(axis.line = element_line(size = 1.5, 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(floor(min(Derivadas$Temperatura)),
ceiling(max(Derivadas$Temperatura)),
by = 2.5))
Grafica_derivada_equipo
Etiquetas
Pico <- max(Derivadas$d_D2MI)
Pico
## [1] 439.5059
Temperatura
Tm <- Derivadas %>%
filter(d_D2MI == Pico) %>%
select(Temperatura, d_D2MI)
Tm
## # A tibble: 1 Ć 2
## Temperatura d_D2MI
## <dbl> <dbl>
## 1 83 440.
Grafica con etiqueta
Grafica_derivada_equipo2 <- Grafica_derivada_equipo+
geom_vline(xintercept = Tm$Temperatura,
color = "#f9e014",
linetype = "dashed",
linewidth = 1)+
geom_label_repel(data = Tm,
aes(x = Temperatura,
y = d_D2MI,
label = paste("Tm =", round(Temperatura), "° C")),
nudge_x = 4,
nudge_y = -0.03,
max.overlaps = 100,
color = "black",
fill = "#ccf8ee")
Grafica_derivada_equipo2