#
# R script for set 1 Zipperclave  PTEH 
#
# Bruno Godin
# NREL
# Oct 2015


require(XLConnect)
require(car)
require(lme4)
require(extRemes)
require(stringi)
require(tidyr)
require(agricolae)

require(chron)
require(data.table)



#
# set working directory
# this is the location where the folders holding the spreadsheets is located

setwd("C:/Users/b.godin/Dropbox/CRA-W/NREL/Article/R scripts/")




#
#
#

# PART One
rm(list=ls(all=TRUE))

#
#
#



#
# Load 

# Load Run info data
temp1    <- loadWorkbook("Zipperclave Sorghum.xlsx")
#temp1    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
run.info  <- readWorksheet(temp1,sheet="Run Info",startCol=1,endCol=17)
rm(temp1)

# Load Feedstock Compostion B data Raw

temp2b    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
feeds.compo.b  <- readWorksheet(temp2b,sheet="Feedstock Compostion",startCol=1,endCol=25)
rm(temp2b)

# Load FPI_% solids A data

temp3a    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
FPI.solids.a  <- readWorksheet(temp3a,sheet="FPI_% solids",startCol=1,endCol=4,startRow=1,endRow=64)
rm(temp3a)

# Load FPI_% solids B data

temp3b    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
FPI.solids.b  <- readWorksheet(temp3b,sheet="FPI_% solids",startCol=5,endCol=8,startRow=1,endRow=64)
rm(temp3b)

# Load FPI_% solids C data

temp3c    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
density.liquor  <- readWorksheet(temp3c,sheet="FPI_% solids",startCol=9,endCol=12,startRow=1,endRow=64)
rm(temp3c)

# Load FPI_% solids D data

temp3d    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
FPI.solids.d  <- readWorksheet(temp3d,sheet="FPI_% solids",startCol=13,endCol=14,startRow=1,endRow=22)
rm(temp3d)

# Load FPI_% solids E data

temp3e    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
total.solids  <- readWorksheet(temp3e,sheet="FPI_% solids",startCol=15,endCol=22,startRow=1,endRow=7)
rm(temp3e)

# Load HPLC liquor analysis data

temp4    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
hplc.liqu  <- readWorksheet(temp4,sheet="HPLC liquor analysis",startCol=1,endCol=29)
rm(temp4)

# Load Condensates data

temp5.a    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
hplc.cond.a  <- readWorksheet(temp5.a,sheet="Condensates",startCol=1,endCol=23)
rm(temp5.a)

# Load Rinsates A data

temp6.a    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
hplc.rins.a <- readWorksheet(temp6.a,sheet="Rinsates",startCol=1,endCol=24)
rm(temp6.a)

# Load Rinsates B data

temp6.b    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
hplc.rins.b  <- readWorksheet(temp6.b,sheet="Rinsate Solids",startCol=1,endCol=5)
rm(temp6.b)

# Load EH Data

temp7    <- loadWorkbook("151001 Zipperclave Sorghum spreadsheet 2015-Set1z.xlsx")
enzy.hydr  <- readWorksheet(temp7,sheet="EH Data",startCol=1,endCol=34)
rm(temp7)
toremove1  <- which(enzy.hydr$Sample.ID=="P080828CS_X_X" | enzy.hydr$Sample.ID=="P120927CS_X_X")
enzy.hydr <- enzy.hydr[-toremove1,]

#
# Average

# Average Feedstock Compostion B data Raw

toremove3  <- which(feeds.compo.b$Feedstock.Format=="Bagasse")
feeds.compo.b <- feeds.compo.b[-toremove3,]

feeds.compo.b <- data.table(feeds.compo.b)
feeds.compo.b.var <- names(feeds.compo.b)

feeds.compo.b.sum <- as.data.frame(feeds.compo.b[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE), sd(x, na.rm=TRUE), sd(x, na.rm=TRUE)*100/mean(x, na.rm=TRUE))),
                                                 .SDcols=feeds.compo.b.var, by=list(Feedstock.Format)])
feeds.compo.b.sum$name <- c("mean","sd","rsd")

feeds.compo.b.mean <- as.data.frame(feeds.compo.b[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE))),
                                                  .SDcols=feeds.compo.b.var, by=list(Feedstock.Format)])


# Load FPI_% solids A data

FPI.solids.a <- data.table(FPI.solids.a)
FPI.solids.a.var <- tail(names(FPI.solids.a),-2)

FPI.solids.a.sum <- as.data.frame(FPI.solids.a[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE), sd(x, na.rm=TRUE), sd(x, na.rm=TRUE)*100/mean(x, na.rm=TRUE))),
                                               .SDcols=FPI.solids.a.var, by=list(Sample.Code)])
FPI.solids.a.sum$name <- c("mean","sd","rsd")

FPI.solids.a.mean <- as.data.frame(FPI.solids.a[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE))),
                                                .SDcols=FPI.solids.a.var, by=list(Sample.Code)])

# Load FPI_% solids B data

FPI.solids.b <- data.table(FPI.solids.b)
FPI.solids.b.var <- tail(names(FPI.solids.b),-2)

FPI.solids.b.sum <- as.data.frame(FPI.solids.b[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE), sd(x, na.rm=TRUE), sd(x, na.rm=TRUE)*100/mean(x, na.rm=TRUE))),
                                               .SDcols=FPI.solids.b.var, by=list(Sample.Code)])
FPI.solids.b.sum$name <- c("mean","sd","rsd")

FPI.solids.b.mean <- as.data.frame(FPI.solids.b[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE))),
                                                .SDcols=FPI.solids.b.var, by=list(Sample.Code)])

# Load FPI_% solids C data

density.liquor <- data.table(density.liquor)
density.liquor.var <- tail(names(density.liquor),-2)

density.liquor.sum <- as.data.frame(density.liquor[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE), sd(x, na.rm=TRUE), sd(x, na.rm=TRUE)*100/mean(x, na.rm=TRUE))),
                                                   .SDcols=density.liquor.var, by=list(Sample.Code)])
density.liquor.sum$name <- c("mean","sd","rsd")


density.liquor.mean <- as.data.frame(density.liquor[, lapply(.SD, function(x) list(mean(x, na.rm=TRUE))),
                                                    .SDcols=density.liquor.var, by=list(Sample.Code)])


# Load FPI_% solids D data

FPI.solids.d <- data.table(FPI.solids.d)

FPI.solids.d.mean <- FPI.solids.d 


#
# Mass recovery

mass.reco <- as.data.frame(run.info$Sample.ID..)
names(mass.reco)[1]<-"Sample.ID"
mass.reco$Feedstock <- run.info$Feedstock.Format
mass.reco$SolidsInitialFeeds <- run.info$X..Solids.on.initial.stover
mass.reco$TargetWetMass <- run.info$Target..Wet.mass.g..of.stover.added.
mass.reco$Dry.sample.g <- (run.info$X..Solids.on.initial.stover / 100) * run.info$Target..Wet.mass.g..of.stover.added.

run.info<-separate(data = run.info, col = Catalyst, into = c("Catalyst.A", "Catalyst.B"), sep = "_")
mass.reco$Catalyst.A <- run.info$Catalyst.A
mass.reco$Catalyst.B <- run.info$Catalyst.B

mass.reco$RunTimeMin <- run.info$Target.Reaction.time..min.
mass.reco$RunTempC <- run.info$Rxn.temp..C

SevExp <- exp((run.info$Rxn.temp..C - 100) / 14.75)
SevLog <- log10(run.info$Target.Reaction.time..min. * SevExp)
mass.reco$PtSeverityRo <- SevLog 
mass.reco$PtSeverityRoComb <- SevLog - hplc.liqu$Undiluted.pH 

mass.reco$Mass.Slurry.Canister.g <- as.numeric(run.info$After.pretreatment.mass..g..pail.sample.final) - as.numeric(run.info$Mass..g..Container)

mass.reco$Mass.Solids.Canister.g <- as.numeric(mass.reco$Mass.Slurry.Canister.g) * as.numeric(FPI.solids.a.mean$X..total.solids.on.original.slurry.)

mass.reco$Mass.Insoluble.Solids.Rinsate.g <- as.numeric(hplc.rins.b$dry.biomass)

mass.reco$Mass.Soluble.Solids.Rinsate.g <- ( (as.numeric(run.info$Rinsate.w.container..g.) - as.numeric(run.info$Rinsate.container.tare..g.)) * as.numeric(hplc.rins.a$total.sugars..acids.mg.L)  / 1000 )

mass.reco$Mass.Solids.Rinsate.g2<- (as.numeric(hplc.rins.b$dry.biomass) / as.numeric(FPI.solids.d.mean$No.Wash.FIS..dry.wt.washed.solids.dry.wt.slurry.))
mass.reco$Mass.Soluble.Solids.Rinsate.g2 <- (as.numeric(mass.reco$Mass.Solids.Rinsate.g2) - as.numeric(mass.reco$Mass.Insoluble.Solids.Rinsate.g)) * as.numeric(FPI.solids.b.mean$X..total.solids.on.filtered.liquors.) 

mass.reco$Total.Recovered.Solids.g <- as.numeric(mass.reco$Mass.Soluble.Solids.Rinsate.g) + as.numeric(mass.reco$Mass.Insoluble.Solids.Rinsate.g) + as.numeric(mass.reco$Mass.Solids.Canister.g)

mass.reco$Total.Recovered.Solids.Percentage <- as.numeric(mass.reco$Total.Recovered.Solids.g) / as.numeric(mass.reco$Dry.sample.g)

mass.reco$No.Solids.Fis.g.g <- as.numeric(FPI.solids.a.mean$X..total.solids.on.original.slurry.)
mass.reco$Liquor.Solids.g.g <- as.numeric(FPI.solids.b.mean$X..total.solids.on.filtered.liquors.)
mass.reco$No.Wash.Fis.Percentage <- as.numeric(FPI.solids.d.mean$No.Wash.FIS..dry.wt.washed.solids.dry.wt.slurry.)

