Instalación de paquetes #Pacman: llama a otros paquetes y si no estan 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")

Llamar a base de datos

Amplificacion_curves<- read.csv(file="https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Amplificaci%C3%B3n-RT-qPCR-20261_G1.csv")

Amplificacion_curves
##    Cycle         A1          A2          A3           A4          A5
## 1      1 -9.4820849  -4.6293737 -11.7772746 -26.28535430  -5.8537227
## 2      2 -8.2355249   1.4191769  -8.0495902  -9.47855619   5.3672807
## 3      3 -1.6772250   2.0911121  -1.7854214  -5.30247480   3.9678107
## 4      4  0.3185735   5.6280553   7.2247356   1.14693074   8.5505417
## 5      5  2.2108334   0.8847123   2.8287136  -3.09043383   5.3771166
## 6      6 -6.6374424  -3.1625487   1.5613583  -6.03955623   5.9106199
## 7      7 -5.9423238  -0.7823888  -0.6270633  -1.03545902   0.8710510
## 8      8  1.9437281   3.6886636   0.2085411   0.62877114   1.3907730
## 9      9 -3.6448056  -1.1077201  -0.8618762  -2.95044851  -3.9775633
## 10    10 -0.9504983  -1.3818447   0.1964022  -3.44174230  -1.3140243
## 11    11 -1.0704692  -4.6268267  -6.0786860  -2.39480464  -1.9381592
## 12    12 -4.0826359   3.0639808  -5.1912493  -0.20388814  -5.3215744
## 13    13 -5.6351169  -2.5734721   4.3455890   1.38266219  -1.4750337
## 14    14 -0.1675053   8.6797492   9.0193333   4.20391947   3.7766950
## 15    15 -0.8401372   8.8392659  13.9957484   0.11106172   0.8799676
## 16    16  3.1419238  20.6178322  35.9797793   5.06223421  18.4882776
## 17    17  0.4453537  32.9489408  61.4085921   4.38789850  23.2535596
## 18    18 -0.6993381  58.6831283  90.5880275   0.09858559  45.7956588
## 19    19 -2.2119365  88.4611803 121.4411764   0.44823393  74.1387863
## 20    20 -1.0441537 119.0936698 148.4208196   7.17445771 106.9902667
## 21    21  0.3081392 144.9460662 170.4055821   1.60909720 135.6707376
## 22    22  2.3711248 163.0303977 189.9850745   2.42055684 157.9320331
## 23    23  0.1614810 175.6811662 207.8820747  -0.90989223 176.3156408
## 24    24  4.0503749 187.6572857 224.5392444  -1.36143150 191.2729995
## 25    25  4.7454935 199.6070647 238.3876641   2.53758775 204.6136745
## 26    26  7.8592963 210.2382783 250.9962958   2.03434321 214.2038484
## 27    27  3.1660928 217.1758991 261.4314367   2.14839117 221.5902889
## 28    28  5.9511283 219.3416774 268.5150038   9.08338713 225.8042541
## 29    29 11.8121388 222.4495320 273.7231170   0.40437049 229.7684731
## 30    30  4.6344001 225.7678660 278.7910732   0.88596480 232.4662385
## 31    31  4.4139032 231.9343416 285.4757579   1.49950508 236.0449098
## 32    32  3.2250317 235.3664922 290.2673024   0.06203012 235.8376688
## 33    33  3.6178860 241.6114577 292.5044770   0.67544777 236.1829262
## 34    34  3.3097533 243.5933785 294.1721172   2.70844373 234.4904944
## 35    35  5.8278075 247.0345531 295.3230749  -1.68708488 234.4634902
## 36    36  7.3028951 245.9013570 300.0756779   4.19819676 233.2749875
## 37    37  7.0780503 246.2882630 301.3884990   3.89055419 230.0798167
## 38    38  5.8847496 245.5842740 303.9718747  -1.67370839 223.9226030
## 39    39  3.9422104 246.9222362 304.0008804  -2.30902163 217.9624546
## 40    40  2.7576477 247.4540958 306.2909797   3.78478794 212.1123489
## 41    41  2.2611064 246.0142452 305.7459886   2.93997279 207.8086043
## 42    42  0.5248584 242.8084487 304.6009401   1.98881813 201.0294299
## 43    43 -1.7462855 239.9006451 303.1095185   0.49853976 196.6118218
## 44    44 -5.0249532 238.1537776 301.0707298  -4.79012379 189.1227225
## 45    45 -5.8501414 237.3050045 299.3908700  -3.70282106 184.6878919
## 46    46 -5.3429828 236.9909627 298.1232248  -3.03757552 180.1167596
## 47    47 -4.9894767 235.0602373 299.1819097   0.11330159 177.2809241
## 48    48 -6.4760990 232.7485888 297.1124623  -4.54477637 170.9702207
## 49    49 -5.6407421 230.4978762 296.1425288  -5.15423716 164.5240412
## 50    50 -5.4014170 230.5301180 294.9141860  -0.61060970 160.4963362
## 51    51 -4.5050870 230.5624039 296.8226743   1.35751066 159.3647416
##              A6
## 1  -10.59438327
## 2   -0.92868366
## 3   -0.06897497
## 4    2.61675858
## 5    1.82031017
## 6    0.97070016
## 7   -1.82505540
## 8    3.64788428
## 9    0.45872975
## 10   2.31742306
## 11  -0.05761754
## 12   4.77083813
## 13  11.66457238
## 14  33.08126763
## 15  62.16627552
## 16  97.78390779
## 17 142.07676560
## 18 181.69907760
## 19 217.53589160
## 20 246.54191470
## 21 270.56598580
## 22 289.70480430
## 23 308.17328780
## 24 322.42669100
## 25 335.58013790
## 26 346.68773130
## 27 356.60789240
## 28 363.15883790
## 29 366.81331340
## 30 371.41880790
## 31 379.16585080
## 32 383.85857760
## 33 386.92169450
## 34 385.30511300
## 35 387.40891850
## 36 387.44410710
## 37 388.88151640
## 38 388.52667290
## 39 389.86346930
## 40 390.65261170
## 41 388.66381580
## 42 384.97947780
## 43 384.08587520
## 44 384.04249680
## 45 384.94550350
## 46 385.15613220
## 47 383.51805410
## 48 381.60343510
## 49 379.32131760
## 50 379.15061290
## 51 379.74683600

