En este documento se presentan los resultados de la evaluación del efecto del número de extracciones consecutivas en el porcentaje relativo de compuestos fenólicos extraídos por una solución de agua:metanol:ácido acético 50:50:0.5. El seguimiento de la extracción se realiza mediante espectrofotometría a 280, 325, 355 y 515 nm.
Para analizar los resultados, se emplean cuatro tablas. Cada tabla corresponde a las lecturas de las seis extracciones por triplicado, a cada una de las longitudes de onda. De esta manera cada tabla tendrá 18 filas, que corresponden a 18 unidades experimentales (6 extracciones consecutivas por triplicado).
Para esta prueba preliminar se emplea como control analítico la lectura del solvente de extracción, una solución de agua:metanol:ácido acético 50:50:0.5. Las lecturas para el blanco son:
BK280 <- 0.065
BK325 <- 0.023
BK355 <- 0.015
BK515 <- 0
Primero creamos un vector con la identificación de cada uno de los ítems de ensayo. Ya que se realizan triplicados experimentales, cada tres elementos tendrán la misma identificación para posteriormente evaluar la distribución de los resultados, presentando de esta manera una imagen más representativa de la naturaleza de los resultados.
identidadesFruto <- c(rep('F1',3),
rep('F2',3),
rep('F3',3),
rep('F4',3),
rep('F5',3),
rep('F6',3)
)
Posteriormente se ingresan los resultados de absorbancia obtenidos para cada extracto, junto con los correspondientes factores de dilución.
absorbanciasFruto280 <- c(0.479,0.465,0.414,0.584,0.480,0.523,0.151,0.128,0.523,0.473,0.209,0.181,0.292,0.387,0.302,0.253,0.213,0.549)
FD<- c(100,100,100,10,10,10,10,25,10,1,10,10,1,1,1,1,1,1)
Una vez tenemos los datos experimentales podemos crear la tabla correspondiente a las lecturas a 280 nm:
df280 <- data.frame(ID = identidadesFruto,
AbsRaw = absorbanciasFruto280,
FD = FD,
AbsZero = absorbanciasFruto280-BK280,
Abs.FD = (absorbanciasFruto280-BK280)*FD,
PercExt = rep(1,18),
PercExtCum = rep(1,18))
knitr::kable(df280)
| ID | AbsRaw | FD | AbsZero | Abs.FD | PercExt | PercExtCum |
|---|---|---|---|---|---|---|
| F1 | 0.479 | 100 | 0.414 | 41.400 | 1 | 1 |
| F1 | 0.465 | 100 | 0.400 | 40.000 | 1 | 1 |
| F1 | 0.414 | 100 | 0.349 | 34.900 | 1 | 1 |
| F2 | 0.584 | 10 | 0.519 | 5.190 | 1 | 1 |
| F2 | 0.480 | 10 | 0.415 | 4.150 | 1 | 1 |
| F2 | 0.523 | 10 | 0.458 | 4.580 | 1 | 1 |
| F3 | 0.151 | 10 | 0.086 | 0.860 | 1 | 1 |
| F3 | 0.128 | 25 | 0.063 | 1.575 | 1 | 1 |
| F3 | 0.523 | 10 | 0.458 | 4.580 | 1 | 1 |
| F4 | 0.473 | 1 | 0.408 | 0.408 | 1 | 1 |
| F4 | 0.209 | 10 | 0.144 | 1.440 | 1 | 1 |
| F4 | 0.181 | 10 | 0.116 | 1.160 | 1 | 1 |
| F5 | 0.292 | 1 | 0.227 | 0.227 | 1 | 1 |
| F5 | 0.387 | 1 | 0.322 | 0.322 | 1 | 1 |
| F5 | 0.302 | 1 | 0.237 | 0.237 | 1 | 1 |
| F6 | 0.253 | 1 | 0.188 | 0.188 | 1 | 1 |
| F6 | 0.213 | 1 | 0.148 | 0.148 | 1 | 1 |
| F6 | 0.549 | 1 | 0.484 | 0.484 | 1 | 1 |
Ahora creamos variables para iterar a lo largo de operaciones repetitivas. Por ejemplo la primera réplica de extracción tiene seis extracciones, estas extracciones están en la primera posición de cada triada de resultados, entonces, la primera extracción de la primera réplica estará en la posición 1. La segunda extracción de la primera réplica en la posición 4. Para organizar los datos de esta manera podemos usar la serie \(3n-2\) :
e <- 1:6
a <- (3*e)-2
b <- a + 1
c <- b + 1
a
## [1] 1 4 7 10 13 16
b
## [1] 2 5 8 11 14 17
c
## [1] 3 6 9 12 15 18
En el siguiente ciclo calculamos el porcentaje de absorbancia en cada extracción respecto al total de las seis extracciones, para cada réplica:
list <- list(a,b,c)
for(j in 1:3){
df280$PercExt[list[[j]]] <- round((df280$Abs.FD[list[[j]]]*100)/sum(df280$Abs.FD[list[[j]]]) ,1)
}
Tenemos entonces en las primeras tres posiciones el porcentaje de absorbancia relativa en la primera extracción para las tres réplicas:
df280$PercExt[1:3]
## [1] 85.8 84.0 76.0
En general para todos los extractos a 280nm:
df280$PercExt
## [1] 85.8 84.0 76.0 10.8 8.7 10.0 1.8 3.3 10.0 0.8 3.0 2.5 0.5 0.7 0.5
## [16] 0.4 0.3 1.1
Una vez se calcula el porcentaje relativo de absorbancia para cada extracción, se puede calcular el acumulado en cada extracción para facilitar la interpretación de los resultados:
for(j in 1:3){
for(i in 1:6){
df280$PercExtCum[list[[j]][i]] <- round(sum(df280$PercExt[list[[j]][1:i]]),1)
}
}
df280$PercExtCum[a]
## [1] 85.8 96.6 98.4 99.2 99.7 100.1
Tener la información de los triplicados nos permite evaluar tanto el efecto del número de extracciones consecutivas en el porcentaje relativo de extracción, como la dispersión de los resultados de manera simultanea.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(df280,
aes(x=ID,
y=PercExtCum,
fill=ID)) +
geom_boxplot(width=0.1,
alpha=0.5) +
geom_hline(yintercept = 95) +
labs(title=" ",
x="# de extracciones",
y = expression('% Abs'[280]))+
scale_fill_brewer(palette="Blues",direction=-1)+
theme_light()
Una vez se tiene listo el procedimiento propuesto, se puede repetir para las otras tres longitudes de onda:
absorbanciasFruto325 <- c(0.442,0.210,0.380,0.440,0.397,0.415,0.066,0.051,0.185,0.217,0.089,0.087,0.118,0.160,0.128,0.092,0.090,0.169)
df325 <- data.frame(ID = identidadesFruto,
AbsRaw = absorbanciasFruto325,
FD = FD,
AbsZero = absorbanciasFruto325-BK325,
Abs.FD = (absorbanciasFruto325-BK325)*FD,
PercExt = rep(1,18))
list <- list(a,b,c)
for(j in 1:3){
df325$PercExt[list[[j]]] <- round((df325$Abs.FD[list[[j]]]*100)/sum(df325$Abs.FD[list[[j]]]) ,1)
}
for(j in 1:3){
for(i in 1:6){
df325$PercExtCum[list[[j]][i]] <- round(sum(df325$PercExt[list[[j]][1:i]]),1)
}
}
absorbanciasFruto355 <- c(0.210,0.209,0.178,0.440,0.201,0.415,0.030,0.025,0.098,0.132,0.060,0.062,0.082, 0.103,0.086,0.064,0.062,0.110)
df355 <- data.frame(ID = identidadesFruto,
AbsRaw = absorbanciasFruto355,
FD = FD,
AbsZero = absorbanciasFruto355-BK355,
Abs.FD = (absorbanciasFruto355-BK355)*FD,
PercExt = rep(1,18))
list <- list(a,b,c)
for(j in 1:3){
df355$PercExt[list[[j]]] <- round((df355$Abs.FD[list[[j]]]*100)/sum(df355$Abs.FD[list[[j]]]) ,1)
}
for(j in 1:3){
for(i in 1:6){
df355$PercExtCum[list[[j]][i]] <- round(sum(df355$PercExt[list[[j]][1:i]]),1)
}
}
absorbanciasFruto515 <- c(0.625,0.944,0.528,0.280,0.690,0.757,0.965,0.440,0.133,0.010,0.076,0.113,0,0,0,0,0,0)
FD515 <- c(10,1.725/0.254,1.124/0.090,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1)
df515 <- data.frame(ID = identidadesFruto,
AbsRaw = absorbanciasFruto515,
FD = FD,
AbsZero = absorbanciasFruto515-BK515,
Abs.FD = (absorbanciasFruto515-BK515)*FD515,
PercExt = rep(1,18))
list <- list(a,b,c)
for(j in 1:3){
df515$PercExt[list[[j]]] <- round((df515$Abs.FD[list[[j]]]*100)/sum(df515$Abs.FD[list[[j]]]) ,1)
}
for(j in 1:3){
for(i in 1:6){
df515$PercExtCum[list[[j]][i]] <- round(sum(df515$PercExt[list[[j]][1:i]]),1)
}
}
Finalmente podemos reunir los resultados en un solo gráfico:
library(ggplot2)
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.2.3
dp280 <- ggplot(df280,
aes(x=ID,
y=PercExtCum,
fill=ID)) +
geom_boxplot(width=0.1,
alpha=0.5) +
geom_hline(yintercept = 95) +
labs(title=" ",
x="# de extracciones",
y = expression('% Abs'[280]))+
scale_fill_brewer(palette="Blues",direction=-1)+
theme_light()
dp325 <- ggplot(df325,
aes(x=ID,
y=PercExtCum,
fill=ID)) +
geom_boxplot(width=0.1,
alpha=0.5) +
geom_hline(yintercept = 95) +
labs(title=" ",
x="# de extracciones",
y = expression('% Abs'[325]))+
scale_fill_brewer(palette="Reds",direction=-1)+
theme_light()
dp355 <- ggplot(df355,
aes(x=ID,
y=PercExtCum,
fill=ID)) +
geom_boxplot(width=0.1,
alpha=0.5) +
geom_hline(yintercept = 95) +
labs(title=" ",
x="# de extracciones",
y = expression('% Abs'[355]))+
scale_fill_brewer(palette="Greens",direction=-1)+
theme_light()
dp515 <- ggplot(df515,
aes(x=ID,
y=PercExtCum,
fill=ID)) +
geom_boxplot(width=0.1,
alpha=0.4) +
geom_hline(yintercept = 95) +
labs(title=" ",
x="# de extracciones",
y = expression('% Abs'[515]))+
scale_fill_brewer(palette="Purples",direction=-1)+
theme_light()
grid.arrange(dp280, dp325,dp355,dp515)
Mediante dos extracciones consecutivas es posible extraer más del 95% de los compuestos fenólicos presentes en la muestra detectados a 280 nm y a 515 nanometros. es necesaria una tercera extracción para los compuestos detectados a 325 y 355 nm.