mass.reco$Insoluble.Solids.g <- as.numeric(mass.reco$Total.Recovered.Solids.g) * as.numeric(mass.reco$No.Wash.Fis.Percentage)

mass.reco$Liquor.g <- as.numeric(mass.reco$Mass.Slurry.Canister.g) - as.numeric(mass.reco$Mass.Solids.Canister.g)  + as.numeric(mass.reco$Mass.Solids.Rinsate.g2) - as.numeric(mass.reco$Mass.Insoluble.Solids.Rinsate.g) 
#mass.reco$Liquor.g2 <- mass.reco$Mass.Slurry.Canister.g - mass.reco$Insoluble.Solids.g - mass.reco$Mass.Soluble.Solids.Rinsate.g + mass.reco$Mass.Soluble.Solids.Rinsate.g2

mass.reco$Liquor.density.g.ml <- as.numeric(hplc.liqu$Density..g.ml.)

mass.reco$Liquor.volume.L <-  as.numeric(mass.reco$Liquor.g) / as.numeric(hplc.liqu$Density..g.ml.)

mass.reco$Condensate.volume.L <- as.numeric(run.info$X.Condensate.w.container..g..) - as.numeric(run.info$Condensate.container.tare..g.)

mass.reco$Rinsate.volume.L <- as.numeric(run.info$Rinsate.w.container..g.) - as.numeric(run.info$Rinsate.container.tare..g.)


#
# Correction factors

cg  <-180/162
cx  <-150/132
Cgsta <-180/162
Cgsuc <-(342/324)/2
Cace <- 1.3750
HydDil <- 5.175/5


# Composition integration

comp.rec.yie <- as.data.frame(run.info$Sample.ID..)
names(comp.rec.yie)[1]<-"Sample.ID"
comp.rec.yie$Feedstock.Format <- run.info$Feedstock.Format

comp.rec.yie.composition <- as.data.frame(comp.rec.yie)

toselect.wild.composition  <- which(feeds.compo.b.mean$Feedstock.Format=="Wild")
toselect.stacked.composition  <- which(feeds.compo.b.mean$Feedstock.Format=="Stacked (6 12)")
toselect.control.composition  <- which(feeds.compo.b.mean$Feedstock.Format=="Corn stover (cont)")


comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Glucan"] <- feeds.compo.b.mean[toselect.wild.composition,"X..Glucan"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Glucan"] <- feeds.compo.b.mean[toselect.stacked.composition,"X..Glucan"]
comp.rec.yie.composition [c(3,10,17),"X..Glucan"] <- feeds.compo.b.mean[toselect.control.composition,"X..Glucan"]

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Xylan"] <- feeds.compo.b.mean[toselect.wild.composition,"X..Xylan"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Xylan"] <- feeds.compo.b.mean[toselect.stacked.composition,"X..Xylan"]
comp.rec.yie.composition [c(3,10,17),"X..Xylan"] <- feeds.compo.b.mean[toselect.control.composition,"X..Xylan"]

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Sucrose"] <- feeds.compo.b.mean[toselect.wild.composition,"X..Sucrose"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Sucrose"] <- feeds.compo.b.mean[toselect.stacked.composition,"X..Sucrose"]
comp.rec.yie.composition [c(3,10,17),"X..Sucrose"] <- feeds.compo.b.mean[toselect.control.composition,"X..Sucrose"]

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Free.Glucose"] <- feeds.compo.b.mean[toselect.wild.composition,"X..Free.Glucose"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Free.Glucose"] <- feeds.compo.b.mean[toselect.stacked.composition,"X..Free.Glucose"]
comp.rec.yie.composition [c(3,10,17),"X..Free.Glucose"] <- 0

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X.Free.Fructose"] <- feeds.compo.b.mean[toselect.wild.composition,"X.Free.Fructose"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X.Free.Fructose"] <- feeds.compo.b.mean[toselect.stacked.composition,"X.Free.Fructose"]
comp.rec.yie.composition [c(3,10,17),"X.Free.Fructose"] <- 0

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Starch"] <- 3.13
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Starch"] <- 2.86
comp.rec.yie.composition [c(3,10,17),"X..Starch"] <- 0

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"Acetyl"] <- feeds.compo.b.mean[toselect.wild.composition,"Acetyl"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"Acetyl"] <- feeds.compo.b.mean[toselect.stacked.composition,"Acetyl"]
comp.rec.yie.composition [c(3,10,17),"Acetyl"] <- feeds.compo.b.mean[toselect.control.composition,"Acetyl"]

comp.rec.yie.composition [c(1,4,6,8,11,13,15,18,20),"X..Lignin"] <- feeds.compo.b.mean[toselect.wild.composition,"X..Lignin"]
comp.rec.yie.composition [c(2,5,7,9,12,14,16,19,21),"X..Lignin"] <- feeds.compo.b.mean[toselect.stacked.composition,"X..Lignin"]
comp.rec.yie.composition [c(3,10,17),"X..Lignin"] <- feeds.compo.b.mean[toselect.control.composition,"X..Lignin"]

comp.rec.yie$X..Glucan <- comp.rec.yie.composition$X..Glucan
comp.rec.yie$X..Xylan <- comp.rec.yie.composition$X..Xylan
comp.rec.yie$X..Sucrose  <- comp.rec.yie.composition$X..Sucrose 
comp.rec.yie$X..Free.Glucose <- comp.rec.yie.composition$X..Free.Glucose
comp.rec.yie$X.Free.Fructose <- comp.rec.yie.composition$X.Free.Fructose
comp.rec.yie$X..Starch <- comp.rec.yie.composition$X..Starch
comp.rec.yie$Acetyl <- comp.rec.yie.composition$Acetyl
comp.rec.yie$X..Lignin <- comp.rec.yie.composition$X..Lignin


# Soluble sugars integration

comp.rec.yie$Totglu.g.g <- ((as.numeric(comp.rec.yie$X..Glucan) / 100) * cg) + ((as.numeric(comp.rec.yie$X..Starch) / 100) * Cgsta) + ((as.numeric(comp.rec.yie$X..Sucrose ) / 100) * Cgsuc) + ((as.numeric(comp.rec.yie$X..Free.Glucose) / 100))
comp.rec.yie$Totglu.g <- as.numeric(comp.rec.yie$Totglu.g.g) * as.numeric(mass.reco$Dry.sample.g)

#
# Component Recovery and Yield

comp.rec.yie$Feedstock <- run.info$Feedstock.Format
comp.rec.yie$SolidsInitialFeeds <- run.info$X..Solids.on.initial.stover
comp.rec.yie$TargetWetMass <- run.info$Target..Wet.mass.g..of.stover.added.
comp.rec.yie$Dry.sample.g <- (run.info$X..Solids.on.initial.stover / 100) * run.info$Target..Wet.mass.g..of.stover.added.

comp.rec.yie$Catalyst.A <- run.info$Catalyst.A
comp.rec.yie$Catalyst.B <- run.info$Catalyst.B

comp.rec.yie$RunTimeMin <- run.info$Target.Reaction.time..min.
comp.rec.yie$RunTempC <- run.info$Rxn.temp..C

SevExp <- exp((run.info$Rxn.temp..C - 100) / 14.75)
SevLog <- log10(run.info$Target.Reaction.time..min. * SevExp)
comp.rec.yie$PtSeverityRo <- SevLog 
comp.rec.yie$PtSeverityRoComb <- SevLog - hplc.liqu$Undiluted.pH 


# Glucose
comp.rec.yie$Mass.glucose.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie$Totglu.g.g))
comp.rec.yie$Mass.hmf.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie$Totglu.g.g)) * 0.7000

comp.rec.yie$Mass.glucose.PT.g <- as.numeric(hplc.liqu$Glucose..mg.ml.t) * (as.numeric(mass.reco$Liquor.volume.L) / 1000)
comp.rec.yie$Mass.glucose.PT.rinsate.g <- as.numeric(mass.reco$Rinsate.volume.L) * as.numeric(hplc.rins.a$Glucose..mg.ml.m) / 1000

comp.rec.yie$Release.glucose.PT.g.g <-  (as.numeric(comp.rec.yie$Mass.glucose.PT.g) + as.numeric(comp.rec.yie$Mass.glucose.PT.rinsate.g )) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.glucose.PT.g.g <-  (as.numeric(comp.rec.yie$Mass.glucose.PT.g) + as.numeric(comp.rec.yie$Mass.glucose.PT.rinsate.g )) / as.numeric(comp.rec.yie$Mass.glucose.g)

comp.rec.yie$Mass.hmf.PT.condensate.g <- (mass.reco$Condensate.volume.L / 1000) * hplc.cond.a$HMF..mg.ml.
comp.rec.yie$Mass.hmf.PT.rinsate.g <- (mass.reco$Rinsate.volume.L / 1000) * hplc.rins.a$HMF..mg.ml.
comp.rec.yie$Mass.hmf.PT.liquor.g <- (mass.reco$Liquor.volume.L / 1000) * hplc.liqu$HMF..mg.ml.m

comp.rec.yie$Release.hmf.PT.g.g <- (as.numeric(comp.rec.yie$Mass.hmf.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.hmf.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.hmf.PT.liquor.g)) / (as.numeric(mass.reco$Dry.sample.g))
comp.rec.yie$Yield.hmf.PT.g.g <- (as.numeric(comp.rec.yie$Mass.hmf.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.hmf.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.hmf.PT.liquor.g)) / (as.numeric(comp.rec.yie$Mass.hmf.g))

comp.rec.yie$Mass.glucose.EH.int.g <- as.numeric(enzy.hydr$Glucose..g....Dry.Biomass..g.)

