Instalación de paquetes
if(!require(pacman))
install.packages("pacman") # para que no se estƩ instalando todo el tiempo
## Loading required package: pacman
Llamar a pacman
library("pacman")
Llamar paqueterĆa necesaria
p_load("vroom",
"dplyr",
"ggplot2",
"tidyr",
"ggrepel",
"plotly")
Llamar a base de datos
Melt_curves <- read.csv("https://raw.githubusercontent.com/ManuelLaraMVZ/resultados_PCR_practica/refs/heads/main/Disoci_ejemplo1.csv")
Melt_curves
## Temperature A1 B1 C1 D1 E1
## 1 65.0 1.95991430 1.9817206 2.10924940 2.11421730 0.08690918
## 2 65.5 1.94166150 1.9890553 2.06226230 2.07868460 0.08339536
## 3 66.0 1.89047470 1.9349171 2.03156570 2.07136200 0.09324405
## 4 66.5 1.85573940 1.8907771 1.97575890 2.01712870 0.06762622
## 5 67.0 1.82315300 1.8862886 1.94344440 1.97850380 0.07379662
## 6 67.5 1.76858700 1.8291596 1.89828250 1.93234180 0.07663029
## 7 68.0 1.73530770 1.7794550 1.86295590 1.87147970 0.06855214
## 8 68.5 1.69660070 1.7627124 1.79349590 1.84359900 0.06892930
## 9 69.0 1.65359310 1.7137460 1.79432180 1.80108200 0.06648921
## 10 69.5 1.59794010 1.6409743 1.74891100 1.75890290 0.07442823
## 11 70.0 1.56881860 1.6270256 1.68404650 1.71568160 0.06959379
## 12 70.5 1.52067800 1.5984006 1.64760860 1.69375200 0.06981125
## 13 71.0 1.50554340 1.5452015 1.60377530 1.67523520 0.06965090
## 14 71.5 1.45887430 1.5019381 1.57469770 1.62495900 0.06671238
## 15 72.0 1.42736950 1.4835738 1.52864840 1.56571910 0.07694548
## 16 72.5 1.38052690 1.4535912 1.48963700 1.51790270 0.07068383
## 17 73.0 1.35778510 1.4035882 1.45435580 1.48500080 0.07326801
## 18 73.5 1.31225650 1.3710668 1.41508630 1.43586750 0.07013387
## 19 74.0 1.28151900 1.3353099 1.37324300 1.39817740 0.07751608
## 20 74.5 1.25276060 1.2962568 1.33869020 1.37123980 0.05670674
## 21 75.0 1.19170270 1.2692763 1.29040620 1.33831430 0.07426139
## 22 75.5 1.17707530 1.2318747 1.28598010 1.29690920 0.06299234
## 23 76.0 1.14088600 1.1953775 1.23172620 1.26915030 0.06806605
## 24 76.5 1.10102080 1.1604762 1.18276390 1.22140250 0.06024575
## 25 77.0 1.08004340 1.1369629 1.16464420 1.18488180 0.06781165
## 26 77.5 1.04755620 1.1049975 1.13221480 1.16585640 0.06792766
## 27 78.0 1.02446200 1.0705391 1.09089330 1.13427620 0.06784123
## 28 78.5 0.97937495 1.0336571 1.04647020 1.09842440 0.06248471
## 29 79.0 0.92962420 0.9963106 1.02979040 1.04471660 0.06572264
## 30 79.5 0.88719790 0.9536811 0.96606290 1.00081040 0.06436008
## 31 80.0 0.80395730 0.8963721 0.89044875 0.94807490 0.07229371
## 32 80.5 0.73346520 0.7943460 0.79964320 0.88524190 0.06550592
## 33 81.0 0.58485484 0.6653679 0.66462280 0.79034305 0.06494854
## 34 81.5 0.34847772 0.4386750 0.43019630 0.63313437 0.05818453
## 35 82.0 0.10281600 0.1733983 0.09944984 0.26385185 0.05741638
## 36 82.5 0.06809159 0.1556299 0.06577800 0.12568206 0.06166074
## 37 83.0 0.06620151 0.1480810 0.07425380 0.11033887 0.06796121
## 38 83.5 0.05839354 0.1512575 0.05767015 0.11114920 0.06175677
## 39 84.0 0.06339251 0.1448747 0.06044384 0.10261554 0.06917807
## 40 84.5 0.06858709 0.1414173 0.06308614 0.10054772 0.06024042
## 41 85.0 0.05845202 0.1363287 0.06821634 0.12267121 0.05699976
## 42 85.5 0.06003726 0.1450752 0.06245253 0.10618307 0.06169379
## 43 86.0 0.05907615 0.1377606 0.06725356 0.10404797 0.06278355
## 44 86.5 0.05099247 0.1362107 0.06197858 0.10583051 0.05319569
## 45 87.0 0.05926469 0.1474531 0.06185695 0.10852818 0.07390389
## 46 87.5 0.05091721 0.1506169 0.06453706 0.12259605 0.06097216
## 47 88.0 0.05483197 0.1523574 0.05536877 0.11274529 0.05814572
## 48 88.5 0.04854523 0.1373991 0.05248444 0.11009809 0.06790365
## 49 89.0 0.06085235 0.1458199 0.05889775 0.11495476 0.06388615
## 50 89.5 0.06081519 0.1423826 0.04807428 0.11074489 0.06347746
## 51 90.0 0.04980278 0.1238866 0.05484743 0.11520148 0.05686092
## 52 90.5 0.05777313 0.1376873 0.05039824 0.10385056 0.06707248
## 53 91.0 0.05987923 0.1240075 0.05678585 0.09460852 0.05220089
## 54 91.5 0.07305728 0.1350825 0.06265996 0.10816262 0.05759020
## 55 92.0 0.05198640 0.1591869 0.05669413 0.10521951 0.05834087
Modificar base de datos
Melt_curves2 <- Melt_curves %>%
mutate(Temperatura = Temperature,
DDR = A1,
JRWF = B1,
PPOF = C1,
MLL = D1,
H2O = E1) %>%
select(-Temperature:-E1)
Melt_curves2
## Temperatura DDR JRWF PPOF MLL H2O
## 1 65.0 1.95991430 1.9817206 2.10924940 2.11421730 0.08690918
## 2 65.5 1.94166150 1.9890553 2.06226230 2.07868460 0.08339536
## 3 66.0 1.89047470 1.9349171 2.03156570 2.07136200 0.09324405
## 4 66.5 1.85573940 1.8907771 1.97575890 2.01712870 0.06762622
## 5 67.0 1.82315300 1.8862886 1.94344440 1.97850380 0.07379662
## 6 67.5 1.76858700 1.8291596 1.89828250 1.93234180 0.07663029
## 7 68.0 1.73530770 1.7794550 1.86295590 1.87147970 0.06855214
## 8 68.5 1.69660070 1.7627124 1.79349590 1.84359900 0.06892930
## 9 69.0 1.65359310 1.7137460 1.79432180 1.80108200 0.06648921
## 10 69.5 1.59794010 1.6409743 1.74891100 1.75890290 0.07442823
## 11 70.0 1.56881860 1.6270256 1.68404650 1.71568160 0.06959379
## 12 70.5 1.52067800 1.5984006 1.64760860 1.69375200 0.06981125
## 13 71.0 1.50554340 1.5452015 1.60377530 1.67523520 0.06965090
## 14 71.5 1.45887430 1.5019381 1.57469770 1.62495900 0.06671238
## 15 72.0 1.42736950 1.4835738 1.52864840 1.56571910 0.07694548
## 16 72.5 1.38052690 1.4535912 1.48963700 1.51790270 0.07068383
## 17 73.0 1.35778510 1.4035882 1.45435580 1.48500080 0.07326801
## 18 73.5 1.31225650 1.3710668 1.41508630 1.43586750 0.07013387
## 19 74.0 1.28151900 1.3353099 1.37324300 1.39817740 0.07751608
## 20 74.5 1.25276060 1.2962568 1.33869020 1.37123980 0.05670674
## 21 75.0 1.19170270 1.2692763 1.29040620 1.33831430 0.07426139
## 22 75.5 1.17707530 1.2318747 1.28598010 1.29690920 0.06299234
## 23 76.0 1.14088600 1.1953775 1.23172620 1.26915030 0.06806605
## 24 76.5 1.10102080 1.1604762 1.18276390 1.22140250 0.06024575
## 25 77.0 1.08004340 1.1369629 1.16464420 1.18488180 0.06781165
## 26 77.5 1.04755620 1.1049975 1.13221480 1.16585640 0.06792766
## 27 78.0 1.02446200 1.0705391 1.09089330 1.13427620 0.06784123
## 28 78.5 0.97937495 1.0336571 1.04647020 1.09842440 0.06248471
## 29 79.0 0.92962420 0.9963106 1.02979040 1.04471660 0.06572264
## 30 79.5 0.88719790 0.9536811 0.96606290 1.00081040 0.06436008
## 31 80.0 0.80395730 0.8963721 0.89044875 0.94807490 0.07229371
## 32 80.5 0.73346520 0.7943460 0.79964320 0.88524190 0.06550592
## 33 81.0 0.58485484 0.6653679 0.66462280 0.79034305 0.06494854
## 34 81.5 0.34847772 0.4386750 0.43019630 0.63313437 0.05818453
## 35 82.0 0.10281600 0.1733983 0.09944984 0.26385185 0.05741638
## 36 82.5 0.06809159 0.1556299 0.06577800 0.12568206 0.06166074
## 37 83.0 0.06620151 0.1480810 0.07425380 0.11033887 0.06796121
## 38 83.5 0.05839354 0.1512575 0.05767015 0.11114920 0.06175677
## 39 84.0 0.06339251 0.1448747 0.06044384 0.10261554 0.06917807
## 40 84.5 0.06858709 0.1414173 0.06308614 0.10054772 0.06024042
## 41 85.0 0.05845202 0.1363287 0.06821634 0.12267121 0.05699976
## 42 85.5 0.06003726 0.1450752 0.06245253 0.10618307 0.06169379
## 43 86.0 0.05907615 0.1377606 0.06725356 0.10404797 0.06278355
## 44 86.5 0.05099247 0.1362107 0.06197858 0.10583051 0.05319569
## 45 87.0 0.05926469 0.1474531 0.06185695 0.10852818 0.07390389
## 46 87.5 0.05091721 0.1506169 0.06453706 0.12259605 0.06097216
## 47 88.0 0.05483197 0.1523574 0.05536877 0.11274529 0.05814572
## 48 88.5 0.04854523 0.1373991 0.05248444 0.11009809 0.06790365
## 49 89.0 0.06085235 0.1458199 0.05889775 0.11495476 0.06388615
## 50 89.5 0.06081519 0.1423826 0.04807428 0.11074489 0.06347746
## 51 90.0 0.04980278 0.1238866 0.05484743 0.11520148 0.05686092
## 52 90.5 0.05777313 0.1376873 0.05039824 0.10385056 0.06707248
## 53 91.0 0.05987923 0.1240075 0.05678585 0.09460852 0.05220089
## 54 91.5 0.07305728 0.1350825 0.06265996 0.10816262 0.05759020
## 55 92.0 0.05198640 0.1591869 0.05669413 0.10521951 0.05834087
Agrupar datos
Melt_curves3 <- Melt_curves2 %>%
pivot_longer(cols = -Temperatura,
names_to = "Muestras",
values_to = "Fluorescencias")
Melt_curves3
## # A tibble: 275 Ć 3
## Temperatura Muestras Fluorescencias
## <dbl> <chr> <dbl>
## 1 65 DDR 1.96
## 2 65 JRWF 1.98
## 3 65 PPOF 2.11
## 4 65 MLL 2.11
## 5 65 H2O 0.0869
## 6 65.5 DDR 1.94
## 7 65.5 JRWF 1.99
## 8 65.5 PPOF 2.06
## 9 65.5 MLL 2.08
## 10 65.5 H2O 0.0834
## # ā¹ 265 more rows
Graficar
Grafica_melt <- ggplot(Melt_curves3,
aes(x = Temperatura,
y = Fluorescencias,
color = Muestras)) +
geom_line(linewidth = 1.5) +
theme_classic(base_family = "Times New Roman") +
labs(title = "Curvas de disociación",
subtitle = "Todas las muestras",
caption = "Diseñó: Natalia Oropeza",
x = "Temeperatura (C)",
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_color_brewer(palette = "Set2")
## 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_melt
Calcular las derivadas negativas de las curvas de disociación
Derivadas <- Melt_curves2 %>%
mutate(across(DDR:H2O,
~-c(NA,diff(.x)/diff(Melt_curves2$Temperatura)), .names = "d_{col}")) %>%
select(-DDR:-H2O) %>%
slice(-1) # para eliminar primer fila (NA)
Derivadas
## Temperatura d_DDR d_JRWF d_PPOF d_MLL d_H2O
## 1 65.5 0.036505600 -0.01466940 0.093974200 0.071065400 0.007027630
## 2 66.0 0.102373600 0.10827640 0.061393200 0.014645200 -0.019697380
## 3 66.5 0.069470600 0.08828000 0.111613600 0.108466600 0.051235668
## 4 67.0 0.065172800 0.00897700 0.064629000 0.077249800 -0.012340808
## 5 67.5 0.109132000 0.11425800 0.090323800 0.092324000 -0.005667348
## 6 68.0 0.066558600 0.09940920 0.070653200 0.121724200 0.016156308
## 7 68.5 0.077414000 0.03348520 0.138920000 0.055761400 -0.000754320
## 8 69.0 0.086015200 0.09793280 -0.001651800 0.085034000 0.004880180
## 9 69.5 0.111306000 0.14554340 0.090821600 0.084358200 -0.015878040
## 10 70.0 0.058243000 0.02789740 0.129729000 0.086442600 0.009668880
## 11 70.5 0.096281200 0.05725000 0.072875800 0.043859200 -0.000434920
## 12 71.0 0.030269200 0.10639820 0.087666600 0.037033600 0.000320700
## 13 71.5 0.093338200 0.08652680 0.058155200 0.100552400 0.005877040
## 14 72.0 0.063009600 0.03672860 0.092098600 0.118479800 -0.020466192
## 15 72.5 0.093685200 0.05996520 0.078022800 0.095632800 0.012523292
## 16 73.0 0.045483600 0.10000600 0.070562400 0.065803800 -0.005168360
## 17 73.5 0.091057200 0.06504280 0.078539000 0.098266600 0.006268280
## 18 74.0 0.061475000 0.07151380 0.083686600 0.075380200 -0.014764420
## 19 74.5 0.057516800 0.07810620 0.069105600 0.053875200 0.041618684
## 20 75.0 0.122115800 0.05396100 0.096568000 0.065851000 -0.035109304
## 21 75.5 0.029254800 0.07480320 0.008852200 0.082810200 0.022538100
## 22 76.0 0.072378600 0.07299440 0.108507800 0.055517800 -0.010147412
## 23 76.5 0.079730400 0.06980260 0.097924600 0.095495600 0.015640602
## 24 77.0 0.041954800 0.04702660 0.036239400 0.073041400 -0.015131802
## 25 77.5 0.064974400 0.06393080 0.064858800 0.038050800 -0.000232028
## 26 78.0 0.046188400 0.06891680 0.082643000 0.063160400 0.000172860
## 27 78.5 0.090174100 0.07376400 0.088846200 0.071703600 0.010713040
## 28 79.0 0.099501500 0.07469300 0.033359600 0.107415600 -0.006475860
## 29 79.5 0.084852600 0.08525900 0.127455000 0.087812400 0.002725120
## 30 80.0 0.166481200 0.11461792 0.151228300 0.105471000 -0.015867260
## 31 80.5 0.140984200 0.20405222 0.181611100 0.125666000 0.013575580
## 32 81.0 0.297220720 0.25795626 0.270040800 0.189797700 0.001114760
## 33 81.5 0.472754240 0.45338576 0.468853000 0.314417360 0.013528026
## 34 82.0 0.491323440 0.53055352 0.661492920 0.738565040 0.001536288
## 35 82.5 0.069448828 0.03553678 0.067343690 0.276339580 -0.008488722
## 36 83.0 0.003780152 0.01509770 -0.016951610 0.030686380 -0.012600932
## 37 83.5 0.015615930 -0.00635296 0.033167308 -0.001620660 0.012408880
## 38 84.0 -0.009997920 0.01276560 -0.005547388 0.017067320 -0.014842600
## 39 84.5 -0.010389170 0.00691472 -0.005284610 0.004135648 0.017875300
## 40 85.0 0.020270144 0.01017732 -0.010260390 -0.044246988 0.006481324
## 41 85.5 -0.003170484 -0.01749302 0.011527630 0.032976272 -0.009388064
## 42 86.0 0.001922220 0.01462926 -0.009602070 0.004270208 -0.002179520
## 43 86.5 0.016167366 0.00309968 0.010549960 -0.003565080 0.019175720
## 44 87.0 -0.016544438 -0.02248466 0.000243250 -0.005395340 -0.041416400
## 45 87.5 0.016694948 -0.00632764 -0.005360202 -0.028135740 0.025863464
## 46 88.0 -0.007829516 -0.00348112 0.018336564 0.019701520 0.005652868
## 47 88.5 0.012573488 0.02991656 0.005768668 0.005294392 -0.019515852
## 48 89.0 -0.024614238 -0.01684142 -0.012826624 -0.009713332 0.008035000
## 49 89.5 0.000074310 0.00687444 0.021646938 0.008419748 0.000817380
## 50 90.0 0.022024812 0.03699217 -0.013546302 -0.008913188 0.013233080
## 51 90.5 -0.015940692 -0.02760145 0.008898392 0.022701840 -0.020423120
## 52 91.0 -0.004212190 0.02735946 -0.012775224 0.018484088 0.029743180
## 53 91.5 -0.026356110 -0.02214996 -0.011748228 -0.027108208 -0.010778630
## 54 92.0 0.042141768 -0.04820880 0.011931672 0.005886228 -0.001501322
Reordenar los datos
Derivadas2 <- Derivadas %>%
pivot_longer(cols = -Temperatura,
names_to = "Muestras",
values_to = "Derivadas")
Derivadas2
## # A tibble: 270 Ć 3
## Temperatura Muestras Derivadas
## <dbl> <chr> <dbl>
## 1 65.5 d_DDR 0.0365
## 2 65.5 d_JRWF -0.0147
## 3 65.5 d_PPOF 0.0940
## 4 65.5 d_MLL 0.0711
## 5 65.5 d_H2O 0.00703
## 6 66 d_DDR 0.102
## 7 66 d_JRWF 0.108
## 8 66 d_PPOF 0.0614
## 9 66 d_MLL 0.0146
## 10 66 d_H2O -0.0197
## # ā¹ 260 more rows
Graficar Derivadas
library(ggplot2)
Grafica_derivada <- ggplot(Derivadas2,
aes(x = Temperatura,
y = Derivadas,
color = Muestras)) +
geom_line(linewidth = 1.5) +
theme_classic(base_family = "Times New Roman") +
labs(title = "Curvas de la derivada negativa de disociación",
subtitle = "Todas las muestras",
caption = "Diseñó: Natalia Oropeza",
x = "Temperatura (°C)",
y = expression(-Delta*F / Delta*T)) +
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")) +
# Escala del eje x de 2.5 en 2.5
scale_x_continuous(breaks = seq(min(Derivadas2$Temperatura),
max(Derivadas2$Temperatura),
by = 2.5)) +
scale_color_brewer(palette = "Set2")
Grafica_derivada
Construir una grƔfica 3D
Grafica_derivada_3D <- plot_ly(Derivadas2,
x = ~Temperatura,
y = ~Muestras,
z = ~Derivadas,
color = ~factor(Muestras),
type = "scatter3d",
mode = "lines",
line = list(width = 6)) %>%
layout(
title = list(
text = "Curvas de la derivada negativa de disociación<br>
<sup>Todas las muestras</sup><br>
<sup>Diseñó: Natalia Oropeza</sup>",
font = list(family = "Times New Roman", size = 20)
),
scene = list(
xaxis = list(
title = "Temperatura (°C)",
tick0 = min(Derivadas2$Temperatura),
dtick = 2.5, # eje X de 2.5 en 2.5
titlefont = list(family = "Times New Roman", size = 16),
tickfont = list(family = "Times New Roman", size = 14)
),
yaxis = list(
title = "Muestras",
titlefont = list(family = "Times New Roman", size = 16),
tickfont = list(family = "Times New Roman", size = 14)
),
zaxis = list(
title = "- ĪT / ĪF", # aquĆ el cambio solicitado
titlefont = list(family = "Times New Roman", size = 16),
tickfont = list(family = "Times New Roman", size = 14)
)
)
)
Grafica_derivada_3D
Grafica del equipo
Grafica_derivada_equipo <- ggplot(Derivadas,
aes(x = Temperatura)) +
geom_line(data = Derivadas,
aes(x = Temperatura, y = d_MLL, color = "MLL"),
linewidth = 1.2) +
geom_line(data = Derivadas,
aes(x = Temperatura, y = d_H2O, color = "H2O"),
linewidth = 1.2) +
scale_color_manual(values = c("MLL" = "#8E8FAD",
"H2O" = "#89AD91")) +
labs(title = "Curvas de la derivada negativa de disociación",
subtitle = "Todas las muestras",
caption = "Diseñó: Natalia Oropeza",
x = "Temperatura (°C)",
y = expression(-Delta*T / Delta*F)) +
theme_classic(base_family = "Times New Roman") +
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(Derivadas$Temperatura),
max(Derivadas$Temperatura),
by = 2.5))
Grafica_derivada_equipo
Etiquetas (saber valor exacto de Tm)
Pico <- max(Derivadas$d_MLL)
Pico
## [1] 0.738565
Temperatura
Tm <- Derivadas %>%
filter(d_MLL == Pico) %>%
select(Temperatura, d_MLL)
Tm
## Temperatura d_MLL
## 1 82 0.738565
GrƔfica con etiqueta
Grafica_derivada_equipo2 <- Grafica_derivada_equipo +
geom_vline(xintercept = Tm$Temperatura,
color = "#C23EBF",
linetype = "dashed",
linewidth = 1) +
geom_label_repel(data = Tm,
aes(x = Tm$Temperatura,
y = d_MLL,
label = paste("Tm =", Tm$Temperatura)),
family = "Times New Roman",
fontface = "bold",
color = "black",
fill = "#EADAF1", # color de fondo del rectƔngulo
label.r = unit(0.25, "lines")) # esquinas redondeadas
Grafica_derivada_equipo2
## Warning: Use of `Tm$Temperatura` is discouraged.
## ā¹ Use `Temperatura` instead.
## Use of `Tm$Temperatura` is discouraged.
## ā¹ Use `Temperatura` instead.