In this metadata analysis, 63 bacteria were obtained from 28 different studies from which the reaction kinetic constant and half-life values were calculated for each study and used to make a comparison of previous studies of the biodegradation of used engine lubricating oils by bacteria, where the half-life and reaction kinetic constant is given by the following equation:
# load library
library("pracma")
library ("tidyverse")
library("pastecs")
library("matlab")
library("plotly")
library("knitr")
library("agricolae")
The data shown below are extracted from scientific papers published in different journals if you wish to have more information you can see the complete document in the repository of the Universidad de la Salle.
# Load data and Rename Columns
metadata<- read_csv2("Metadata.csv")
df <- data.frame(metadata)
colnames(df)[colnames(df) == "Ini_Con_.mg.kg."] <- "Ini_Con_mg/Kg"
colnames(df)[colnames(df) == "Fin_Con_.mg.kg."] <- "Fin_Con_mg/Kg"
kable(head(df))
Class | Specie | Ini_Con_mg/Kg | Fin_Con_mg/Kg | Days |
---|---|---|---|---|
Actinobacteria | Arthrobacter sp, ZnC1 | 100 | 79.30 | 7 |
Actinobacteria | Kocuria varians PbB3 | 100 | 94.20 | 7 |
Actinobacteria | Kocuria varians MB2 | 100 | 63.70 | 7 |
Actinobacteria | Corynebacterium sp | 100 | 28.15 | 15 |
Actinobacteria | Micrococcus sp | 100 | 43.71 | 28 |
Alphaproteobacteria | Ochrobactrum anthropi HM-1Â | 100 | 42.10 | 21 |
The following equation can be obtained by solving the general equation of the degradation kinetics degree 1 to calculate k:
\[\begin{equation} k =- \cfrac{ln(\frac{A}{A}_0)}{d} \end{equation}\]
# Calculate k
df= df %>%
mutate(k=abs(log(`Fin_Con_mg/Kg`/`Ini_Con_mg/Kg`)/(`Days`)))
kable(head(df))
Class | Specie | Ini_Con_mg/Kg | Fin_Con_mg/Kg | Days | k |
---|---|---|---|---|---|
Actinobacteria | Arthrobacter sp, ZnC1 | 100 | 79.30 | 7 | 0.0331332 |
Actinobacteria | Kocuria varians PbB3 | 100 | 94.20 | 7 | 0.0085357 |
Actinobacteria | Kocuria varians MB2 | 100 | 63.70 | 7 | 0.0644265 |
Actinobacteria | Corynebacterium sp | 100 | 28.15 | 15 | 0.0845082 |
Actinobacteria | Micrococcus sp | 100 | 43.71 | 28 | 0.0295569 |
Alphaproteobacteria | Ochrobactrum anthropi HM-1Â | 100 | 42.10 | 21 | 0.0411963 |
To calculate Half live value use the following equation:
# Calculate Half Time value
df = df %>%
mutate(Half_Time=log(2)/k)
kable(head(df))
Class | Specie | Ini_Con_mg/Kg | Fin_Con_mg/Kg | Days | k | Half_Time |
---|---|---|---|---|---|---|
Actinobacteria | Arthrobacter sp, ZnC1 | 100 | 79.30 | 7 | 0.0331332 | 20.92005 |
Actinobacteria | Kocuria varians PbB3 | 100 | 94.20 | 7 | 0.0085357 | 81.20552 |
Actinobacteria | Kocuria varians MB2 | 100 | 63.70 | 7 | 0.0644265 | 10.75872 |
Actinobacteria | Corynebacterium sp | 100 | 28.15 | 15 | 0.0845082 | 8.20213 |
Actinobacteria | Micrococcus sp | 100 | 43.71 | 28 | 0.0295569 | 23.45128 |
Alphaproteobacteria | Ochrobactrum anthropi HM-1Â | 100 | 42.10 | 21 | 0.0411963 | 16.82547 |
# Descriptive Statistics
kable(stat.desc(df,))
Class | Specie | Ini_Con_mg/Kg | Fin_Con_mg/Kg | Days | k | Half_Time | |
---|---|---|---|---|---|---|---|
nbr.val | NA | NA | 5.400000e+01 | 54.00000 | 54.0000000 | 54.0000000 | 54.000000 |
nbr.null | NA | NA | 0.000000e+00 | 0.00000 | 0.0000000 | 0.0000000 | 0.000000 |
nbr.na | NA | NA | 0.000000e+00 | 0.00000 | 0.0000000 | 0.0000000 | 0.000000 |
min | NA | NA | 1.000000e+02 | 1.00000 | 7.0000000 | 0.0018659 | 2.984117 |
max | NA | NA | 1.720000e+04 | 6278.00000 | 50.0000000 | 0.2322788 | 371.487571 |
range | NA | NA | 1.710000e+04 | 6277.00000 | 43.0000000 | 0.2304129 | 368.503453 |
sum | NA | NA | 2.740000e+04 | 11103.33000 | 927.0000000 | 3.0744905 | 1917.231226 |
median | NA | NA | 1.000000e+02 | 49.54500 | 14.0000000 | 0.0461015 | 15.060595 |
mean | NA | NA | 5.074074e+02 | 205.61722 | 17.1666667 | 0.0569350 | 35.504282 |
SE.mean | NA | NA | 3.277611e+02 | 121.35259 | 1.3607634 | 0.0062150 | 8.737168 |
CI.mean | NA | NA | 6.574055e+02 | 243.40246 | 2.7293458 | 0.0124657 | 17.524541 |
var | NA | NA | 5.801076e+06 | 795228.31169 | 99.9905660 | 0.0020858 | 4122.258022 |
std.dev | NA | NA | 2.408542e+03 | 891.75575 | 9.9995283 | 0.0456708 | 64.204813 |
coef.var | NA | NA | 4.746762e+00 | 4.33697 | 0.5824968 | 0.8021570 | 1.808368 |
# Calculate mean by bacteria class
K_Mean= df %>%
group_by(Class)%>%
summarise (mean=mean(k))
Mean_K=data.frame(K_Mean)
kable(Mean_K)
Class | mean |
---|---|
Actinobacteria | 0.0440321 |
Alphaproteobacteria | 0.0530060 |
Bacilli | 0.0454821 |
Betaproteobacteria | 0.0398795 |
Consortium | 0.0995013 |
Flovobacteria | 0.0242860 |
Gammaproteobacteria | 0.0551736 |
The following equation can be obtained by solving the general equation of the degradation kinetics degree 1 to calculate A(Final Concentration), this will be used to calculate final concentration at a given time using k mean by class to predict the biodegradation by every bacteria class:
# Extract mean by bacteria class
Mean_Ac=Mean_K [1,2]
Mean_Al=Mean_K [2,2]
Mean_Ba=Mean_K [3,2]
Mean_Be=Mean_K [4,2]
Mean_Co=Mean_K [5,2]
Mean_Fl=Mean_K [6,2]
Mean_Ga=Mean_K [7,2]
# Set Initial Concentration
Ci=5000
# Set number of days
Day <- linspace(0,80,17)
# Calculate concentration at given day with k mean for each class bacteria
Cf_Ac=Ci*exp(-Mean_Ac*Day)
Cf_Al=Ci*exp(-Mean_Al*Day)
Cf_Ba=Ci*exp(-Mean_Ba*Day)
Cf_Be=Ci*exp(-Mean_Be*Day)
Cf_Co=Ci*exp(-Mean_Co*Day)
Cf_Fl=Ci*exp(-Mean_Fl*Day)
Cf_Ga=Ci*exp(-Mean_Ga*Day)
Actinobacteria<- c(Cf_Ac)
Alphaproteobacteria <- c(Cf_Al)
Bacilli<- c(Cf_Ba)
Betaproteobacteria<- c(Cf_Be)
Consortium<- c(Cf_Co)
Flovobacteria<- c(Cf_Fl)
Gammaproteobacteria<- c(Cf_Ga)
# Create data frame with concentration at given day
df_k <- data.frame(Day,Actinobacteria,Alphaproteobacteria,Bacilli,Betaproteobacteria,Consortium,Flovobacteria,Gammaproteobacteria)
kable(head(df_k))
Day | Actinobacteria | Alphaproteobacteria | Bacilli | Betaproteobacteria | Consortium | Flovobacteria | Gammaproteobacteria |
---|---|---|---|---|---|---|---|
0 | 5000.000 | 5000.000 | 5000.000 | 5000.000 | 5000.0000 | 5000.000 | 5000.000 |
5 | 4011.950 | 3835.914 | 3982.968 | 4096.121 | 3040.2246 | 4428.265 | 3794.566 |
10 | 3219.149 | 2942.848 | 3172.806 | 3355.641 | 1848.5931 | 3921.906 | 2879.747 |
15 | 2583.013 | 2257.702 | 2527.437 | 2749.022 | 1124.0276 | 3473.448 | 2185.478 |
20 | 2072.584 | 1732.071 | 2013.340 | 2252.066 | 683.4593 | 3076.269 | 1658.588 |
25 | 1663.021 | 1328.815 | 1603.814 | 1844.947 | 415.5740 | 2724.507 | 1258.724 |
# Plot result of concentracion over a given time
fig <- plot_ly(df_k, x = ~Day, y = ~Consortium, name = 'Consortium', type = 'scatter', mode = 'lines')
fig <- fig %>% add_trace(y = ~Actinobacteria, name = 'Actinobacteria', mode = 'lines')
fig <- fig %>% add_trace(y = ~Alphaproteobacteria, name = 'Alphaproteobacteria', mode = 'lines')
fig <- fig %>% add_trace(y = ~Bacilli, name = 'Bacilli', mode = 'lines')
fig <- fig %>% add_trace(y = ~Betaproteobacteria, name = 'Betaproteobacteria', mode = 'lines')
fig <- fig %>% add_trace(y = ~Flovobacteria, name = 'Flovobacteria', mode = 'lines')
fig <- fig %>% add_trace(y = ~Gammaproteobacteria, name = 'Gammaproteobacteria', mode = 'lines')
fig <- fig %>% layout(title = "Concentration mg/Kg by bacteria class",
xaxis = list(title = "Days"),
yaxis = list (title = "Concentration mg/Kg"))
fig
The results obtained from these two tests show that there is a difference between the consortia and the other classes of bacteria analyzed, so it can be concluded that to optimize the degradation time of used lubricating oils of motor oil the best option is to perform its degradation by bacterial consortia.
# Anova Test
anova <- aov(k~Class , data = df)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## Class 6 0.01970 0.003284 1.699 0.142
## Residuals 47 0.09085 0.001933
# Least Significant Difference
lsd_test <- LSD.test(anova,"Class")
lsd_test$statistics
## MSerror Df Mean CV
## 0.001932906 47 0.05693501 77.21931
lsd_test$parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Class 7 0.05
lsd_test$groups
## k groups
## Consortium 0.09950130 a
## Gammaproteobacteria 0.05517356 b
## Alphaproteobacteria 0.05300602 b
## Bacilli 0.04548215 b
## Actinobacteria 0.04403210 b
## Betaproteobacteria 0.03987950 b
## Flovobacteria 0.02428602 b
# Plot result LSD test groups
plot(lsd_test)
Created by : Juan Sebastian Hernandez Gomez