comp.rec.yie$Mass.glucose.EH.sample.g <- as.numeric(comp.rec.yie$Mass.glucose.EH.int.g) * as.numeric(mass.reco$Insoluble.Solids.g)

comp.rec.yie$Mass.glucose.PTEH.g <- as.numeric(comp.rec.yie$Mass.glucose.PT.g) + as.numeric(comp.rec.yie$Mass.glucose.EH.sample.g) + as.numeric(comp.rec.yie$Mass.glucose.PT.rinsate.g)

comp.rec.yie$Mass.glucose.PTEH.norm.g <- as.numeric(comp.rec.yie$Mass.glucose.PTEH.g) / as.numeric(mass.reco$Total.Recovered.Solids.Percentage)

comp.rec.yie$Release.glucose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.glucose.PTEH.g) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.glucose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.glucose.PTEH.g) / as.numeric(comp.rec.yie$Mass.glucose.g)

comp.rec.yie$Yield.glucose.PTEH.norm.g.g <- as.numeric(comp.rec.yie$Mass.glucose.PTEH.norm.g) / as.numeric(comp.rec.yie$Mass.glucose.g)

comp.rec.yie$Recovery.glucose.PTEH.g.g <- as.numeric(comp.rec.yie$Yield.glucose.PTEH.g) + as.numeric(comp.rec.yie$Yield.hmf.PT.g)

comp.rec.yie$Recovery.glucose.PTEH.norm.g.g <- as.numeric(comp.rec.yie$Recovery.glucose.PTEH.g) / as.numeric(mass.reco$Total.Recovered.Solids.Percentage) 


# Xylose
comp.rec.yie$Mass.xylose.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie$X..Xylan ) / 100) * cx
comp.rec.yie$Mass.furfural.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie$X..Xylan ) / 100) * 0.7272
comp.rec.yie$Mass.acetyl.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie.composition$Acetyl) / 100) * 0.7167

comp.rec.yie$Mass.xylose.PT.g <- as.numeric(hplc.liqu$Xylose..mg.ml.t) * (as.numeric(mass.reco$Liquor.volume.L / 1000))
comp.rec.yie$Mass.xylose.PT.rinsate.g <- as.numeric(mass.reco$Rinsate.volume.L) * as.numeric(hplc.rins.a$Xylose..mg.ml.m) / 1000

comp.rec.yie$Release.xylose.PT.g.g <- (as.numeric(comp.rec.yie$Mass.xylose.PT.g) + as.numeric(comp.rec.yie$Mass.xylose.PT.rinsate.g)) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.xylose.PT.g.g <- (as.numeric(comp.rec.yie$Mass.xylose.PT.g) + as.numeric(comp.rec.yie$Mass.xylose.PT.rinsate.g)) / as.numeric(comp.rec.yie$Mass.xylose.g)

comp.rec.yie$Mass.furfural.PT.condensate.g <- (mass.reco$Condensate.volume.L / 1000) * hplc.cond.a$Furfural..mg.ml.
comp.rec.yie$Mass.furfural.PT.rinsate.g <- (mass.reco$Rinsate.volume.L / 1000) * hplc.rins.a$Furfural..mg.ml.
comp.rec.yie$Mass.furfural.PT.liquor.g <- (mass.reco$Liquor.volume.L / 1000) * hplc.liqu$Furfural..mg.ml.m

comp.rec.yie$Release.furfural.PT.g.g <- (as.numeric(comp.rec.yie$Mass.furfural.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.furfural.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.furfural.PT.liquor.g)) / (as.numeric(mass.reco$Dry.sample.g))
comp.rec.yie$Yield.furfural.PT.g.g <- (as.numeric(comp.rec.yie$Mass.furfural.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.furfural.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.furfural.PT.liquor.g)) / (as.numeric(comp.rec.yie$Mass.furfural.g))

comp.rec.yie$Recovery.xylose.PT.g.g <- as.numeric(comp.rec.yie$Yield.xylose.PT.g) + as.numeric(comp.rec.yie$Yield.furfural.PT.g)

comp.rec.yie$Mass.acetyl.PT.condensate.g <- (mass.reco$Condensate.volume.L / 1000) * hplc.cond.a$Acetic.Acid..mg.ml.
comp.rec.yie$Mass.acetyl.PT.rinsate.g <- (mass.reco$Rinsate.volume.L / 1000) * hplc.rins.a$Acetic.Acid..mg.ml.
comp.rec.yie$Mass.acetyl.PT.liquor.g <- (mass.reco$Liquor.volume.L / 1000) * hplc.liqu$Acetic.Acid..mg.ml.m                                      

comp.rec.yie$Release.acetyl.PT.g.g <- (as.numeric(comp.rec.yie$Mass.acetyl.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.acetyl.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.acetyl.PT.liquor.g)) / (as.numeric(mass.reco$Dry.sample.g))
comp.rec.yie$Yield.acetyl.PT.g.g <- (as.numeric(comp.rec.yie$Mass.acetyl.PT.condensate.g) + as.numeric(comp.rec.yie$Mass.acetyl.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.acetyl.PT.liquor.g)) / (as.numeric(comp.rec.yie$Mass.acetyl.g))

comp.rec.yie$Mass.xylose.EH.int.g <- as.numeric(enzy.hydr$Xylose..g....Dry.Biomass..g.)

comp.rec.yie$Mass.xylose.EH.sample.g <- as.numeric(comp.rec.yie$Mass.xylose.EH.int.g) * as.numeric(mass.reco$Insoluble.Solids.g)

comp.rec.yie$Mass.xylose.PTEH.g <- as.numeric(comp.rec.yie$Mass.xylose.PT.g) + as.numeric(comp.rec.yie$Mass.xylose.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.xylose.EH.sample.g)

comp.rec.yie$Mass.xylose.PTEH.norm.g <- as.numeric(comp.rec.yie$Mass.xylose.PTEH.g) / as.numeric(mass.reco$Total.Recovered.Solids.Percentage)

comp.rec.yie$Release.xylose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.xylose.PTEH.g) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.xylose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.xylose.PTEH.g) / as.numeric(comp.rec.yie$Mass.xylose.g)

comp.rec.yie$Yield.xylose.PTEH.norm.g.g <- as.numeric(comp.rec.yie$Mass.xylose.PTEH.norm.g) / as.numeric(comp.rec.yie$Mass.xylose.g)  

comp.rec.yie$Recovery.xylose.PTEH.g.g <- as.numeric(comp.rec.yie$Yield.xylose.PTEH.g) + as.numeric(comp.rec.yie$Yield.furfural.PT.g)

comp.rec.yie$Recovery.xylose.PTEH.norm.g.g <- as.numeric(comp.rec.yie$Recovery.xylose.PTEH.g) / as.numeric(mass.reco$Total.Recovered.Solids.Percentage) 
  
# Glucose+Xylose
comp.rec.yie$Yield.insoluble.g.g <- as.numeric(mass.reco$Insoluble.Solids.g) / as.numeric(mass.reco$Dry.sample.g)
  
comp.rec.yie$Mass.glucose.xylose.g <- as.numeric(comp.rec.yie$Mass.glucose.g) + as.numeric(comp.rec.yie$Mass.xylose.g)

comp.rec.yie$Mass.glucose.xylose.PT.g <- as.numeric(comp.rec.yie$Mass.glucose.PT.g) + as.numeric(comp.rec.yie$Mass.glucose.PT.rinsate.g) + as.numeric(comp.rec.yie$Mass.xylose.PT.g) + as.numeric(comp.rec.yie$Mass.xylose.PT.rinsate.g)

comp.rec.yie$Release.glucose.xylose.PT.g.g <- as.numeric(comp.rec.yie$Mass.glucose.xylose.PT.g) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.glucose.xylose.PT.g.g <- as.numeric(comp.rec.yie$Mass.glucose.xylose.PT.g) / as.numeric(comp.rec.yie$Mass.glucose.xylose.g)

comp.rec.yie$Mass.glucose.xylose.PTEH.g <- as.numeric(comp.rec.yie$Mass.glucose.PTEH.g) + as.numeric(comp.rec.yie$Mass.xylose.PTEH.g)

comp.rec.yie$Release.glucose.xylose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.glucose.xylose.PTEH.g) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.glucose.xylose.PTEH.g.g <- as.numeric(comp.rec.yie$Mass.glucose.xylose.PTEH.g) / as.numeric(comp.rec.yie$Mass.glucose.xylose.g)

comp.rec.yie$Yield.glucose.xylose.PTEH.norm.g.g <- as.numeric(comp.rec.yie$Yield.glucose.xylose.PTEH.g.g) / as.numeric(mass.reco$Total.Recovered.Solids.Percentage)

# Fructose
comp.rec.yie$Mass.fructose.g <- as.numeric(mass.reco$Dry.sample.g) * ( ((as.numeric(comp.rec.yie$X..Sucrose) / 100) * Cgsuc) + ((as.numeric(comp.rec.yie$X.Free.Fructose) / 100) * cg) )

comp.rec.yie$Mass.fructose.PT.g <- as.numeric(hplc.liqu$Fructose..mg.ml.m) * (as.numeric(mass.reco$Liquor.volume.L / 1000))
comp.rec.yie$Mass.fructose.PT.rinsate.g <- as.numeric(mass.reco$Rinsate.volume.L) * as.numeric(hplc.rins.a$Fructose..mg.ml.m) / 1000

comp.rec.yie$Release.fructose.PT.g.g <- (as.numeric(comp.rec.yie$Mass.fructose.PT.g) + as.numeric(comp.rec.yie$Mass.fructose.PT.rinsate.g)) / as.numeric(mass.reco$Dry.sample.g)
comp.rec.yie$Yield.fructose.PT.g.g <- (as.numeric(comp.rec.yie$Mass.fructose.PT.g) + as.numeric(comp.rec.yie$Mass.fructose.PT.rinsate.g)) / as.numeric(comp.rec.yie$Mass.fructose.g)

