if (!require(pacman))
  install.packages("pacman")
## Loading required package: pacman

Llamar a pacman

library("pacman")

Llamar paqueteria necesaria

p_load("vroom",
       "dplyr",
       "ggplot2",
       "tidyr")

Llamar a base de datos

Curvas_amplif <- vroom(file ="https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Amplificación-RT-qPCR-20261_G2.csv")
## Rows: 51 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (4): Cycle, A1, A2, A3
## 
## ℹ 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.
Curvas_amplif
## # A tibble: 51 × 4
##    Cycle     A1      A2    A3
##    <dbl>  <dbl>   <dbl> <dbl>
##  1     1 -0.879 -4.30    3.25
##  2     2  3.31   3.52    4.15
##  3     3  1.08   2.89    5.17
##  4     4  2.67   3.78    1.40
##  5     5  1.63   0.130   1.76
##  6     6 -3.51   0.0527 -3.50
##  7     7  1.98  -1.98    1.84
##  8     8  3.00   1.44   -2.53
##  9     9 -2.66  -0.956  -2.88
## 10    10  2.90   3.25    1.06
## # ℹ 41 more rows

Modificar base de datos

Curvas_amplif2 <- Curvas_amplif %>%

  transmute(

    Ciclos = Cycle,

    JPP = A1,

    EQUIPO2 = A2,

    EQUIPO3 = A3) %>%

  filter(Ciclos >= 10)

Curvas_amplif2
## # A tibble: 42 × 4
##    Ciclos    JPP EQUIPO2 EQUIPO3
##     <dbl>  <dbl>   <dbl>   <dbl>
##  1     10  2.90    3.25    1.06 
##  2     11  2.84    1.08    0.658
##  3     12 -4.84   -2.92   -2.53 
##  4     13 -2.15   -2.29   -3.21 
##  5     14  0.133   1.92   -0.651
##  6     15  6.46    0.393   3.56 
##  7     16 13.2    -4.86    3.09 
##  8     17 24.5     1.18    5.08 
##  9     18 41.5     8.56   12.4  
## 10     19 61.9    16.4    27.0  
## # ℹ 32 more rows

Reordenamiento de datos

  1. Seleccionar los datos a reordenar (variables dependientes)
  2. Agrupar todas las variables por nombre
  3. Agrupar todas las variables por ciclo.
Curvas_amplif3 <- Curvas_amplif2 %>% 
  pivot_longer(cols= -Ciclos, 
               names_to = "Muestras",
               values_to = "Fluorescencias")
Curvas_amplif3
## # A tibble: 126 × 3
##    Ciclos Muestras Fluorescencias
##     <dbl> <chr>             <dbl>
##  1     10 JPP               2.90 
##  2     10 EQUIPO2           3.25 
##  3     10 EQUIPO3           1.06 
##  4     11 JPP               2.84 
##  5     11 EQUIPO2           1.08 
##  6     11 EQUIPO3           0.658
##  7     12 JPP              -4.84 
##  8     12 EQUIPO2          -2.92 
##  9     12 EQUIPO3          -2.53 
## 10     13 JPP              -2.15 
## # ℹ 116 more rows

Grafica

Grafica_amplif <- ggplot(data=Curvas_amplif3,
                         mapping = aes(x=Ciclos, 
                                       y=Fluorescencias,
                                       color=Muestras)) + 
  geom_line(size=1.5)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafica_amplif

Mejorar la gráfica

Umbral_ciclos <- 0.008
Grafica_amplif2 <- Grafica_amplif+
  geom_hline(yintercept=Umbral_ciclos, linetype="dashed", color="#91197C")+
  theme_classic()+
  labs(title="Curvas de amplificación RT-qPCR",
       subtitle="Todas las muestras", 
       caption="Diseño: Paulina Aguilar", 
       x="Ciclos", 
       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(Curvas_amplif3$Ciclos),
                                  max(Curvas_amplif3$Ciclos),
                                  by=2))+
  scale_y_continuous(breaks = seq(min(Curvas_amplif3$Fluorescencias),
                                  max(Curvas_amplif3$Fluorescencias),
                                  by=30),
                     labels = scales::number_format(accuracy = 1))
## 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_amplif2

Grafica de los datos del equipo

Grafica_amplif_equipo <- ggplot(Curvas_amplif2, aes(x = Ciclos)) +
  geom_line(aes(y = JPP, color = "JPP"), linewidth = 1.5) +
  #geom_line(aes(y = H2O, color = "H2O"), linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, 
             linetype = "dashed", 
             color = "#91197C",
             linewidth = 1) +
  scale_color_manual(
    name = "Muestras",
    values = c("JPP" = "#6AA84F", 
               "MLL" = "#2E2A8C")
  ) +
  theme_classic() +
  labs(
    title = "Curvas de amplificación RT-qPCR",
    subtitle = "EQUIPO JPP",
    caption = "Diseño: Paulina Aguilar",
    x = "Ciclos",
    y = "Fluorescencia (u.a.)"
  ) +
  theme(
    axis.line = element_line(linewidth = 1.2, color = "black"),
    axis.title = element_text(face = "bold", size = 14),
    axis.text = element_text(face = "bold", size = 10),
    legend.title = element_text(face = "bold", size = 12),
    legend.text = element_text(face = "bold", size = 10),
    plot.title = element_text(face = "bold", size = 20),
    plot.subtitle = element_text(size = 16)
  ) +
  scale_x_continuous(
    breaks = seq(min(Curvas_amplif2$Ciclos),
                 max(Curvas_amplif2$Ciclos),
                 by = 4)
  ) +
  scale_y_continuous(
    breaks = seq(0, max(Curvas_amplif2$JPP), by = 30),
    labels = scales::number_format(accuracy = 1)
  )

Grafica_amplif_equipo