if(! require(pacman))
  install.packages("pacman")
## Loading required package: pacman
library("pacman")
p_load("vroom",
       "dplyr",
      "ggplot2",
      "tidyr")
Curvas_amplif <- vroom(file="https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Amplif_grupo1_24022025.csv")
## Rows: 51 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (9): Cycle, A1, B1, C1, D1, E1, F1, G1, Manuel
## 
## ℹ 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 × 9
##    Cycle     A1     B1     C1     D1      E1     F1      G1 Manuel
##    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>   <dbl>  <dbl>   <dbl>  <dbl>
##  1     1 -732.  -450.  -50.4  -30.1  -109.   -10.7  -5.87   -37.4 
##  2     2 -402.  -237.  -20.8   15.9   -80.6  -10.4  -8.17     1.12
##  3     3 -294.  -171.  -14.1   11.9   -71.2   -7.35 -5.06     7.85
##  4     4 -322.  -143.    8.14  13.6   -60.4   -6.83 -3.26    15.0 
##  5     5 -300.  -100.   12.1    5.93  -54.7   -3.67 -3.51     8.92
##  6     6 -277.   -84.8  17.0   14.6   -41.4    1.04  0.0908   6.62
##  7     7 -232.   -78.9  14.0   10.8   -31.2   -2.24 -2.85    -4.64
##  8     8 -197.   -61.4  14.8   13.6   -23.1    3.22  4.79    -2.66
##  9     9 -143.   -39.9  11.0   10.4   -13.4    4.09  2.17    -4.38
## 10    10  -95.6  -12.9   3.21   8.78   -2.80   2.80 -0.0460  28.3 
## # ℹ 41 more rows

Modificar base de datos

Curvas_amplif2 <- Curvas_amplif %>%
mutate(Ciclos = Cycle,
PPDA = A1,
ZARX = B1,
F2S2 = C1,
LANS = D1,
NEGATIVO = E1,
D2MI = F1,
CONTROL = Manuel) %>%
select(-Cycle:-Manuel) %>%
filter(Ciclos >=10)
Curvas_amplif2
## # A tibble: 42 × 8
##    Ciclos   PPDA   ZARX   F2S2    LANS NEGATIVO   D2MI CONTROL
##     <dbl>  <dbl>  <dbl>  <dbl>   <dbl>    <dbl>  <dbl>   <dbl>
##  1     10 -95.6  -12.9    3.21   8.78    -2.80   2.80     28.3
##  2     11 -78.1  -13.1    2.47   1.01     0.325  0.486    97.9
##  3     12 -35.1   -1.24  -3.91   2.81     9.72   1.88    242. 
##  4     13 -44.5    1.21   7.42  -0.884   13.2   -5.39    523. 
##  5     14   4.89  11.1   28.0    7.84    21.5   -0.898  1007. 
##  6     15  16.6   11.7   57.1   16.4     26.2    0.640  1841. 
##  7     16  47.7   32.4  126.    35.2     36.0   -0.979  2762. 
##  8     17  70.9   30.9  260.    71.9     50.0    5.15   3736. 
##  9     18 106.    22.7  497.   143.      51.2    1.37   4655. 
## 10     19 128.    40.8  880.   274.      60.5   -2.22   5483. 
## # ℹ 32 more rows

Reordenamiento de datos

Curvas_amplif3 <- Curvas_amplif2 %>%
pivot_longer(cols =-Ciclos,
names_to = "Muestras",
values_to = "Fluorescencias")

Curvas_amplif3
## # A tibble: 294 × 3
##    Ciclos Muestras Fluorescencias
##     <dbl> <chr>             <dbl>
##  1     10 PPDA             -95.6 
##  2     10 ZARX             -12.9 
##  3     10 F2S2               3.21
##  4     10 LANS               8.78
##  5     10 NEGATIVO          -2.80
##  6     10 D2MI               2.80
##  7     10 CONTROL           28.3 
##  8     11 PPDA             -78.1 
##  9     11 ZARX             -13.1 
## 10     11 F2S2               2.47
## # ℹ 284 more rows

Gráfica

Grafica_amplif <- ggplot(data = Curvas_amplif3,
mapping = aes(x = Ciclos,
y = Fluorescencias,
color = Muestras))+
geom_line(linewidth = 1.5)
Grafica_amplif

Mejorar la gráfica

Umbral_ciclos <-20
Grafica_amplif2 <- Grafica_amplif+
geom_hline(yintercept= Umbral_ciclos,linetype = "dashed", color = "#721543")+
theme_classic()+
labs(title = "Curvas de amplificación RT-qPCR",
subtitle = "Todas las muestras",
caption = "Diseñaron:Deni, Diego, Isa y Mony",
x = "Ciclos",
y = "Fluorescencias (u.a.)")+
theme(axis.line = element_line(size = 1.5, 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 = 10))+
scale_y_continuous(breaks = seq(min(Curvas_amplif3$Fluorescencias),
max(Curvas_amplif3$Fluorescencias),
by = 2000),
labels = scales::number_format(accuracy =2000))
## 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 every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafica_amplif2

Gráfica de los datos del equipo

Grafica_amplif_equipo <- ggplot(Curvas_amplif2, aes(x = Ciclos)) +
  # Primer línea (Curva Amplificación)
  geom_line(aes(y = D2MI, color = "Curva Amplificación"), linewidth = 1.5) +
  
  # Línea horizontal (Umbral)
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#721543", aes(color = "Umbral")) +
  
  # Segunda línea (Control)
  geom_line(aes(y = CONTROL, color = "Control"), linewidth = 1.5) +
  
  theme_classic() +
  labs(title = "Curvas de amplificación RT-qPCR",
       subtitle = "Todas las muestras",
       caption = "Diseñaron:Deni, Diego, Isa y Mony",
       x = "Ciclos",
       y = "Fluorescencias (u.a.)",
       color = "Muestras") +  # Título de la leyenda
  
  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_amplif2$Ciclos),
                                  max(Curvas_amplif2$Ciclos),
                                  by = 10)) +
  
  scale_y_continuous(breaks = seq(min(Curvas_amplif2$D2MI),
                                  max(Curvas_amplif2$D2MI),
                                  by = 2000),
                     labels = scales::number_format(accuracy = 2000)) +

  scale_color_manual(values = c("Curva Amplificación" = "#fca1ce",  # Color de la primera línea
                                "Umbral" = "#721543",  # Color de la línea horizontal (Umbral)
                                "Control" = "#dfa1fc"))  # Color de la segunda línea (Control)
## Warning: `geom_hline()`: Ignoring `mapping` because `yintercept` was provided.
# Mostrar la gráfica
print(Grafica_amplif_equipo)