# Soluble lignin
comp.rec.yie$Mass.lignin.g <- as.numeric(mass.reco$Dry.sample.g) * (as.numeric(comp.rec.yie$X..Lignin ) / 100)
comp.rec.yie$Mass.sollignin.PT.g <- as.numeric(hplc.liqu$Lignin..mg.ml) * (as.numeric(mass.reco$Liquor.volume.L / 1000))
comp.rec.yie$Mass.sollignin.PT.g.g <- as.numeric(comp.rec.yie$Mass.sollignin.PT.g / comp.rec.yie$Mass.lignin.g)

# Merge and export

data.all <- merge(mass.reco, comp.rec.yie, by="Sample.ID")
#toremove4  <- which(data.all$Sample.ID=="XXX")
#data <- data.all[-toremove4,]
data <- data.all

data.set1z<-as.data.frame(cbind(as.character(data$Sample.ID),
                                data$Feedstock.x, data$SolidsInitialFeeds.x, data$TargetWetMass.x, data$Dry.sample.g.x, data$Catalyst.A.x, data$Catalyst.B.x, data$RunTimeMin.x, data$RunTempC.x, data$PtSeverityRo.x, data$PtSeverityRoComb.x,
                                data$Total.Recovered.Solids.g, data$Total.Recovered.Solids.Percentage,
                                data$No.Solids.Fis.g.g, data$Liquor.Solids.g.g, data$No.Wash.Fis.Percentage,
                                data$Insoluble.Solids.g, data$Liquor.g, 
                                data$Liquor.density.g.ml, 
                                data$Liquor.volume.L, data$Condensate.volume.L, data$Rinsate.volume.L,
                                data$Yield.insoluble.g.g,
                                data$Release.fructose.PT.g.g, data$Yield.fructose.PT.g.g,
                                data$Release.glucose.PT.g.g, data$Yield.glucose.PT.g.g,
                                data$Release.hmf.PT.g.g, data$Yield.hmf.PT.g.g,
                                data$Release.xylose.PT.g.g, data$Yield.xylose.PT.g.g,
                                data$Release.furfural.PT.g.g, data$Yield.furfural.PT.g.g,
                                data$Release.acetyl.PT.g.g, data$Yield.acetyl.PT.g.g,
                                data$Release.glucose.PTEH.g.g, data$Yield.glucose.PTEH.g.g, data$Yield.glucose.PTEH.norm.g.g,
                                data$Recovery.glucose.PTEH.g.g, data$Recovery.glucose.PTEH.norm.g.g,
                                data$Release.xylose.PTEH.g.g, data$Yield.xylose.PTEH.g.g, data$Yield.xylose.PTEH.norm.g.g,
                                data$Recovery.xylose.PTEH.g.g, data$Recovery.xylose.PTEH.norm.g.g,
                                data$Release.glucose.xylose.PT.g.g, data$Yield.glucose.xylose.PT.g.g,
                                data$Release.glucose.xylose.PTEH.g.g, data$Yield.glucose.xylose.PTEH.g.g, data$Yield.glucose.xylose.PTEH.norm.g.g,
                                data$Mass.sollignin.PT.g.g))

colnames(data.set1z)<-c("Sample.ID", 
                        "Feedstock", "SolidsInitialFeeds", "TargetWetMass", "Dry.sample.g", "Catalyst.A", "Catalyst.B", "RunTimeMin", "RunTempC", "PtSeverityRo", "PtSeverityRoComb",
                        "Total.Recovered.Solids.g", "Total.Recovered.Solids.Percentage",
                        "No.Wash.Solids.g.g", "Liquor.Solids.g.g", "No.Wash.Fis.Percentage",
                        "Insoluble.Solids.g", "Liquor.g", 
                        "Liquor.density.g.ml", 
                        "Liquor.volume.L", "Condensate.volume.L", "Rinsate.volume.L",
                        "Yield.insoluble.g.g",
                        "Release.fructose.PT.g.g", "Yield.fructose.PT.g.g",
                        "Release.glucose.PT.g.g", "Yield.glucose.PT.g.g",
                        "Release.hmf.PT.g.g", "Yield.hmf.PT.g.g",
                        "Release.xylose.PT.g.g", "Yield.xylose.PT.g.g",
                        "Release.furfural.PT.g.g", "Yield.furfural.PT.g.g",
                        "Release.acetyl.PT.g.g", "Yield.acetyl.PT.g.g",
                        "Release.glucose.PTEH.g.g", "Yield.glucose.PTEH.g.g", "Yield.glucose.PTEH.norm.g.g",
                        "Recovery.glucose.PTEH.g.g", "Recovery.glucose.PTEH.norm.g.g",
                        "Release.xylose.PTEH.g.g", "Yield.xylose.PTEH.g.g", "Yield.xylose.PTEH.norm.g.g",
                        "Recovery.xylose.PTEH.g.g", "Recovery.xylose.PTEH.norm.g.g",
                        "Release.glucose.xylose.PT.g.g", "Yield.glucose.xylose.PT.g.g",
                        "Release.glucose.xylose.PTEH.g.g", "Yield.glucose.xylose.PTEH.g.g", "Yield.glucose.xylose.PTEH.norm.g.g",
                        "Yield.Soluble.lignin.g.g")

write.csv(data.set1z, file ="Zipperclave-set1z-data-DE.csv")



#
#
#

# PART Two
rm(list=ls(all=TRUE))

#
#
#



#
# set working file


data <- read.csv("Zipperclave-set1z-data-DE.csv", header = TRUE)
data$bloc <- c(rep("a",7),rep("b",7),rep("c",7))

data$ID <- paste(data$Feedstock, data$Catalyst.A, data$Catalyst.B, data$RunTimeMin, data$RunTempC , sep="_")

a<-nrow(data)
data$row.names.g <- cbind(data$row.names, 1:a)
rm(a)

# 
# Outlier 

#outlier <- which(data$Sample.ID=="19604")
#data <- data[-outlier,]


# 
# Divide data according to the substrate 

subset.1<-subset(data, data$Feedstock=="Corn stover (cont)")
subset.2<-subset(data, data$Feedstock=="Wild")
subset.3<-subset(data, data$Feedstock=="Stacked (6 12)")

data.sel <- rbind(subset.2,subset.3)


#
# Summary of dataset per substrate & modality for Glucose yield

data_n_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), length)
names(data_n_glu)[1]<-"Substrate"
names(data_n_glu)[2]<-"n"
data_ave_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_glu)[1]<-"Substrate"
names(data_ave_glu)[2]<-"Mean"
data_med_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), median, na.rm=TRUE)
names(data_med_glu)[1]<-"Substrate"
names(data_med_glu)[2]<-"Median"
data_sd_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), sd, na.rm=TRUE)
names(data_sd_glu)[1]<-"Substrate"
names(data_sd_glu)[2]<-"SD"
data_Rsd_glu  <- as.data.frame((data_sd_glu$SD/data_ave_glu$Mean)*(100))
names(data_Rsd_glu)[1]<-"RSD"
data_Rsd_glu$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                             "Stacked (6 12)_1_H2SO4_10_140",
                             "Stacked (6 12)_1_H2SO4_10_155",
                             "Stacked (6 12)_1_H2SO4_10_170",
                             "Wild_1_H2SO4_10_140",
                             "Wild_1_H2SO4_10_155",
                             "Wild_1_H2SO4_10_170")
data_Conf_glu  <- as.data.frame((data_sd_glu$SD*2.228)/sqrt(data_n_glu$n))
names(data_Conf_glu)[1]<-"Confidence interval of the mean"
data_Conf_glu$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                              "Stacked (6 12)_1_H2SO4_10_140",
                              "Stacked (6 12)_1_H2SO4_10_155",
                              "Stacked (6 12)_1_H2SO4_10_170",
                              "Wild_1_H2SO4_10_140",
                              "Wild_1_H2SO4_10_155",
                              "Wild_1_H2SO4_10_170")
data_var_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), var, na.rm=TRUE)
names(data_var_glu)[1]<-"Substrate"
names(data_var_glu)[2]<-"Variance"
data_min_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), min, na.rm=TRUE)
names(data_min_glu)[1]<-"Substrate"
names(data_min_glu)[2]<-"Min"
data_max_glu  <- aggregate(data$Yield.glucose.PTEH.norm.g.g, by=list(as.factor(data$ID)), max, na.rm=TRUE)
names(data_max_glu)[1]<-"Substrate"
names(data_max_glu)[2]<-"Max"
data_ran_glu<-as.data.frame(data_max_glu$Max-data_min_glu$Min)
names(data_ran_glu)[1]<-"Range"
data_ran_glu$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                             "Stacked (6 12)_1_H2SO4_10_140",
                             "Stacked (6 12)_1_H2SO4_10_155",
                             "Stacked (6 12)_1_H2SO4_10_170",
                             "Wild_1_H2SO4_10_140",
                             "Wild_1_H2SO4_10_155",
                             "Wild_1_H2SO4_10_170")
data_firqua_glu<-as.data.frame(tapply(data$Yield.glucose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.25, na.rm=TRUE))
names(data_firqua_glu)[1]<-"First quantile"
data_firqua_glu$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                "Stacked (6 12)_1_H2SO4_10_140",
                                "Stacked (6 12)_1_H2SO4_10_155",
                                "Stacked (6 12)_1_H2SO4_10_170",
                                "Wild_1_H2SO4_10_140",
                                "Wild_1_H2SO4_10_155",
                                "Wild_1_H2SO4_10_170")
