Instalación de paquetes

if(!require(pacman))
  install.packages("pacman") # para que no se esté instalando todo el tiempo
## Loading required package: pacman
library("pacman")

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

Base de datos

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

head(Curvas_amplif)
##   Cycle         A1         A2         A3         A4        A5           A6
## 1     1 -9.4820849 -4.6293737 -11.777275 -26.285354 -5.853723 -10.59438327
## 2     2 -8.2355249  1.4191769  -8.049590  -9.478556  5.367281  -0.92868366
## 3     3 -1.6772250  2.0911121  -1.785421  -5.302475  3.967811  -0.06897497
## 4     4  0.3185735  5.6280553   7.224736   1.146931  8.550542   2.61675858
## 5     5  2.2108334  0.8847123   2.828714  -3.090434  5.377117   1.82031017
## 6     6 -6.6374424 -3.1625487   1.561358  -6.039556  5.910620   0.97070016

Modificar nombres columnas

Curvas_amplif2 <- Curvas_amplif %>%  
  mutate(Ciclo = Cycle,
         Equipo_1_riñon = A1,
         Equipo_2_cerebelo = A2,
         Equipo_2_cerebelo_repeticion = A3,
         Equipo_3_higado = A4,
         Equipo_4_higado = A5,
         Equipo_5_corteza_cerebral = A6) %>% 
  select(-Cycle:-A6) 

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

Reordenamiento de datos: 1. Seleccionar datos a reordenar (variables dependientes) 2. Agrupar variables por nombre 3. Agrupar variables por ciclo

# Para poner en una columna el nombre de dónde viene la muestra en la otra su fluorescencia correspondiente:
Curvas_amplif3 <- Curvas_amplif2 %>% 
  pivot_longer(cols = -Ciclo,             # para manejo de muchos datos (seleccionar todas menos la de ciclo)
               names_to = "Muestras",
               values_to = "Fluorescencia") 

Curvas_amplif3
## # A tibble: 306 × 3
##    Ciclo Muestras                     Fluorescencia
##    <int> <chr>                                <dbl>
##  1     1 Equipo_1_riñon                       -9.48
##  2     1 Equipo_2_cerebelo                    -4.63
##  3     1 Equipo_2_cerebelo_repeticion        -11.8 
##  4     1 Equipo_3_higado                     -26.3 
##  5     1 Equipo_4_higado                      -5.85
##  6     1 Equipo_5_corteza_cerebral           -10.6 
##  7     2 Equipo_1_riñon                       -8.24
##  8     2 Equipo_2_cerebelo                     1.42
##  9     2 Equipo_2_cerebelo_repeticion         -8.05
## 10     2 Equipo_3_higado                      -9.48
## # ℹ 296 more rows

Graficar

Grafica_amplif <- ggplot(data = Curvas_amplif3,
                         mapping = aes(x = Ciclo,
                                       y = Fluorescencia,
                                       color = Muestras)) +
  geom_line(linewidth = 1)

Grafica_amplif 

Mejorar la gráfica grupal

library(ggplot2)

threshold <- 50

Grafica_amplif <- ggplot(
  data = Curvas_amplif3,
  aes(x = Ciclo, y = Fluorescencia, color = Muestras)
) +
  geom_line(linewidth = 1) +
  
  # Línea de threshold
  geom_hline(yintercept = threshold,
             linetype = "dashed",
             linewidth = 0.8,
             color = "black") +
  
  # Etiqueta del threshold
  annotate("text",
           x = max(Curvas_amplif3$Ciclo) * 0.85,
           y = threshold + 10,
           label = "Threshold",
           size = 4,
           color = "black") +
  
  # Colores más formales
  scale_color_brewer(palette = "Dark2") +
  
  # Etiquetas formales
  labs(
    title = "Curvas de amplificación por PCR",
    subtitle = "Detección de fase exponencial y umbral de fluorescencia",
    x = "Número de ciclos",
    y = "Fluorescencia (RFU)",
    color = "Muestra"
  ) +
  
  # Tema más formal
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16),
    plot.subtitle = element_text(size = 12),
    axis.title = element_text(face = "bold"),
    legend.position = "right",
    panel.grid.minor = element_blank()
  )

Grafica_amplif

Aislar gráfica del equipo

# Instalación y carga de paquetes
if(!require(pacman)) install.packages("pacman")
library(pacman)

p_load(ggplot2, dplyr, vroom)

# Cargar datos
Datos_curva <- vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Amplificaci%C3%B3n-RT-qPCR-20261_G1.csv")
## Rows: 51 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (7): Cycle, A1, A2, A3, A4, A5, A6
## 
## ℹ 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.
# Seleccionar solo Cycle y A6 (Equipo 6)
Curva_PCR_P2 <- Datos_curva %>%
  select(Cycle, A6)

# Definir threshold 
threshold <- 50

# Crear gráfica
Grafica_curva_PCR_P2 <- ggplot(Curva_PCR_P2,
                              aes(x = Cycle, y = A6)) +
  
  # Curva principal
  geom_line(color = "#5A0F2E", linewidth = 1.2) +
  geom_point(size = 1.8, color = "#5A0F2E", alpha = 0.7) +
  
  # Threshold
  geom_hline(yintercept = threshold,
             linetype = "dashed",
             linewidth = 0.9,
             color = "black") +
  
  annotate("text",
           x = max(Curva_PCR_P2$Cycle) * 0.7,
           y = threshold + 20,
           label = "Threshold",
           size = 4) +
  
  # Etiquetas 
  labs(
    x = "Número de ciclos",
    y = "Fluorescencia (RFU)",
    title = "Curva de amplificación RT-qPCR",
    subtitle = "Equipo 6 (Muestra A6) – Corteza cerebral de rata",
    caption = "Carrillo Garnica Samantha; Serranía Reinada Edith; Oropeza Durán Elisa Natalia; Garduño Martínez Zyanya Paola (SZEN)"
  ) +
  
  # Tema 
  theme_minimal(base_size = 14, base_family = "serif") +
  theme(
    plot.title = element_text(face = "bold", size = 16),
    plot.subtitle = element_text(size = 12),
    axis.title = element_text(face = "bold"),
    panel.grid.minor = element_blank()
  )

Grafica_curva_PCR_P2