Ejercicio R de PCR Los chunk los obtengo con: Cmd+Alt+I Paquetería

library("pacman")

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

Llamar base de datos

Datos_PCR <- 
  vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Datos_ejercicio_PCR1.1.csv")
## Rows: 1001 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Gen
## dbl (6): C1, C2, C3, T1, T2, T3
## 
## ℹ 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.
Datos_PCR
## # A tibble: 1,001 × 7
##    Gen         C1    C2    C3    T1    T2    T3
##    <chr>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 B-actina  19.9  20.2  19.9  20.0  20.1  19.9
##  2 Gene_1    23.9  23.0  24.0  21.7  22.4  21.0
##  3 Gene_2    24.5  22.9  25.5  21.3  23.3  24.3
##  4 Gene_3    28.1  25.0  23.9  19.1  23.3  19.7
##  5 Gene_4    25.1  24.7  27.4  20.6  19.4  25.0
##  6 Gene_5    25.3  19.9  25.3  27.2  17.9  23.8
##  7 Gene_6    28.4  27.1  23.8  21.9  26.4  22.7
##  8 Gene_7    25.9  25.5  21.4  23.8  22.5  23.1
##  9 Gene_8    22.5  29.8  23.7  21.6  22.8  22.4
## 10 Gene_9    23.6  26.4  29.1  23.2  19.6  21.1
## # ℹ 991 more rows

Aislar gen de referencia

Gen_ref <- Datos_PCR %>% 
  filter(Gen == "B-actina")
Gen_ref
## # A tibble: 1 × 7
##   Gen         C1    C2    C3    T1    T2    T3
##   <chr>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 B-actina  19.9  20.2  19.9  20.0  20.1  19.9

Aislar gen de interés

Gen_int <- Datos_PCR %>% 
  filter(Gen!="B-actina")
Gen_int
## # A tibble: 1,000 × 7
##    Gen        C1    C2    C3    T1    T2    T3
##    <chr>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Gene_1   23.9  23.0  24.0  21.7  22.4  21.0
##  2 Gene_2   24.5  22.9  25.5  21.3  23.3  24.3
##  3 Gene_3   28.1  25.0  23.9  19.1  23.3  19.7
##  4 Gene_4   25.1  24.7  27.4  20.6  19.4  25.0
##  5 Gene_5   25.3  19.9  25.3  27.2  17.9  23.8
##  6 Gene_6   28.4  27.1  23.8  21.9  26.4  22.7
##  7 Gene_7   25.9  25.5  21.4  23.8  22.5  23.1
##  8 Gene_8   22.5  29.8  23.7  21.6  22.8  22.4
##  9 Gene_9   23.6  26.4  29.1  23.2  19.6  21.1
## 10 Gene_10  24.1  24.1  23.9  21.9  24.3  21.3
## # ℹ 990 more rows

Analisis

DCT <- Gen_int %>% 
  mutate(DCTC1 = C1 - Gen_ref$C1,
         DCTC2 = C2 - Gen_ref$C2,
         DCTC3 = C3 - Gen_ref$C3,
         DCTT1 = T1 - Gen_ref$T1,
         DCTT2 = T2 - Gen_ref$T2,
         DCTT3 = T3 - Gen_ref$T3) %>% 
  mutate(DosDCT_C1 = 2^-DCTC1,
         DosDCT_C2 = 2^-DCTC2,
         DosDCT_C3 = 2^-DCTC3,
         DosDCT_T1 = 2^-DCTT1,
         DosDCT_T2 = 2^-DCTT2,
         DosDCT_T3 = 2^-DCTT3,) %>% 
  mutate(DosDCT_Cx_prom = (DosDCT_C1+DosDCT_C2+DosDCT_C3/3),
         DosDCT_Tx_prom = (DosDCT_T1+DosDCT_T2+DosDCT_T3/3)) %>% 
  mutate(DosDDCT = DosDCT_Tx_prom/DosDCT_Cx_prom) 
  