data_lasquat_glu<-as.data.frame(tapply(data$Yield.glucose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.75, na.rm=TRUE))
names(data_lasquat_glu)[1]<-"Last quantile"
data_lasquat_glu$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                 "Stacked (6 12)_1_H2SO4_10_140",
                                 "Stacked (6 12)_1_H2SO4_10_155",
                                 "Stacked (6 12)_1_H2SO4_10_170",
                                 "Wild_1_H2SO4_10_140",
                                 "Wild_1_H2SO4_10_155",
                                 "Wild_1_H2SO4_10_170")
data_ave_sev  <- aggregate(data$PtSeverityRo, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sev)[1]<-"Substrate"
names(data_ave_sev)[2]<-"PtSeverityRo"
data_ave_sevcom  <- aggregate(data$PtSeverityRoComb, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sevcom)[1]<-"Substrate"
names(data_ave_sevcom)[2]<-"PtSeverityRoComb"

# Summary of dataset Glucose yield

summarygluG<-merge(data_n_glu,data_ave_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_med_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_sd_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_Rsd_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_Conf_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_var_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_min_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_max_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_ran_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_firqua_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_lasquat_glu, by="Substrate")
summarygluG<-merge(summarygluG,data_ave_sev, by="Substrate")
summarygluG<-merge(summarygluG,data_ave_sevcom, by="Substrate")
summarygluG$Biomass.num  <- c(1:7)
summarygluG$carbohydrate<-rep("Glucose.PTEH.y",7)
summarygluG<-separate(data = summarygluG, col = Substrate, into = c("Feedstock", "Catalyst.A", "Catalyst.B", "RunTimeMin", "RunTempC"), sep = "_")
summarygluG$IDcombo1<-paste(summarygluG$Feedstock, summarygluG$Catalyst.A, summarygluG$Catalyst.B, summarygluG$RunTimeMin, summarygluG$RunTempC , sep="_")


#
# Summary of dataset per substrate & modality for Xylose yield

data_n_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), length)
names(data_n_xyl)[1]<-"Substrate"
names(data_n_xyl)[2]<-"n"
data_ave_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_xyl)[1]<-"Substrate"
names(data_ave_xyl)[2]<-"Mean"
data_med_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), median, na.rm=TRUE)
names(data_med_xyl)[1]<-"Substrate"
names(data_med_xyl)[2]<-"Median"
data_sd_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), sd, na.rm=TRUE)
names(data_sd_xyl)[1]<-"Substrate"
names(data_sd_xyl)[2]<-"SD"
data_Rsd_xyl  <- as.data.frame((data_sd_xyl$SD/data_ave_xyl$Mean)*(100))
names(data_Rsd_xyl)[1]<-"RSD"
data_Rsd_xyl$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                             "Stacked (6 12)_1_H2SO4_10_140",
                             "Stacked (6 12)_1_H2SO4_10_155",
                             "Stacked (6 12)_1_H2SO4_10_170",
                             "Wild_1_H2SO4_10_140",
                             "Wild_1_H2SO4_10_155",
                             "Wild_1_H2SO4_10_170")
data_Conf_xyl  <- as.data.frame((data_sd_xyl$SD*2.228)/sqrt(data_n_xyl$n))
names(data_Conf_xyl)[1]<-"Confidence interval of the mean"
data_Conf_xyl$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                              "Stacked (6 12)_1_H2SO4_10_140",
                              "Stacked (6 12)_1_H2SO4_10_155",
                              "Stacked (6 12)_1_H2SO4_10_170",
                              "Wild_1_H2SO4_10_140",
                              "Wild_1_H2SO4_10_155",
                              "Wild_1_H2SO4_10_170")
data_var_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), var, na.rm=TRUE)
names(data_var_xyl)[1]<-"Substrate"
names(data_var_xyl)[2]<-"Variance"
data_min_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), min, na.rm=TRUE)
names(data_min_xyl)[1]<-"Substrate"
names(data_min_xyl)[2]<-"Min"
data_max_xyl  <- aggregate(data$Yield.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), max, na.rm=TRUE)
names(data_max_xyl)[1]<-"Substrate"
names(data_max_xyl)[2]<-"Max"
data_ran_xyl<-as.data.frame(data_max_xyl$Max-data_min_xyl$Min)
names(data_ran_xyl)[1]<-"Range"
data_ran_xyl$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                             "Stacked (6 12)_1_H2SO4_10_140",
                             "Stacked (6 12)_1_H2SO4_10_155",
                             "Stacked (6 12)_1_H2SO4_10_170",
                             "Wild_1_H2SO4_10_140",
                             "Wild_1_H2SO4_10_155",
                             "Wild_1_H2SO4_10_170")
data_firqua_xyl<-as.data.frame(tapply(data$Yield.xylose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.25, na.rm=TRUE))
names(data_firqua_xyl)[1]<-"First quantile"
data_firqua_xyl$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                "Stacked (6 12)_1_H2SO4_10_140",
                                "Stacked (6 12)_1_H2SO4_10_155",
                                "Stacked (6 12)_1_H2SO4_10_170",
                                "Wild_1_H2SO4_10_140",
                                "Wild_1_H2SO4_10_155",
                                "Wild_1_H2SO4_10_170")
data_lasquat_xyl<-as.data.frame(tapply(data$Yield.xylose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.75, na.rm=TRUE))
names(data_lasquat_xyl)[1]<-"Last quantile"
data_lasquat_xyl$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                 "Stacked (6 12)_1_H2SO4_10_140",
                                 "Stacked (6 12)_1_H2SO4_10_155",
                                 "Stacked (6 12)_1_H2SO4_10_170",
                                 "Wild_1_H2SO4_10_140",
                                 "Wild_1_H2SO4_10_155",
                                 "Wild_1_H2SO4_10_170")
data_ave_sev  <- aggregate(data$PtSeverityRo, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sev)[1]<-"Substrate"
names(data_ave_sev)[2]<-"PtSeverityRo"
data_ave_sevcom  <- aggregate(data$PtSeverityRoComb, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sevcom)[1]<-"Substrate"
names(data_ave_sevcom)[2]<-"PtSeverityRoComb"

# Summary of dataset Xylose yield

summaryxylG<-merge(data_n_xyl,data_ave_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_med_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_sd_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_Rsd_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_Conf_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_var_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_min_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_max_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_ran_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_firqua_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_lasquat_xyl, by="Substrate")
summaryxylG<-merge(summaryxylG,data_ave_sev, by="Substrate")
summaryxylG<-merge(summaryxylG,data_ave_sevcom, by="Substrate")
summaryxylG$Biomass.num  <- c(1:7)
summaryxylG$carbohydrate<-rep("Xylose.PTEH.y",7)
summaryxylG<-separate(data = summaryxylG, col = Substrate, into = c("Feedstock", "Catalyst.A", "Catalyst.B", "RunTimeMin", "RunTempC"), sep = "_")
summaryxylG$IDcombo1<-paste(summaryxylG$Feedstock, summaryxylG$Catalyst.A, summaryxylG$Catalyst.B, summaryxylG$RunTimeMin, summaryxylG$RunTempC , sep="_")


#
# Summary of dataset per substrate & modality for Glucose.Xylose.yield

data_n_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), length)
names(data_n_glxy)[1]<-"Substrate"
names(data_n_glxy)[2]<-"n"
data_ave_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_glxy)[1]<-"Substrate"
names(data_ave_glxy)[2]<-"Mean"
data_med_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), median, na.rm=TRUE)
names(data_med_glxy)[1]<-"Substrate"
names(data_med_glxy)[2]<-"Median"
data_sd_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), sd, na.rm=TRUE)
names(data_sd_glxy)[1]<-"Substrate"
names(data_sd_glxy)[2]<-"SD"
data_Rsd_glxy  <- as.data.frame((data_sd_glxy$SD/data_ave_glxy$Mean)*(100))
names(data_Rsd_glxy)[1]<-"RSD"
data_Rsd_glxy$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                              "Stacked (6 12)_1_H2SO4_10_140",
                              "Stacked (6 12)_1_H2SO4_10_155",
                              "Stacked (6 12)_1_H2SO4_10_170",
                              "Wild_1_H2SO4_10_140",
                              "Wild_1_H2SO4_10_155",
                              "Wild_1_H2SO4_10_170")
data_Conf_glxy  <- as.data.frame((data_sd_glxy$SD*2.228)/sqrt(data_n_glxy$n))
names(data_Conf_glxy)[1]<-"Confidence interval of the mean"
data_Conf_glxy$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                               "Stacked (6 12)_1_H2SO4_10_140",
                               "Stacked (6 12)_1_H2SO4_10_155",
                               "Stacked (6 12)_1_H2SO4_10_170",
                               "Wild_1_H2SO4_10_140",
                               "Wild_1_H2SO4_10_155",
                               "Wild_1_H2SO4_10_170")
data_var_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), var, na.rm=TRUE)
names(data_var_glxy)[1]<-"Substrate"
names(data_var_glxy)[2]<-"Variance"
data_min_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), min, na.rm=TRUE)
names(data_min_glxy)[1]<-"Substrate"
names(data_min_glxy)[2]<-"Min"
data_max_glxy  <- aggregate(data$Yield.glucose.xylose.PTEH.norm.g.g, by=list(as.factor(data$ID)), max, na.rm=TRUE)
names(data_max_glxy)[1]<-"Substrate"
names(data_max_glxy)[2]<-"Max"
data_ran_glxy<-as.data.frame(data_max_glxy$Max-data_min_glxy$Min)
names(data_ran_glxy)[1]<-"Range"
data_ran_glxy$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                              "Stacked (6 12)_1_H2SO4_10_140",
                              "Stacked (6 12)_1_H2SO4_10_155",
                              "Stacked (6 12)_1_H2SO4_10_170",
                              "Wild_1_H2SO4_10_140",
                              "Wild_1_H2SO4_10_155",
                              "Wild_1_H2SO4_10_170")
