Ctrl+Alt+I / Cmd+Opt+I

Intalación de paquetes

Pacman: llama a otros paquetes y si no están los instala

if(!require(pacman))
  install.packages("pacman")
## Cargando paquete requerido: pacman
## Warning: package 'pacman' was built under R version 4.4.3

Llamar a pacman

library("pacman")

Llamar paqueteria necesaria

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

Llamar a base de datos

Curvas_amplif <- vroom(file = "https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Amplif_grupo2_17022025.csv")
## Rows: 40 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (7): Cycle, A1, B1, C1, D1, E1, H1
## 
## ℹ 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: 40 × 7
##    Cycle       A1     B1      C1      D1      E1      H1
##    <dbl>    <dbl>  <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
##  1     1 -131.    -27.4  -23.5   -60.7   -20.0   -105.  
##  2     2  -48.7     1.20  -3.27  -15.1     1.76   -30.5 
##  3     3  -26.4    10.3    0.816  -6.85    6.51     2.07
##  4     4  -11.2    11.9    2.67    6.87    6.96    19.1 
##  5     5   -5.55   13.1    0.968   7.74    5.78    19.0 
##  6     6   -3.14   12.6    4.07   -0.518   1.02    13.7 
##  7     7   -0.668  14.3    6.72    3.76    5.36    10.2 
##  8     8   -4.14   17.8    3.89   -0.213   0.737    4.11
##  9     9   -6.77   14.0   -5.40    1.87   -0.664    4.03
## 10    10   -0.178  16.1    0.103  -1.38   -4.51     5.09
## # ℹ 30 more rows

Modificar base de datos

Curvas_amplif2 <- Curvas_amplif %>% #Ctrl/Cmnd+Shift+M
  mutate(Ciclos = Cycle, Manuel = A1, Regina = B1, Marian = C1, Ricardo = D1, Neto = E1, Johan = H1) %>% 
  select(-Cycle:-H1) %>% 
  filter(Ciclos >=17)
Curvas_amplif2
## # A tibble: 24 × 7
##    Ciclos Manuel Regina Marian Ricardo  Neto  Johan
##     <dbl>  <dbl>  <dbl>  <dbl>   <dbl> <dbl>  <dbl>
##  1     17   3.05   33.9   45.0    15.5 -6.40  -2.47
##  2     18  -1.90   49.6   82.2    31.1 -6.78  -4.23
##  3     19  -4.91   84.6  151.     56.1 -7.36  -9.54
##  4     20  -6.37  118.   241.     92.6 -4.65 -13.1 
##  5     21  -8.76  172.   413.    174.  -5.39 -10.6 
##  6     22  -4.11  232.   623.    265.  -7.50 -12.7 
##  7     23   2.24  301.   886.    391.  -7.09 -11.2 
##  8     24  -2.40  372.  1180.    526.  -7.93 -22.4 
##  9     25  -1.74  448.  1483.    675.  -1.24 -15.7 
## 10     26   2.70  519.  1771.    831.   4.20 -22.0 
## # ℹ 14 more rows

Reordenamiento de datos

  1. Seleccionar los datos a reordenar (variables dependientes).

  2. Agruparé todas variables por nombre.

  3. Agruparé todas las variables por ciclo.

    Curvas_amplif3 <- Curvas_amplif2 %>% 
      pivot_longer(cols = -Ciclos,
                   names_to = "Muestras",
                   values_to = "Flourescencias")
    
    Curvas_amplif3
    ## # A tibble: 144 × 3
    ##    Ciclos Muestras Flourescencias
    ##     <dbl> <chr>             <dbl>
    ##  1     17 Manuel             3.05
    ##  2     17 Regina            33.9 
    ##  3     17 Marian            45.0 
    ##  4     17 Ricardo           15.5 
    ##  5     17 Neto              -6.40
    ##  6     17 Johan             -2.47
    ##  7     18 Manuel            -1.90
    ##  8     18 Regina            49.6 
    ##  9     18 Marian            82.2 
    ## 10     18 Ricardo           31.1 
    ## # ℹ 134 more rows

Gráfica

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

Grafica_amplif

Mejorar la gráfica

Umbral_ciclos <- 0.008

Grafica_amplif2 <- Grafica_amplif +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845")+
  theme_classic()+
  labs(title = "Curvas de amplificación RT-qPCR", 
       subtitle = "Bazo",
       caption = "Diseño Johan Medina",
       x = "Cilos",
       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(breaks = seq(min(Curvas_amplif3$Flourescencias), 
                                  max(Curvas_amplif3$Flourescencias),
                                  by = 200),
                     labels = scales::number_format(accuracy = 0.02))
## 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

Grafica de los datos del equipo

Grafica_amplif_equipo <- ggplot(Curvas_amplif2, aes(x = Ciclos)) +
  geom_line(aes(y = Johan, color = "Johan"), linewidth = 1.5) +
  geom_line(aes(y = Manuel, color = "Manuel"), linewidth = 1.5) +
  geom_hline(yintercept = Umbral_ciclos, linetype = "dashed", color = "#581845") +
  scale_color_manual(values = c("Johan" = "#f03d04", "Manuel" = "#074fff")) +
  theme_classic() +
  labs(title = "Curvas de amplificación RT-qPCR", 
       subtitle = "Bazo",
       caption = "Diseñó: Johan Medina",
       x = "Ciclos",
       y = "Fluorescencia (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 = 2)) +
  scale_y_continuous(breaks = seq(min(Curvas_amplif2$Johan), 
                                  max(Curvas_amplif2$Johan),
                                  by = 200),
                     labels = scales::number_format(accuracy = 0.02))

Grafica_amplif_equipo