Ejercicio R de PCR Los Chunks los obtengo con :Ctrl+Alt+I/Cmd+Opt+I, #ctrl shift m para el simbolo %>% Paquetería

if (!require(pacman)) install.packages("pacman", dependencies = T)
## Cargando paquete requerido: pacman
library(pacman)
p_load("vroom",
       "dplyr",
       "ggplot2",
       "ggrepel",
       "tidyr")

Llamar base de datos

Curvas_amplif <- vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Ejemplo_amplificacion_RT-PCR.csv")
## Rows: 35 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (6): Cycle, A1, B1, C1, D1, E1
## 
## ℹ 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: 35 × 6
##    Cycle         A1         B1         C1        D1         E1
##    <dbl>      <dbl>      <dbl>      <dbl>     <dbl>      <dbl>
##  1     1  0.0000213 -0.00531    0.0000279  0.000519  0.000468 
##  2     2 -0.0000305 -0.00286    0.00179    0.000301  0.000462 
##  3     3 -0.0000823 -0.00136   -0.000335   0.000842  0.0000266
##  4     4 -0.0000536 -0.00101    0.00166    0.000522 -0.000943 
##  5     5 -0.0000565 -0.000787   0.000199   0.000586  0.0000877
##  6     6  0.000111  -0.000233   0.00231    0.000451  0.00076  
##  7     7  0.000096   0.0000674 -0.000511  -0.00112  -0.000618 
##  8     8  0.0000698  0.000602  -0.000595  -0.000944  0.00108  
##  9     9  0.000202   0.00143    0.000166   0.000342 -0.000105 
## 10    10 -0.00001    0.00101   -0.00136   -0.000254  0.00102  
## # ℹ 25 more rows
Curvas_amplif2 <- Curvas_amplif %>% 
  mutate(Ciclos = Cycle, JFRW = A1, JRL = B1, PPOF = C1, MLL = D1, AALE = E1) %>% 
  select(-1:-6) %>% 
  filter(Ciclos >= 21)
  

Curvas_amplif2
## # A tibble: 15 × 6
##    Ciclos       JFRW        JRL     PPOF       MLL      AALE
##     <dbl>      <dbl>      <dbl>    <dbl>     <dbl>     <dbl>
##  1     21 -0.000119   0.00104   0.000464  0.000245 -0.000417
##  2     22 -0.0000153  0.00028   0.0032   -0.00081   0.00158 
##  3     23  0.0000704 -0.000086  0.00494   0.00162   0.000497
##  4     24  0.00012   -0.000238  0.0144    0.00139   0.00121 
##  5     25 -0.0000899 -0.000484  0.0263    0.00634   0.00425 
##  6     26  0.0000114 -0.00133   0.0491    0.0101    0.00894 
##  7     27 -0.000104  -0.000824  0.0763    0.0202    0.0202  
##  8     28 -0.000101  -0.000922  0.105     0.0365    0.0353  
##  9     29 -0.000222  -0.000938  0.134     0.0624    0.0594  
## 10     30 -0.0000675 -0.000187  0.162     0.0895    0.0823  
## 11     31 -0.000089  -0.0000371 0.191     0.114     0.107   
## 12     32 -0.000188   0.0018    0.220     0.141     0.128   
## 13     33 -0.0000273  0.00345   0.243     0.170     0.152   
## 14     34  0.000358   0.00615   0.268     0.197     0.173   
## 15     35  0.000345   0.00913   0.293     0.223     0.192
Curvas_amplif3 <- Curvas_amplif2 %>% 
  pivot_longer(cols = -Ciclos,
               names_to = "Muestras",
               values_to = "Fluorescencias")

Curvas_amplif3
## # A tibble: 75 × 3
##    Ciclos Muestras Fluorescencias
##     <dbl> <chr>             <dbl>
##  1     21 JFRW         -0.000119 
##  2     21 JRL           0.00104  
##  3     21 PPOF          0.000464 
##  4     21 MLL           0.000245 
##  5     21 AALE         -0.000417 
##  6     22 JFRW         -0.0000153
##  7     22 JRL           0.00028  
##  8     22 PPOF          0.0032   
##  9     22 MLL          -0.00081  
## 10     22 AALE          0.00158  
## # ℹ 65 more rows
Umbral_ciclos <- 0.08

Curvas_amplif_grafica <- ggplot(Curvas_amplif3,
                                aes(x = Ciclos,
                                    y = Fluorescencias,
                                    color = Muestras)) +
  geom_line(size = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  theme_classic() +
  labs(title = "Curvas de amplificación RT-qPCR",
       subtitle = "Práctica 1, \nEquipo: MLL",
       caption = "Todas las muestras",
       x = "Ciclos",
       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")) +
  scale_x_continuous(breaks = seq(min(Curvas_amplif3$Ciclos), max(Curvas_amplif3$Ciclos), by = 2))+
  scale_y_continuous(labels = scales::number_format(accuracy = 0.05),
                     breaks = seq(min(Curvas_amplif3$Fluorescencias), max(Curvas_amplif3$Fluorescencias), by = 0.05))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## 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.
Curvas_amplif_grafica

Grafica_equipos <- ggplot(Curvas_amplif2,
                          mapping = aes(x= Ciclos,
                                        y = MLL))+
  geom_line(color ="#6287f1", size = 1.5)+
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  theme_classic() +
  labs(title = "Curvas de amplificación RT-qPCR",
       subtitle = "Muestra MLL",
       caption = "Diseñó: Ian Atzin Gonzalez Islas",
       x = "Ciclos",
       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")) +
  scale_x_continuous(breaks = seq(min(Curvas_amplif3$Ciclos), max(Curvas_amplif3$Ciclos), by = 2))+
  scale_y_continuous(labels = scales::number_format(accuracy = 0.05),
                     breaks = seq(min(Curvas_amplif3$Fluorescencias), max(Curvas_amplif3$Fluorescencias), by = 0.05))

Grafica_equipos