Modificar base de datos #select: para seleccionar columnas #filter (una vez que ya conoces donde empieza la amplificación): para seleccionar filas

Amplificacion_curves2 <- Amplificacion_curves %>% 
  mutate(Ciclo = Cycle,
         KAM = A1,
         Muestra2 = A2,
         Muestra3 = A3,
         Muestra4 = A4,
         Muestra5 = A5,
         Muestra6 = A6) %>% 
  select(-Cycle:-A6)

Amplificacion_curves2
##    Ciclo        KAM    Muestra2    Muestra3     Muestra4    Muestra5
## 1      1 -9.4820849  -4.6293737 -11.7772746 -26.28535430  -5.8537227
## 2      2 -8.2355249   1.4191769  -8.0495902  -9.47855619   5.3672807
## 3      3 -1.6772250   2.0911121  -1.7854214  -5.30247480   3.9678107
## 4      4  0.3185735   5.6280553   7.2247356   1.14693074   8.5505417
## 5      5  2.2108334   0.8847123   2.8287136  -3.09043383   5.3771166
## 6      6 -6.6374424  -3.1625487   1.5613583  -6.03955623   5.9106199
## 7      7 -5.9423238  -0.7823888  -0.6270633  -1.03545902   0.8710510
## 8      8  1.9437281   3.6886636   0.2085411   0.62877114   1.3907730
## 9      9 -3.6448056  -1.1077201  -0.8618762  -2.95044851  -3.9775633
## 10    10 -0.9504983  -1.3818447   0.1964022  -3.44174230  -1.3140243
## 11    11 -1.0704692  -4.6268267  -6.0786860  -2.39480464  -1.9381592
## 12    12 -4.0826359   3.0639808  -5.1912493  -0.20388814  -5.3215744
## 13    13 -5.6351169  -2.5734721   4.3455890   1.38266219  -1.4750337
## 14    14 -0.1675053   8.6797492   9.0193333   4.20391947   3.7766950
## 15    15 -0.8401372   8.8392659  13.9957484   0.11106172   0.8799676
## 16    16  3.1419238  20.6178322  35.9797793   5.06223421  18.4882776
## 17    17  0.4453537  32.9489408  61.4085921   4.38789850  23.2535596
## 18    18 -0.6993381  58.6831283  90.5880275   0.09858559  45.7956588
## 19    19 -2.2119365  88.4611803 121.4411764   0.44823393  74.1387863
## 20    20 -1.0441537 119.0936698 148.4208196   7.17445771 106.9902667
## 21    21  0.3081392 144.9460662 170.4055821   1.60909720 135.6707376
## 22    22  2.3711248 163.0303977 189.9850745   2.42055684 157.9320331
## 23    23  0.1614810 175.6811662 207.8820747  -0.90989223 176.3156408
## 24    24  4.0503749 187.6572857 224.5392444  -1.36143150 191.2729995
## 25    25  4.7454935 199.6070647 238.3876641   2.53758775 204.6136745
## 26    26  7.8592963 210.2382783 250.9962958   2.03434321 214.2038484
## 27    27  3.1660928 217.1758991 261.4314367   2.14839117 221.5902889
## 28    28  5.9511283 219.3416774 268.5150038   9.08338713 225.8042541
## 29    29 11.8121388 222.4495320 273.7231170   0.40437049 229.7684731
## 30    30  4.6344001 225.7678660 278.7910732   0.88596480 232.4662385
## 31    31  4.4139032 231.9343416 285.4757579   1.49950508 236.0449098
## 32    32  3.2250317 235.3664922 290.2673024   0.06203012 235.8376688
## 33    33  3.6178860 241.6114577 292.5044770   0.67544777 236.1829262
## 34    34  3.3097533 243.5933785 294.1721172   2.70844373 234.4904944
## 35    35  5.8278075 247.0345531 295.3230749  -1.68708488 234.4634902
## 36    36  7.3028951 245.9013570 300.0756779   4.19819676 233.2749875
## 37    37  7.0780503 246.2882630 301.3884990   3.89055419 230.0798167
## 38    38  5.8847496 245.5842740 303.9718747  -1.67370839 223.9226030
## 39    39  3.9422104 246.9222362 304.0008804  -2.30902163 217.9624546
## 40    40  2.7576477 247.4540958 306.2909797   3.78478794 212.1123489
## 41    41  2.2611064 246.0142452 305.7459886   2.93997279 207.8086043
## 42    42  0.5248584 242.8084487 304.6009401   1.98881813 201.0294299
## 43    43 -1.7462855 239.9006451 303.1095185   0.49853976 196.6118218
## 44    44 -5.0249532 238.1537776 301.0707298  -4.79012379 189.1227225
## 45    45 -5.8501414 237.3050045 299.3908700  -3.70282106 184.6878919
## 46    46 -5.3429828 236.9909627 298.1232248  -3.03757552 180.1167596
## 47    47 -4.9894767 235.0602373 299.1819097   0.11330159 177.2809241
## 48    48 -6.4760990 232.7485888 297.1124623  -4.54477637 170.9702207
## 49    49 -5.6407421 230.4978762 296.1425288  -5.15423716 164.5240412
## 50    50 -5.4014170 230.5301180 294.9141860  -0.61060970 160.4963362
## 51    51 -4.5050870 230.5624039 296.8226743   1.35751066 159.3647416
##        Muestra6
## 1  -10.59438327
## 2   -0.92868366
## 3   -0.06897497
## 4    2.61675858
## 5    1.82031017
## 6    0.97070016
## 7   -1.82505540
## 8    3.64788428
## 9    0.45872975
## 10   2.31742306
## 11  -0.05761754
## 12   4.77083813
## 13  11.66457238
## 14  33.08126763
## 15  62.16627552
## 16  97.78390779
## 17 142.07676560
## 18 181.69907760
## 19 217.53589160
## 20 246.54191470
## 21 270.56598580
## 22 289.70480430
## 23 308.17328780
## 24 322.42669100
## 25 335.58013790
## 26 346.68773130
## 27 356.60789240
## 28 363.15883790
## 29 366.81331340
## 30 371.41880790
## 31 379.16585080
## 32 383.85857760
## 33 386.92169450
## 34 385.30511300
## 35 387.40891850
## 36 387.44410710
## 37 388.88151640
## 38 388.52667290
## 39 389.86346930
## 40 390.65261170
## 41 388.66381580
## 42 384.97947780
## 43 384.08587520
## 44 384.04249680
## 45 384.94550350
## 46 385.15613220
## 47 383.51805410
## 48 381.60343510
## 49 379.32131760
## 50 379.15061290
## 51 379.74683600

