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