data_firqua_glxy<-as.data.frame(tapply(data$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.25, na.rm=TRUE))
names(data_firqua_glxy)[1]<-"First quantile"
data_firqua_glxy$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                 "Stacked (6 12)_1_H2SO4_10_140",
                                 "Stacked (6 12)_1_H2SO4_10_155",
                                 "Stacked (6 12)_1_H2SO4_10_170",
                                 "Wild_1_H2SO4_10_140",
                                 "Wild_1_H2SO4_10_155",
                                 "Wild_1_H2SO4_10_170")
data_lasquat_glxy<-as.data.frame(tapply(data$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(data$ID), quantile, 0.75, na.rm=TRUE))
names(data_lasquat_glxy)[1]<-"Last quantile"
data_lasquat_glxy$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                  "Stacked (6 12)_1_H2SO4_10_140",
                                  "Stacked (6 12)_1_H2SO4_10_155",
                                  "Stacked (6 12)_1_H2SO4_10_170",
                                  "Wild_1_H2SO4_10_140",
                                  "Wild_1_H2SO4_10_155",
                                  "Wild_1_H2SO4_10_170")
data_ave_sev  <- aggregate(data$PtSeverityRo, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sev)[1]<-"Substrate"
names(data_ave_sev)[2]<-"PtSeverityRo"
data_ave_sevcom  <- aggregate(data$PtSeverityRoComb, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sevcom)[1]<-"Substrate"
names(data_ave_sevcom)[2]<-"PtSeverityRoComb"

# Summary of dataset Glucose.Xylose.yield

summaryglxyG<-merge(data_n_glxy,data_ave_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_med_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_sd_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_Rsd_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_Conf_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_var_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_min_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_max_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_ran_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_firqua_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_lasquat_glxy, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_ave_sev, by="Substrate")
summaryglxyG<-merge(summaryglxyG,data_ave_sevcom, by="Substrate")
summaryglxyG$Biomass.num  <- c(1:7)
summaryglxyG$carbohydrate<-rep("Glucose.Xylose.PTEH.y",7)
summaryglxyG<-separate(data = summaryglxyG, col = Substrate, into = c("Feedstock", "Catalyst.A", "Catalyst.B", "RunTimeMin", "RunTempC"), sep = "_")
summaryglxyG$IDcombo1<-paste(summaryglxyG$Feedstock, summaryglxyG$Catalyst.A, summaryglxyG$Catalyst.B, summaryglxyG$RunTimeMin, summaryglxyG$RunTempC , sep="_")


#
# Summary of dataset per substrate & modality for Soluble.Lignin.yield

data_n_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), length)
names(data_n_sollig)[1]<-"Substrate"
names(data_n_sollig)[2]<-"n"
data_ave_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sollig)[1]<-"Substrate"
names(data_ave_sollig)[2]<-"Mean"
data_med_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), median, na.rm=TRUE)
names(data_med_sollig)[1]<-"Substrate"
names(data_med_sollig)[2]<-"Median"
data_sd_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), sd, na.rm=TRUE)
names(data_sd_sollig)[1]<-"Substrate"
names(data_sd_sollig)[2]<-"SD"
data_Rsd_sollig  <- as.data.frame((data_sd_sollig$SD/data_ave_sollig$Mean)*(100))
names(data_Rsd_sollig)[1]<-"RSD"
data_Rsd_sollig$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                "Stacked (6 12)_1_H2SO4_10_140",
                                "Stacked (6 12)_1_H2SO4_10_155",
                                "Stacked (6 12)_1_H2SO4_10_170",
                                "Wild_1_H2SO4_10_140",
                                "Wild_1_H2SO4_10_155",
                                "Wild_1_H2SO4_10_170")
data_Conf_sollig  <- as.data.frame((data_sd_sollig$SD*2.228)/sqrt(data_n_sollig$n))
names(data_Conf_sollig)[1]<-"Confidence interval of the mean"
data_Conf_sollig$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                 "Stacked (6 12)_1_H2SO4_10_140",
                                 "Stacked (6 12)_1_H2SO4_10_155",
                                 "Stacked (6 12)_1_H2SO4_10_170",
                                 "Wild_1_H2SO4_10_140",
                                 "Wild_1_H2SO4_10_155",
                                 "Wild_1_H2SO4_10_170")
data_var_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), var, na.rm=TRUE)
names(data_var_sollig)[1]<-"Substrate"
names(data_var_sollig)[2]<-"Variance"
data_min_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), min, na.rm=TRUE)
names(data_min_sollig)[1]<-"Substrate"
names(data_min_sollig)[2]<-"Min"
data_max_sollig  <- aggregate(data$Yield.Soluble.lignin.g.g, by=list(as.factor(data$ID)), max, na.rm=TRUE)
names(data_max_sollig)[1]<-"Substrate"
names(data_max_sollig)[2]<-"Max"
data_ran_sollig<-as.data.frame(data_max_sollig$Max-data_min_sollig$Min)
names(data_ran_sollig)[1]<-"Range"
data_ran_sollig$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                "Stacked (6 12)_1_H2SO4_10_140",
                                "Stacked (6 12)_1_H2SO4_10_155",
                                "Stacked (6 12)_1_H2SO4_10_170",
                                "Wild_1_H2SO4_10_140",
                                "Wild_1_H2SO4_10_155",
                                "Wild_1_H2SO4_10_170")
data_firqua_sollig<-as.data.frame(tapply(data$Yield.Soluble.lignin.g.g, as.factor(data$ID), quantile, 0.25, na.rm=TRUE))
names(data_firqua_sollig)[1]<-"First quantile"
data_firqua_sollig$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                   "Stacked (6 12)_1_H2SO4_10_140",
                                   "Stacked (6 12)_1_H2SO4_10_155",
                                   "Stacked (6 12)_1_H2SO4_10_170",
                                   "Wild_1_H2SO4_10_140",
                                   "Wild_1_H2SO4_10_155",
                                   "Wild_1_H2SO4_10_170")
data_lasquat_sollig<-as.data.frame(tapply(data$Yield.Soluble.lignin.g.g, as.factor(data$ID), quantile, 0.75, na.rm=TRUE))
names(data_lasquat_sollig)[1]<-"Last quantile"
data_lasquat_sollig$Substrate  <- c("Corn stover (cont)_1_H2SO4_10_170", 
                                    "Stacked (6 12)_1_H2SO4_10_140",
                                    "Stacked (6 12)_1_H2SO4_10_155",
                                    "Stacked (6 12)_1_H2SO4_10_170",
                                    "Wild_1_H2SO4_10_140",
                                    "Wild_1_H2SO4_10_155",
                                    "Wild_1_H2SO4_10_170")
data_ave_sev  <- aggregate(data$PtSeverityRo, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sev)[1]<-"Substrate"
names(data_ave_sev)[2]<-"PtSeverityRo"
data_ave_sevcom  <- aggregate(data$PtSeverityRoComb, by=list(as.factor(data$ID)), mean, na.rm=TRUE)
names(data_ave_sevcom)[1]<-"Substrate"
names(data_ave_sevcom)[2]<-"PtSeverityRoComb"

# Summary of dataset Soluble.Lignin.yield

summarysolligG<-merge(data_n_sollig,data_ave_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_med_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_sd_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_Rsd_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_Conf_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_var_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_min_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_max_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_ran_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_firqua_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_lasquat_sollig, by="Substrate")
summarysolligG<-merge(summarysolligG,data_ave_sev, by="Substrate")
summarysolligG<-merge(summarysolligG,data_ave_sevcom, by="Substrate")
summarysolligG$Biomass.num  <- c(1:7)
summarysolligG$carbohydrate<-rep("Soluble.lignin.y",7)
summarysolligG<-separate(data = summarysolligG, col = Substrate, into = c("Feedstock", "Catalyst.A", "Catalyst.B", "RunTimeMin", "RunTempC"), sep = "_")
summarysolligG$IDcombo1<-paste(summarysolligG$Feedstock, summarysolligG$Catalyst.A, summarysolligG$Catalyst.B, summarysolligG$RunTimeMin, summarysolligG$RunTempC, sep="_")


#
# Merge subset / summary

summary.PTEH.G<-rbind(summarygluG, summaryxylG, summaryglxyG,summarysolligG)
write.csv(format(summary.PTEH.G, digits=4), file ="Zipperclave-summary-PTEH-G-yield-DE-norm.csv")



#
#
#

# PART Three
rm(list=ls(all=TRUE))

#
#
#


#
# set working file

data <- read.csv("Zipperclave-set1z-data-DE.csv", header = TRUE)
data$bloc <- c(rep("a",7),rep("b",7),rep("c",7))

data$ID <- paste(data$Feedstock, data$Catalyst.A, data$Catalyst.B, data$RunTimeMin, data$RunTempC , sep="_")

a<-nrow(data)
data$row.names.g <- cbind(data$row.names, 1:a)
rm(a)

# 
# Outlier 

#outlier <- which(data$Sample.ID=="19604")
#data <- data[-outlier,]


# 
# Divide data according to the substrate 

subset.1<-subset(data, data$Feedstock=="Corn stover (cont)")
subset.2<-subset(data, data$Feedstock=="Wild")
subset.3<-subset(data, data$Feedstock=="Stacked (6 12)")

data.sel <- rbind(subset.2,subset.3)


# 
# Factor and levels

data.sel$Feedstock <- as.factor(data.sel$Feedstock)
data.sel$Feedstock <- droplevels(data.sel$Feedstock)
data.sel$Feedstock <- relevel(data.sel$Feedstock, "Wild")
data.sel$RunTempC <- as.factor(data.sel$RunTempC)
data.sel$RunTempC <- droplevels(data.sel$RunTempC)
data.sel$RunTempC <- relevel(data.sel$RunTempC, "140")
data.sel$bloc <- as.factor(data.sel$bloc)
data.sel$bloc <- droplevels(data.sel$bloc)
data.sel$bloc <- relevel(data.sel$bloc, "a")