DCT
## # A tibble: 1,000 × 22
##    Gen        C1    C2    C3    T1    T2    T3 DCTC1  DCTC2 DCTC3  DCTT1  DCTT2
##    <chr>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl>  <dbl>  <dbl>
##  1 Gene_1   23.9  23.0  24.0  21.7  22.4  21.0  4.02  2.81   4.12  1.72   2.27 
##  2 Gene_2   24.5  22.9  25.5  21.3  23.3  24.3  4.68  2.72   5.61  1.37   3.18 
##  3 Gene_3   28.1  25.0  23.9  19.1  23.3  19.7  8.26  4.76   4.06 -0.876  3.22 
##  4 Gene_4   25.1  24.7  27.4  20.6  19.4  25.0  5.28  4.54   7.58  0.626 -0.689
##  5 Gene_5   25.3  19.9  25.3  27.2  17.9  23.8  5.40 -0.298  5.49  7.22  -2.17 
##  6 Gene_6   28.4  27.1  23.8  21.9  26.4  22.7  8.57  6.88   3.91  1.95   6.29 
##  7 Gene_7   25.9  25.5  21.4  23.8  22.5  23.1  6.06  5.30   1.52  3.85   2.34 
##  8 Gene_8   22.5  29.8  23.7  21.6  22.8  22.4  2.61  9.63   3.85  1.65   2.63 
##  9 Gene_9   23.6  26.4  29.1  23.2  19.6  21.1  3.77  6.17   9.23  3.24  -0.507
## 10 Gene_10  24.1  24.1  23.9  21.9  24.3  21.3  4.25  3.91   4.02  1.92   4.14 
## # ℹ 990 more rows
## # ℹ 10 more variables: DCTT3 <dbl>, DosDCT_C1 <dbl>, DosDCT_C2 <dbl>,
## #   DosDCT_C3 <dbl>, DosDCT_T1 <dbl>, DosDCT_T2 <dbl>, DosDCT_T3 <dbl>,
## #   DosDCT_Cx_prom <dbl>, DosDCT_Tx_prom <dbl>, DosDDCT <dbl>

Selección de datos para graficar

# Selección de columnas
Datos_grafica <- DCT %>%
  dplyr::select(Gen, DosDDCT)

Grafica

Grafica_PCR <- ggplot(Datos_grafica,
                      aes(x = Gen,
                          y = DosDDCT)) +   # fill por Gen para colores distintos
  geom_col() +
  labs(title = "Expresión relativa de genes",
       subtitle = "Normalización con B-actina como referencia",
       caption = "Diseño: XXXX") +
  theme_minimal(base_size = 14) +   # estilo minimalista
  theme(plot.background = element_rect(fill = "white", color = NA),
        panel.background = element_rect(fill = "white", color = NA)) +
  scale_fill_brewer(palette = "Set3")   # paleta con colores distintos

Grafica_PCR

Analisis de regresion lineal

Datos_regresion <- DCT %>% 
  select("Gen", "DosDCT_Cx_prom", "DosDCT_Tx_prom")
Datos_regresion
## # A tibble: 1,000 × 3
##    Gen     DosDCT_Cx_prom DosDCT_Tx_prom
##    <chr>            <dbl>          <dbl>
##  1 Gene_1          0.224           0.662
##  2 Gene_2          0.198           0.515
##  3 Gene_3          0.0601          2.32 
##  4 Gene_4          0.0706          2.27 
##  5 Gene_5          1.26            4.54 
##  6 Gene_6          0.0333          0.320
##  7 Gene_7          0.156           0.301
##  8 Gene_8          0.188           0.538
##  9 Gene_9          0.0879          1.67 
## 10 Gene_10         0.140           0.445
## # ℹ 990 more rows

Graficar

Grafica_regresion <- ggplot(Datos_regresion,
                            aes( x = DosDCT_Cx_prom,
                                 y = DosDCT_Tx_prom)) + 
  geom_point()

Grafica_regresion

Graficar

Grafica_regresion <- ggplot(Datos_regresion,
                            aes(x = DosDCT_Cx_prom,
                                y = DosDCT_Tx_prom)) + 
  geom_point(color = "blue", linewidth = 3, alpha = 0.6) + 
  geom_abline(intercept = 0, slope = 1, 
              color = "red", linetype = "dashed", size = 1) +
  labs(title = "Comparación de DosDCT Cx vs Tx",
       x = "DosDCT Cx promedio",
       y = "DosDCT Tx promedio") +
  theme_minimal(base_size = 14)
## Warning in geom_point(color = "blue", linewidth = 3, alpha = 0.6): Ignoring
## unknown parameters: `linewidth`
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafica_regresion