Correr la paqueteria Instalación de paquetes Pacman llama a otros paquetes y si no estÔn los instala
if(!require(pacman))
install.packages("pacman")
## Loading required package: pacman
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 la base de datos
Melting_curves2 <- Melting_curves %>%
rename(Temperatura = Temperature) %>%
select(Temperatura, A1, B1, C1, D1, E1, H1) %>%
rename(Manuel = A1, Regina = B1, Marian = C1, Ricardo = D1, Neto = E1, Johan = 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, # Todas las columnas excepto Temperatura
names_to = "Muestras",
values_to = "Fluorescencia"
)
Melting_curves3
## # A tibble: 366 Ć 3
## Temperatura Muestras Fluorescencia
## <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 = Fluorescencia,
color = Muestras)) +
geom_line(linewidth = 1.5) +
theme_classic() +
labs(title = "Curvas de disociación",
subtitle = "Todas las muestras",
caption = "Diseñó: AlegrĆa Larrea",
x = "Temperatura (°C)",
y = "Fluorescencia (u.a)") +
theme(axis.line = element_line(linewidth = 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"))
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 la derivada de disociación",
subtitle = "Todas las muestras",
caption = "Diseñó: AlegrĆa Larrea",
x = "Temperatura (°C)",
y = expression(-Delta~F/Delta~T)) +
theme(axis.line = element_line(linewidth = 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(floor(min(Derivadas2$Temperatura)),
ceiling(max(Derivadas2$Temperatura)),
by = 2))
Grafica_derivada
Construir una grafica 3D
Grafica_derivada3D <- 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(
zaxis = list(title = "-ĪT/ĪF"),
xaxis = list(title = "Temperatura (°C)"),
yaxis = list(title = "Muestras")
))
Grafica_derivada3D
Grafica del equipo
Grafica_derivada_equipo <- ggplot(Derivadas,
aes(x = Temperatura)) +
geom_line(aes(y = d_Neto, color = "d_Neto"), linewidth = 1.2) +
geom_line(aes(y = d_Manuel, color = "d_Manuel"), linewidth = 1.5) +
scale_color_manual(
name = "Muestras",
values = c("d_Neto" = "#1e2f7c", "d_Manuel" = "#900C3F"),
labels = c("d_Neto", "d_Manuel")
) +
theme_classic() +
labs(
title = "Derivada de Disociación",
subtitle = "Tejido: Cerebro",
caption = "DiseƱo: Alegria larrea",
x = "Temperatura (°C)",
y = expression(-Delta~F/Delta~T),
color = "Leyenda"
) +
theme(
axis.line = element_line(linewidth = 1.2, color = "black"),
axis.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
legend.position = "top"
)+
scale_x_continuous(
breaks = seq(floor(min(Derivadas2$Temperatura)),
ceiling(max(Derivadas2$Temperatura)),
by = 2.5))
Grafica_derivada_equipo
Etiquetas
Pico <- max(Derivadas$d_Neto)
Pico
## [1] 261.5791
Temperatura
Tm<- Derivadas %>%
filter(d_Neto==Pico) %>%
select(Temperatura, d_Neto)
Tm
## # A tibble: 1 Ć 2
## Temperatura d_Neto
## <dbl> <dbl>
## 1 82 262.
Grafica
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_Neto,
label = paste("Tm = ", round(Temperatura), "°C")),
nudge_x = 4,
nudge_y = -0.03,
max.overlaps = 100,
color= "black",
fill = "#9eaffa")
Grafica_derivada_equipo2