#
# check normality 

# Yield.glucose.PTEH.norm.g.g
tapply(subset.2$Yield.glucose.PTEH.norm.g.g, as.factor(subset.2$ID), shapiro.test)
tapply(subset.3$Yield.glucose.PTEH.norm.g.g, as.factor(subset.3$ID), shapiro.test)

# Yield.xylose.PTEH.norm.g.g
tapply(subset.2$Yield.xylose.PTEH.norm.g.g, as.factor(subset.2$ID), shapiro.test)
tapply(subset.3$Yield.xylose.PTEH.norm.g.g, as.factor(subset.3$ID), shapiro.test)

# Glucose.Xylose.y
tapply(subset.2$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(subset.2$ID), shapiro.test)
tapply(subset.3$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(subset.3$ID), shapiro.test)

# Soluble.lignin.y
tapply(subset.2$Yield.Soluble.lignin.g.g, as.factor(subset.2$ID), shapiro.test)
tapply(subset.3$Yield.Soluble.lignin.g.g, as.factor(subset.3$ID), shapiro.test)


#
# check equality of variance 

# Yield.glucose.PTEH.norm.g.g
leveneTest(data.sel$Yield.glucose.PTEH.norm.g.g, as.factor(data.sel$ID), mean)
leveneTest(data.sel$Yield.glucose.PTEH.norm.g.g, as.factor(data.sel$ID), median)

# Yield.xylose.PTEH.norm.g.g
leveneTest(data.sel$Yield.xylose.PTEH.norm.g.g, as.factor(data.sel$ID), mean)
leveneTest(data.sel$Yield.xylose.PTEH.norm.g.g, as.factor(data.sel$ID), median)

# Glucose.Xylose.y
leveneTest(data.sel$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(data.sel$ID), mean)
leveneTest(data.sel$Yield.glucose.xylose.PTEH.norm.g.g, as.factor(data.sel$ID), median)

# Soluble.lignin.y
leveneTest(data.sel$Yield.Soluble.lignin.g.g, as.factor(data.sel$ID), mean)
leveneTest(data.sel$Yield.Soluble.lignin.g.g, as.factor(data.sel$ID), median)


#
# anova 2 - Yield.glucose.PTEH.norm.g.g

aov2.av1glu <- lm(Yield.glucose.PTEH.norm.g.g ~ Feedstock + as.factor(RunTempC)  + Feedstock*as.factor(RunTempC) + bloc  , data=data.sel)
summary(aov2.av1glu)
Anova(aov2.av1glu, type="2")

aov2.av1glu.res=data.sel
aov2.av1glu.res$M1.Fit = fitted(aov2.av1glu)
aov2.av1glu.res$M1.Resid = resid(aov2.av1glu)
shapiro.test(aov2.av1glu.res$M1.Resid)

windows(record=TRUE)
par(mfrow=c(2,2))
plot(M1.Resid ~ M1.Fit, data=aov2.av1glu.res, xlab="Fitted value", ylab="Residual", 
     main="Residual versus fitted value - Glucose PTEH yield", col=as.factor(aov2.av1glu.res$ID), pch=20, cex.main=0.7)

hist(aov2.av1glu.res$M1.Resid, xlab="Residual", ylab="Frequency", main="Histrograms of the residuals - Glucose PTEH yield",col="grey", cex.main=0.7)

qqnorm(aov2.av1glu.res$M1.Resid, main="Q-Q Plot - Glucose PTEH yield", cex.main=0.7)
qqline(aov2.av1glu.res$M1.Resid)

plot(M1.Resid ~ row.names.g, data=aov2.av1glu.res, xlab="Row number", ylab="Residual", 
     main="Residual versus fitted value - Glucose PTH yield", col=as.factor(aov2.av1glu.res$ID), pch=20, cex.main=0.7)


windows(record=TRUE)
interaction.plot(data.sel$Feedstock, data.sel$RunTempC, data.sel$Yield.glucose.PTEH.norm.g.g)
windows(record=TRUE)
interaction.plot(data.sel$RunTempC, data.sel$Feedstock, data.sel$Yield.glucose.PTEH.norm.g.g)


lm0<-aov(Yield.glucose.PTEH.norm.g.g ~ as.factor(Feedstock)  + as.factor(RunTempC) + bloc, data=data.sel)
TukeyHSD(aov(lm0))


#
# anova 2 - Yield.xylose.PTEH.norm.g.g

aov2.av1xyl <- lm(Yield.xylose.PTEH.norm.g.g ~ Feedstock + as.factor(RunTempC)  + Feedstock*as.factor(RunTempC)  + bloc, data=data.sel)
summary(aov2.av1xyl)
Anova(aov2.av1xyl, type="2")

aov2.av1xyl.res=data.sel
aov2.av1xyl.res$M1.Fit = fitted(aov2.av1xyl)
aov2.av1xyl.res$M1.Resid = resid(aov2.av1xyl)
shapiro.test(aov2.av1xyl.res$M1.Resid)

windows(record=TRUE)
par(mfrow=c(2,2))
plot(M1.Resid ~ M1.Fit, data=aov2.av1xyl.res, xlab="Fitted value", ylab="Residual", 
     main="Residual versus fitted value - Xylose PTEH yield", col=as.factor(aov2.av1xyl.res$ID), pch=20, cex.main=0.7)

hist(aov2.av1xyl.res$M1.Resid, xlab="Residual", ylab="Frequency", main="Histrograms of the residuals - Xylose PTEH yield",col="grey", cex.main=0.7)

qqnorm(aov2.av1xyl.res$M1.Resid, main="Q-Q Plot - Xylose PTEH yield", cex.main=0.7)
qqline(aov2.av1xyl.res$M1.Resid)

plot(M1.Resid ~ row.names.g, data=aov2.av1xyl.res, xlab="Row number", ylab="Residual", 
     main="Residual versus fitted value - Xylose PTEH yield", col=as.factor(aov2.av1xyl.res$ID), pch=20, cex.main=0.7)


windows(record=TRUE)
interaction.plot(data.sel$Feedstock, data.sel$RunTempC, data.sel$Yield.xylose.PTEH.norm.g.g)
windows(record=TRUE)
interaction.plot(data.sel$RunTempC, data.sel$Feedstock, data.sel$Yield.xylose.PTEH.norm.g.g)


lm1<-aov(Yield.xylose.PTEH.norm.g.g ~ as.factor(Feedstock) + as.factor(RunTempC) + bloc, data=data.sel)
TukeyHSD(aov(lm1))


#
# anova 2 - Yield.glucose.xylose.PTEH.norm.g.g

aov2.av1glxy <- lm(Yield.glucose.xylose.PTEH.norm.g.g ~ Feedstock + as.factor(RunTempC)  + Feedstock*as.factor(RunTempC)  + bloc, data=data.sel)
summary(aov2.av1glxy)
Anova(aov2.av1glxy, type="2")

aov2.av1glxy.res=data.sel
aov2.av1glxy.res$M1.Fit = fitted(aov2.av1glxy)
aov2.av1glxy.res$M1.Resid = resid(aov2.av1glxy)
shapiro.test(aov2.av1glxy.res$M1.Resid)

windows(record=TRUE)
par(mfrow=c(2,2))
plot(M1.Resid ~ M1.Fit, data=aov2.av1glxy.res, xlab="Fitted value", ylab="Residual", 
     main="Residual versus fitted value - Glucose.Xylose PTEH yield", col=as.factor(aov2.av1glxy.res$ID), pch=20, cex.main=0.7)

hist(aov2.av1glxy.res$M1.Resid, xlab="Residual", ylab="Frequency", main="Histrograms of the residuals - Glucose.Xylose PTEH yield",col="grey", cex.main=0.7)

qqnorm(aov2.av1glxy.res$M1.Resid, main="Q-Q Plot - Glucose.Xylose PTEH yield", cex.main=0.7)
qqline(aov2.av1glxy.res$M1.Resid)

plot(M1.Resid ~ row.names.g, data=aov2.av1glxy.res, xlab="Row number", ylab="Residual", 
     main="Residual versus fitted value - Glucose.Xylose PTEH yield", col=as.factor(aov2.av1glxy.res$ID), pch=20, cex.main=0.7)


windows(record=TRUE)
interaction.plot(data.sel$Feedstock, data.sel$RunTempC, data.sel$Yield.glucose.xylose.PTEH.norm.g.g)
windows(record=TRUE)
interaction.plot(data.sel$RunTempC, data.sel$Feedstock, data.sel$Yield.glucose.xylose.PTEH.norm.g.g)


lm3<-aov(Yield.glucose.xylose.PTEH.norm.g.g ~ as.factor(Feedstock)  + as.factor(RunTempC) + bloc, data=data.sel)
TukeyHSD(aov(lm3))


#
# anova 2 - Yield.Soluble.lignin.g.g

aov2.av1sollig <- lm(Yield.Soluble.lignin.g.g ~ Feedstock + as.factor(RunTempC)  + Feedstock*as.factor(RunTempC)  + bloc, data=data.sel)
summary(aov2.av1sollig)
Anova(aov2.av1sollig, type="2")

aov2.av1sollig.res=data.sel
aov2.av1sollig.res$M1.Fit = fitted(aov2.av1sollig)
aov2.av1sollig.res$M1.Resid = resid(aov2.av1sollig)
shapiro.test(aov2.av1sollig.res$M1.Resid)

windows(record=TRUE)
par(mfrow=c(2,2))
plot(M1.Resid ~ M1.Fit, data=aov2.av1sollig.res, xlab="Fitted value", ylab="Residual", 
     main="Residual versus fitted value - Soluble lignin yield", col=as.factor(aov2.av1sollig.res$ID), pch=20, cex.main=0.7)