Reorganizar datos

Amplificacion_curves3 <- Amplificacion_curves2 %>% 
  pivot_longer(cols = -Ciclo,
               names_to = "Muestras",
               values_to = "Fluorescencia")

Amplificacion_curves3
## # A tibble: 306 × 3
##    Ciclo Muestras Fluorescencia
##    <int> <chr>            <dbl>
##  1     1 KAM              -9.48
##  2     1 Muestra2         -4.63
##  3     1 Muestra3        -11.8 
##  4     1 Muestra4        -26.3 
##  5     1 Muestra5         -5.85
##  6     1 Muestra6        -10.6 
##  7     2 KAM              -8.24
##  8     2 Muestra2          1.42
##  9     2 Muestra3         -8.05
## 10     2 Muestra4         -9.48
## # ℹ 296 more rows

Gráfica de amplificación

Grafica_amplificacion <- ggplot(Amplificacion_curves3,
                                aes(x = Ciclo,
                                    y = Fluorescencia,
                                    color = Muestras)) +
  geom_line(linewidth = 1.5) +
  theme_classic() +
  labs(title = "Curvas de amplificación de valores relativos RT-qPCR",
       subtitle = "Todas las muestras",
       caption = "Equipo: KAM",
       x = "Ciclo",
       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"))
## 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_amplificacion

Definir umbral de ciclos y mejorar la gráfica

# Definir umbral de ciclos
Umbral_ciclos <- 0.008

# Filtrar los ciclos de interés (ejemplo: del 9 al 35)
Amplificacion_curves_filtrado <- Amplificacion_curves3 %>% 
  filter(Ciclo >= 9 & Ciclo <= 35)

# Gráfica mejorada con umbral y zoom
Grafica_amplif2 <- ggplot(Amplificacion_curves_filtrado,
                          aes(x = Ciclo,
                              y = Fluorescencia,
                              color = Muestras)) +
  geom_line(linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  theme_classic() +
  labs(title = "Curvas de amplificación de valores relativos RT-qPCR",
       subtitle = "Ciclos 9–35",
       caption = "Equipo: KAM",
       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")) +
  scale_x_continuous(breaks = seq(min(Amplificacion_curves_filtrado$Ciclo),
                                  max(Amplificacion_curves_filtrado$Ciclo),
                                  by = 2)) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.02))

Grafica_amplif2

Gráfica Equipo KAM

Grafica_amplif_equipo <- ggplot(Amplificacion_curves %>% filter(Cycle >= 9 & Cycle <= 35),
                                aes(x = Cycle)) +
  geom_line(aes(y = A1, color = "KAM"), linewidth = 1.5) +
  geom_line(aes(y = A6, color = "A3"), linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  scale_color_manual(values = c("KAM" = "#1e2f7c", "A3" = "#900C3F")) +
  theme_classic() +
  labs(title = "Curvas de amplificación de valores relativos RT-qPCR",
       subtitle = "Muestra KAM vs Muestra Equipo A3",
       caption = "Equipo: KAM",
       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(1, 35, by = 2))

Grafica_amplif_equipo