Cargar paquetes y base de datos
library("pacman") #esta función llama al paquete instalado
p_load("ggplot2", #para graficar
"dplyr", #para facilitar el manejo de datos
"vroom", "tidyr") #llamar repositorios
# Importar datos
Curvas_amplif <- vroom(file="https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Ejemplo_amplificacion_RT-PCR.csv")
## Rows: 35 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (6): Cycle, A1, B1, C1, D1, E1
##
## ℹ 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.
Modificar datos
Curvas_amplif2 <- Curvas_amplif %>% #Ctrl/Cmd+Shift+M
mutate(Ciclos = Cycle, H2O = A1, JRWF = B1, PPOF = C1, MLL = D1, DDR = E1) %>%
select(-Cycle:-E1) %>%
filter(Ciclos>= 19)
Curvas_amplif2
## # A tibble: 17 × 6
## Ciclos H2O JRWF PPOF MLL DDR
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 19 -0.000106 0.000227 -0.00145 -0.000874 -0.00113
## 2 20 -0.000104 0.000133 -0.00197 -0.000632 -0.00134
## 3 21 -0.000119 0.00104 0.000464 0.000245 -0.000417
## 4 22 -0.0000153 0.00028 0.0032 -0.00081 0.00158
## 5 23 0.0000704 -0.000086 0.00494 0.00162 0.000497
## 6 24 0.00012 -0.000238 0.0144 0.00139 0.00121
## 7 25 -0.0000899 -0.000484 0.0263 0.00634 0.00425
## 8 26 0.0000114 -0.00133 0.0491 0.0101 0.00894
## 9 27 -0.000104 -0.000824 0.0763 0.0202 0.0202
## 10 28 -0.000101 -0.000922 0.105 0.0365 0.0353
## 11 29 -0.000222 -0.000938 0.134 0.0624 0.0594
## 12 30 -0.0000675 -0.000187 0.162 0.0895 0.0823
## 13 31 -0.000089 -0.0000371 0.191 0.114 0.107
## 14 32 -0.000188 0.0018 0.220 0.141 0.128
## 15 33 -0.0000273 0.00345 0.243 0.170 0.152
## 16 34 0.000358 0.00615 0.268 0.197 0.173
## 17 35 0.000345 0.00913 0.293 0.223 0.192
Reordenar y agrupar datos
Curvas_amplif3 <- Curvas_amplif2 %>%
pivot_longer(cols = -Ciclos,
names_to = "Muestras",
values_to = "Fluorescencias")
Curvas_amplif3
## # A tibble: 85 × 3
## Ciclos Muestras Fluorescencias
## <dbl> <chr> <dbl>
## 1 19 H2O -0.000106
## 2 19 JRWF 0.000227
## 3 19 PPOF -0.00145
## 4 19 MLL -0.000874
## 5 19 DDR -0.00113
## 6 20 H2O -0.000104
## 7 20 JRWF 0.000133
## 8 20 PPOF -0.00197
## 9 20 MLL -0.000632
## 10 20 DDR -0.00134
## # ℹ 75 more rows
Graficar
Grafica_amplif <- ggplot(data = Curvas_amplif3,
mapping = aes(x = Ciclos,
y = Fluorescencias,
color = Muestras)) +
geom_line(linewidth = 1.5)
Grafica_amplif
Mejorar Gráfca
Umbral_ciclos <- 0.0008
Grafica_amplif2 <- Grafica_amplif +
geom_hline(yintercept = Umbral_ciclos,
linetype = "dashed",
color = "#581845",
linewidth = 1) +
theme_classic() +
labs(title = "Curvas de amplificación RT-qPCR",
subtitle = "Todas las muestras",
caption = "Diseño: Yaniv Bar Yosef",
x = "Ciclos",
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"),
plot.title = element_text(face = "bold", hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5)) +
scale_x_continuous(breaks = seq(min(Curvas_amplif2$Ciclos),
max(Curvas_amplif2$Ciclos),
by = 2)) +
scale_y_continuous(breaks = seq(min(Curvas_amplif2$MLL),
max(Curvas_amplif2$MLL),
by = 0.02),
labels = scales::number_format(accuracy = 0.02))
Grafica_amplif2
Graficar datos del equipo
Grafica_amplif_equipo <- ggplot(Curvas_amplif2, aes(x = Ciclos)) +
geom_line(aes(y = MLL, color = "MLL"), linewidth = 1.5) +
geom_line(aes(y = H2O, color = "H2O"), linewidth = 1.5) +
geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
scale_color_manual(values = c("MLL" = "#1e2f7c", "H2O" = "#900C3F")) +
theme_classic() +
labs(title = "Curvas de amplificación RT-qPCR",
subtitle = "Muestra individual y control",
caption = "Diseño: Yaniv Bar Yosef",
x = "Ciclos",
y = "Fluorescencia (u.a.)",
color = "Muestras") +
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(min(Curvas_amplif2$Ciclos),
max(Curvas_amplif2$Ciclos),
by = 2)) +
scale_y_continuous(breaks = seq(min(Curvas_amplif2$MLL),
max(Curvas_amplif2$MLL),
by = 0.02),
labels = scales::number_format(accuracy = 0.02))
Grafica_amplif_equipo