if (!require(pacman)) install.packages("pacman", dependencies = TRUE)
## Loading required package: pacman
library(pacman)

p_load("vroom", "dplyr", "ggplot2", "ggrepel", "tidyr")
p_load("vroom",
       "dplyr",
       "ggplot2",
       "ggrepel",
       "tidyr")
Curvas_amplif <- vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/Metabolomica_2026_1/refs/heads/main/Amplificaci%C3%B3n-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
Curvas_amplif2 <- Curvas_amplif %>%
  mutate(Ciclos = Cycle) %>%
  select(Ciclos, A1, A2, A3) %>%
  filter(Ciclos >= 21)
  

Curvas_amplif2
## # A tibble: 31 × 4
##    Ciclos    A1    A2    A3
##     <dbl> <dbl> <dbl> <dbl>
##  1     21  106.  44.5  76.2
##  2     22  126.  66.0 108. 
##  3     23  140.  90.4 137. 
##  4     24  156. 116.  163. 
##  5     25  170. 139.  183. 
##  6     26  182. 162.  200. 
##  7     27  191. 180.  216. 
##  8     28  202. 198.  229. 
##  9     29  208. 210.  240. 
## 10     30  214. 220.  248. 
## # ℹ 21 more rows
Curvas_amplif3 <- Curvas_amplif2 %>%
  pivot_longer(
    cols = -Ciclos,
    names_to = "Muestras",
    values_to = "Fluorescencias"
  )

Curvas_amplif3
## # A tibble: 93 × 3
##    Ciclos Muestras Fluorescencias
##     <dbl> <chr>             <dbl>
##  1     21 A1                106. 
##  2     21 A2                 44.5
##  3     21 A3                 76.2
##  4     22 A1                126. 
##  5     22 A2                 66.0
##  6     22 A3                108. 
##  7     23 A1                140. 
##  8     23 A2                 90.4
##  9     23 A3                137. 
## 10     24 A1                156. 
## # ℹ 83 more rows
Umbral_ciclos <- 150

Curvas_amplif_grafica <- ggplot(Curvas_amplif3,
  aes(x = Ciclos,
      y = Fluorescencias,
      color = Muestras)) +
  geom_line(linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  theme_classic() +
  labs(title = "Curvas de amplificación Valores Relativos",
       subtitle = "Práctica Final, \nEquipo: LSD, A1",
       caption = "Todas las muestras",
       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(Curvas_amplif3$Ciclos),
                 max(Curvas_amplif3$Ciclos),
                 by = 2)
  ) +
  scale_y_continuous(
    labels = scales::number_format(accuracy = 1),
    breaks = seq(
      min(Curvas_amplif3$Fluorescencias),
      max(Curvas_amplif3$Fluorescencias),
      by = 20
    )
  )

Curvas_amplif_grafica

Grafica_equipos <- ggplot(Curvas_amplif2,
  aes(x = Ciclos,
      y = A1)) +
  geom_line(color = "#6287f1", linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  theme_classic() +
  labs(title = "Curvas de amplificación RT-qPCR",
       subtitle = "Muestra: A1",
       caption = "Diseño: LSD",
       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")
  ) +
  scale_x_continuous(
    breaks = seq(min(Curvas_amplif2$Ciclos),
                 max(Curvas_amplif2$Ciclos),
                 by = 2)
  ) +
  scale_y_continuous(
    labels = scales::number_format(accuracy = 1),
    breaks = seq(
      min(Curvas_amplif2$A1),
      max(Curvas_amplif2$A1),
      by = 20
    )
  )

Grafica_equipos