hist(aov2.av1sollig.res$M1.Resid, xlab="Residual", ylab="Frequency", main="Histrograms of the residuals - Soluble lignin yield",col="grey", cex.main=0.7)

qqnorm(aov2.av1sollig.res$M1.Resid, main="Q-Q Plot - Soluble lignin yield", cex.main=0.7)
qqline(aov2.av1sollig.res$M1.Resid)

plot(M1.Resid ~ row.names.g, data=aov2.av1sollig.res, xlab="Row number", ylab="Residual", 
     main="Residual versus fitted value - Soluble lignin yield", col=as.factor(aov2.av1sollig.res$ID), pch=20, cex.main=0.7)


windows(record=TRUE)
interaction.plot(data.sel$Feedstock, data.sel$RunTempC, data.sel$Yield.Soluble.lignin.g.g)
windows(record=TRUE)
interaction.plot(data.sel$RunTempC, data.sel$Feedstock, data.sel$Yield.Soluble.lignin.g.g)


lm4<-aov(Yield.Soluble.lignin.g.g ~ as.factor(Feedstock)  + as.factor(RunTempC) + bloc, data=data.sel)
TukeyHSD(aov(lm4))



#
#
#

# PART Four
rm(list=ls(all=TRUE))

#
#
#



#
# set working file

data.wk <- read.csv("Zipperclave-summary-PTEH-G-yield-DE-norm.csv", header = TRUE)

a<-nrow(data.wk)
data.wk$row.names.g <- cbind(data.wk$row.names, 1:a)
rm(a)

toremove1  <- which(data.wk$Feedstock=="Corn stover (cont)")
data <- data.wk[-toremove1,]


# 
# Divide data according to the variable 

subset.glu.agg <-subset(data, data$carbohydrate=="Glucose.PTEH.y")
subset.glu.agg.reord <- subset.glu.agg[c(4,5,6,1,2,3),]

subset.glu.agg.reord.wild <- subset.glu.agg.reord[c(1,2,3),]
subset.glu.agg.reord.stacked <- subset.glu.agg.reord[c(4,5,6),]

subset.glu.agg.col.mean <- cbind("Wild type"=subset.glu.agg.reord.wild$Mean,
                                 "stacked mutant"=subset.glu.agg.reord.stacked$Mean)
subset.glu.agg.col.Confidence.interval.of.the.mean <- cbind("Wild type"=subset.glu.agg.reord.wild$Confidence.interval.of.the.mean,
                                                            "stacked mutant"=subset.glu.agg.reord.stacked$Confidence.interval.of.the.mean)


subset.xyl.agg <-subset(data, data$carbohydrate=="Xylose.PTEH.y")
subset.xyl.agg.reord <- subset.xyl.agg[c(4,5,6,1,2,3),]

subset.xyl.agg.reord.wild <- subset.xyl.agg.reord[c(1,2,3),]
subset.xyl.agg.reord.stacked <- subset.xyl.agg.reord[c(4,5,6),]

subset.xyl.agg.col.mean <- cbind("Wild type"=subset.xyl.agg.reord.wild$Mean,
                                 "stacked mutant"=subset.xyl.agg.reord.stacked$Mean)
subset.xyl.agg.col.Confidence.interval.of.the.mean <- cbind("Wild type"=subset.xyl.agg.reord.wild$Confidence.interval.of.the.mean,
                                                            "stacked mutant"=subset.xyl.agg.reord.stacked$Confidence.interval.of.the.mean)


subset.glxy.agg <-subset(data, data$carbohydrate=="Glucose.Xylose.PTEH.y")
subset.glxy.agg.reord <- subset.glxy.agg[c(4,5,6,1,2,3),]

subset.glxy.agg.reord.wild <- subset.glxy.agg.reord[c(1,2,3),]
subset.glxy.agg.reord.stacked <- subset.glxy.agg.reord[c(4,5,6),]

subset.glxy.agg.col.mean <- cbind("Wild type"=subset.glxy.agg.reord.wild$Mean,
                                  "stacked mutant"=subset.glxy.agg.reord.stacked$Mean)
subset.glxy.agg.col.Confidence.interval.of.the.mean <- cbind("Wild type"=subset.glxy.agg.reord.wild$Confidence.interval.of.the.mean,
                                                             "stacked mutant"=subset.glxy.agg.reord.stacked$Confidence.interval.of.the.mean)


subset.sollig.agg <-subset(data, data$carbohydrate=="Soluble.lignin.y")
subset.sollig.agg.reord <- subset.sollig.agg[c(4,5,6,1,2,3),]

subset.sollig.agg.reord.wild <- subset.sollig.agg.reord[c(1,2,3),]
subset.sollig.agg.reord.stacked <- subset.sollig.agg.reord[c(4,5,6),]

subset.sollig.agg.col.mean <- cbind("Wild type"=subset.sollig.agg.reord.wild$Mean,
                                    "stacked mutant"=subset.sollig.agg.reord.stacked$Mean)
subset.sollig.agg.col.Confidence.interval.of.the.mean <- cbind("Wild type"=subset.sollig.agg.reord.wild$Confidence.interval.of.the.mean,
                                                               "stacked mutant"=subset.sollig.agg.reord.stacked$Confidence.interval.of.the.mean)


#
# Plots

color1 <-c("goldenrod1","goldenrod3","darkorange3","goldenrod1","goldenrod3","darkorange3")
color2 <-c("goldenrod1","goldenrod3","darkorange3")
arrows1 <- c(1.5, 2.5, 3.5,  
             5.5, 6.5, 7.5)
labels1 <- 1:6
labels2 <- 1:6


pdf("Zipperclave-plots-PTEH-g-yield-bar-DE-norm.pdf")

par(mfrow=c(2,2))

barplot(subset.glu.agg.col.mean , beside=TRUE, main="Glucose Normalized", cex=0.6, cex.lab=0.8, cex.axis=0.8,
        ylab="Reactivity - Glucose yield (g/g)", ylim=c(0,1.1),
        names.arg=c("Wild type","Stacked mutant"), col=color1)
legend("top",horiz=TRUE,legend=c("140°C", "155°C", "170°C"), cex = 0.4, pch=15, col=color2, bty="n")
arrows(arrows1 , subset.glu.agg.reord$Mean - subset.glu.agg.reord$Confidence.interval.of.the.mean ,
       arrows1 , subset.glu.agg.reord$Mean + subset.glu.agg.reord$Confidence.interval.of.the.mean ,
       code=3, length=0.04, angle=90, col='black')

barplot(subset.xyl.agg.col.mean , beside=TRUE, main="Xylose Normalized", cex=0.6, cex.lab=0.8, cex.axis=0.8,
        ylab="Reactivity - Xylose yield (g/g)", ylim=c(0,1.1),
        names.arg=c("Wild type","Stacked mutant"), col=color1)
legend("top",horiz=TRUE,legend=c("140°C", "155°C", "170°C"), cex = 0.4, pch=15, col=color2, bty="n")
arrows(arrows1 , subset.xyl.agg.reord$Mean - subset.xyl.agg.reord$Confidence.interval.of.the.mean ,
       arrows1 , subset.xyl.agg.reord$Mean + subset.xyl.agg.reord$Confidence.interval.of.the.mean ,
       code=3, length=0.04, angle=90, col='black')

barplot(subset.glxy.agg.col.mean , beside=TRUE, main="Glucose and Xylose Normalized", cex=0.6, cex.lab=0.8, cex.axis=0.8,
        ylab="Reactivity - Glucose and Xylose yield (g/g)", ylim=c(0,1.1),
        names.arg=c("Wild type","Stacked mutant"), col=color1)
legend("top",horiz=TRUE,legend=c("140°C", "155°C", "170°C"), cex = 0.4, pch=15, col=color2, bty="n")
arrows(arrows1 , subset.glxy.agg.reord$Mean - subset.glxy.agg.reord$Confidence.interval.of.the.mean ,
       arrows1 , subset.glxy.agg.reord$Mean + subset.glxy.agg.reord$Confidence.interval.of.the.mean ,
       code=3, length=0.04, angle=90, col='black')

barplot(subset.sollig.agg.col.mean , beside=TRUE, main="Soluble lignin Normalized", cex=0.6, cex.lab=0.8, cex.axis=0.8,
        ylab="Soluble lignin (g/g)", ylim=c(0,0.25),
        names.arg=c("Wild type","Stacked mutant"), col=color1)
legend("top",horiz=TRUE,legend=c("140°C", "155°C", "170°C"), cex = 0.4, pch=15, col=color2, bty="n")
arrows(arrows1 , subset.sollig.agg.reord$Mean - subset.sollig.agg.reord$Confidence.interval.of.the.mean ,
       arrows1 , subset.sollig.agg.reord$Mean + subset.sollig.agg.reord$Confidence.interval.of.the.mean ,
       code=3, length=0.04, angle=90, col='black')

dev.off()


pdf("Zipperclave-plots-PTEH-g-yield-bar-DE-norm-pub-2.pdf")

par(mar=par()$mar+c(4,0,-2.5,-2)) 

barplot(subset.glxy.agg.col.mean , beside=TRUE, main=NULL, cex=1.2, cex.lab=1.2, cex.axis=1.2,
        ylab="Total sugar yield (g/g)", ylim=c(0,1.05),
        names.arg=c("Wild type","Stacked mutant"), col=color1)
arrows(arrows1 , subset.glxy.agg.reord$Mean - subset.glxy.agg.reord$Confidence.interval.of.the.mean ,
       arrows1 , subset.glxy.agg.reord$Mean + subset.glxy.agg.reord$Confidence.interval.of.the.mean ,
       code=3, length=0.04, angle=90, col='black')
legend("bottom",inset=c(0.0,-0.37),horiz=TRUE,
       legend=c("140°C", "155°C", "170°C"), 
       cex = 1.2, pch=15, col=color2, xpd=TRUE, bty='n')

dev.off()



