## ----include=FALSE, echo=FALSE------------------------------------------------
knitr::opts_chunk$set(fig.width = 7,
                      fig.height = 4,
                      cache = TRUE)

## ----echo=FALSE, results='hide', message=FALSE--------------------------------
library(morse)
library(dplyr)

## ----step1TT, cache=TRUE------------------------------------------------------
data(cadmium2)
survDataCheck(cadmium2)

## ----step2TT, cache=TRUE------------------------------------------------------
dat <- survData(cadmium2)
head(dat)

## ----step3TT, cache=TRUE------------------------------------------------------
plot(dat, pool.replicate = FALSE)

## ----cache=TRUE---------------------------------------------------------------
plot(dat, concentration = 124, addlegend = TRUE,
     pool.replicate = FALSE, style ="generic")

## ----cache=TRUE---------------------------------------------------------------
plotDoseResponse(dat, target.time = 21, addlegend = TRUE)

## ----cache=TRUE---------------------------------------------------------------
summary(dat)

## ----step4TT, results="hide", cache=TRUE--------------------------------------
fit <- survFitTT(dat,
                 target.time = 21,
                 lcx = c(10, 20, 30, 40, 50))

## ----step4TTsummary, cache=TRUE-----------------------------------------------
summary(fit)

## ----step4TTplot, cache=TRUE--------------------------------------------------
plot(fit, log.scale = TRUE, adddata = TRUE,   addlegend = TRUE)

## ----cache=TRUE---------------------------------------------------------------
plot(fit, log.scale = TRUE, style = "generic", adddata = TRUE, addlegend = TRUE)

## ----wrongTT, results="hide", cache=TRUE--------------------------------------
data("cadmium1")
doubtful_fit <- survFitTT(survData(cadmium1),
                       target.time = 21,
                       lcx = c(10, 20, 30, 40, 50))
plot(doubtful_fit, log.scale = TRUE, style = "ggplot", adddata = TRUE,
     addlegend = TRUE)

## ----step5TT,cache=TRUE, results="hide"---------------------------------------
ppc(fit)

## ----TKTDcst, cache=TRUE, eval=FALSE------------------------------------------
# # (1) load data set
# data(propiconazole)
# 
# # (2) check structure and integrity of the data set
# survDataCheck(propiconazole)
# 
# # (3) create a `survData` object
# dat <- survData(propiconazole)
# 
# # (4) represent the number of survivors as a function of time
# plot(dat, pool.replicate = FALSE)
# 
# # (5) check information on the experimental design
# summary(dat)

## ----fitcstSD, cache=TRUE, echo=TRUE, eval=FALSE------------------------------
# # (6) fit the TKTD model SD
# fit_cstSD <- survFit(dat, quiet = TRUE, model_type = "SD")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# # (7) summary of parameters estimates
# summary(fit_cstSD)
# # OR
# fit_cstSD$estim.par

## ----PLOTpriors_post_cstSD, cache=TRUE, eval=FALSE----------------------------
# plot_prior_post(fit_cstSD)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# plot(fit_cstSD)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# plot(fit_cstSD, adddata = FALSE)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# ppc(fit_cstSD)

## ----fitcstSDFIXhb, cache=TRUE, eval=FALSE------------------------------------
# # fit the TKTD model SD with fixed hb value
# fit_cstSDFIXhb <- survFit(dat, quiet = TRUE, model_type = "SD", hb_value=FALSE, hb_valueFIXED = 0.2)

## ----summarycstSDFIXhbSummary, cache=TRUE, eval=FALSE-------------------------
# summary(fit_cstSDFIXhb)

## ----summarycstSDFIXhb_PrintVal, cache=TRUE, eval=FALSE-----------------------
# fit_cstSDFIXhb$hb

## ----fitcstIT, echo=TRUE, cache=TRUE, eval=FALSE------------------------------
# fit_cstIT <- survFit(dat, quiet = TRUE, model_type = "IT")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# summary(fit_cstIT)
# # OR
# fit_cstIT$estim.par

## ----PLOTpriors_post_cstIT, cache=TRUE, eval=FALSE----------------------------
# plot_prior_post(fit_cstIT)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# plot(fit_cstIT)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# ppc(fit_cstIT)

## ----TKTDvar, cache=TRUE, eval=FALSE------------------------------------------
# # (1) load data set
# data("propiconazole_pulse_exposure")
# 
# # (2) check structure and integrity of the data set
# survDataCheck(propiconazole_pulse_exposure)
# 
# # (3) create a `survData` object
# dat_ <- survData(propiconazole_pulse_exposure)
# 
# # (4) represent the number of survivor as a function of time
# plot(dat_)
# 
# # (5) check information on the experimental design
# summary(dat_)

## ----fitvarSD, echo=TRUE, cache=TRUE, eval=FALSE------------------------------
# # (6) fit the TKTD model SD
# fit_varSD <- survFit(dat_, quiet = TRUE, model_type = "SD")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# # (7) summary of the fit object
# summary(fit_varSD)

## ----PLOTpriors_post_varSD, cache=TRUE, eval=FALSE----------------------------
# plot_prior_post(fit_varSD)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# plot(fit_varSD)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# ppc(fit_varSD)

## ----fitvarIT, echo=TRUE, cache=TRUE, eval=FALSE------------------------------
# # fit a TKTD model IT
# fit_varIT <- survFit(dat_, quiet = TRUE, model_type = "IT")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# # (7) summary of the fit object
# summary(fit_varIT)

## ----PLOTpriors_post_varIT, cache=TRUE, eval=FALSE----------------------------
# plot_prior_post(fit_varIT)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# plot(fit_varIT)

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# ppc(fit_varIT)

## ----predict, cache=TRUE, eval=FALSE------------------------------------------
# # (1) upload or build a data frame with the exposure profile
# # argument `replicate` is used to provide several profiles of exposure
# data_4prediction <- data.frame(time = c(1:10, 1:10),
#                                conc = c(c(0,0,40,0,0,0,40,0,0,0),
#                                         c(21,19,18,23,20,14,25,8,13,5)),
#                                replicate = c(rep("pulse", 10), rep("random", 10)))
# 
# # (2) Use the fit on constant exposure propiconazole with model SD (see previously)
# predict_PRZ_cstSD_4pred <- predict(object = fit_cstSD, data_predict = data_4prediction)

## ----predictPlot, cache=TRUE, eval=FALSE--------------------------------------
# # (3) Plot the predicted survival rate under the new exposure profiles.
# plot(predict_PRZ_cstSD_4pred)

## ----predict_ode, cache=TRUE, eval=FALSE--------------------------------------
# predict_PRZ_cstSD_4pred_ode <- predict_ode(object = fit_cstSD, data_predict = data_4prediction)

## ----predict_ode_plot, cache=TRUE, eval=FALSE---------------------------------
# plot(predict_PRZ_cstSD_4pred_ode)

## ----hb_value, cache=TRUE, eval=FALSE-----------------------------------------
# # Use the same data set profile to predict without 'hb'
# predict_PRZ_cstSD_4pred_hbOUT <- predict_ode(object = fit_cstSD, data_predict = data_4prediction, hb_value = FALSE, hb_valueFORCED = 0)
# # Plot the prediction:
# plot(predict_PRZ_cstSD_4pred_hbOUT)

## ----hb_valueFIX2, cache=TRUE, eval=FALSE-------------------------------------
# # Use the same data set profile to predict without 'hb'
# predict_PRZ_cstSD_4pred_hbFIX2 <- predict_ode(object = fit_cstSD, data_predict = data_4prediction,
#                                               hb_value = FALSE, hb_valueFORCED = 0.2)
# # Plot the prediction:
# plot(predict_PRZ_cstSD_4pred_hbFIX2)

## ----cstTOcst, cache=TRUE, eval=FALSE-----------------------------------------
# predict_Nsurv_PRZ_SD_cstTOcst <- predict_Nsurv(fit_cstSD, propiconazole)

## ----varTOcst, cache=TRUE, eval=FALSE-----------------------------------------
# predict_Nsurv_PRZ_SD_varTOcst <- predict_Nsurv(fit_varSD, propiconazole)

## ----cstTOvar, cache=TRUE, eval=FALSE-----------------------------------------
# predict_Nsurv_PRZ_SD_cstTOvar <- predict_Nsurv(fit_cstSD, propiconazole_pulse_exposure)

## ----varTOvar, cache=TRUE, eval=FALSE-----------------------------------------
# predict_Nsurv_PRZ_SD_varTOvar <- predict_Nsurv(fit_varSD, propiconazole_pulse_exposure)

## ----cstTOcstPredict_ODE, cache=TRUE, eval=FALSE------------------------------
# predict_Nsurv_PRZ_SD_cstTOcst_ode <- predict_Nsurv_ode(fit_cstSD, propiconazole)

## ----cstTOcstPredict_ODE_PLOT, fig.align='center', out.width='.49\\linewidth',fig.show='hold', eval=FALSE----
# plot(predict_Nsurv_PRZ_SD_cstTOcst)
# plot(predict_Nsurv_PRZ_SD_cstTOcst_ode)

## ----cstTOcstPredict_ODE_PLOT1, eval=FALSE------------------------------------
# plot(predict_Nsurv_PRZ_SD_cstTOcst_ode)

## ----checkNsurvPRED_1, cache=TRUE, eval=FALSE---------------------------------
# predict_Nsurv_check(predict_Nsurv_PRZ_SD_cstTOvar)

## ----plotPredict_Nsurv, cache=TRUE, eval=FALSE--------------------------------
# plot(predict_Nsurv_PRZ_SD_cstTOvar)

## ----ppcPredict_Nsurv, cache=TRUE, eval=FALSE---------------------------------
# ppc(predict_Nsurv_PRZ_SD_cstTOvar)

## ----nameEFSA_SD, cache=TRUE, eval=FALSE--------------------------------------
# summary(fit_cstSD, EFSA_name = TRUE)
# head(priors_distribution(fit_cstSD, EFSA_name = TRUE))
# plot_prior_post(fit_cstSD, EFSA_name = TRUE)

## ----nameEFSA_IT, cache=TRUE, eval=FALSE--------------------------------------
# summary(fit_cstIT, EFSA_name = TRUE)
# head(priors_distribution(fit_cstIT, EFSA_name = TRUE))
# plot_prior_post(fit_cstIT, EFSA_name = TRUE)

## ----cstSDLCx, cache=TRUE, eval=FALSE-----------------------------------------
# # LC50 at the maximum time-point:
# LCx_cstSD <- LCx(fit_cstSD, X = 50)
# plot(LCx_cstSD)
# 
# # LC50 at time = 2
# LCx(fit_cstSD, X = 50, time_LCx = 2) %>% plot()
# ## Note the use of the pipe operator, `%>%`, which is a powerful tool for clearly expressing a sequence of multiple operations.
# ## For more information on pipes, see: http://r4ds.had.co.nz/pipes.html

## ----cstSDLCx_3015, eval=FALSE------------------------------------------------
# # LC50 at time = 15
# LCx(fit_cstSD, X = 50, time_LCx = 15) %>% plot()

## ----cstITLCx, eval=FALSE-----------------------------------------------------
# # LC50 at the maximum time-point:
# LCx_cstIT <- LCx(fit_cstIT, X = 50)
# plot(LCx_cstIT)
# 
# # LC50 at time = 2
# LCx(fit_cstIT, X = 50, time_LCx = 2) %>% plot()
# 
# # LC30 at time = 15
# LCx(fit_cstIT, X = 30, time_LCx = 15) %>% plot()

## ----varSDLCx, eval=FALSE-----------------------------------------------------
# # LC50 at time = 4
# LCx_varSD <- LCx(fit_varSD, X = 50, time_LCx = 4, conc_range = c(0,100))
# plot(LCx_varSD)
# 
# # LC50 at time = 30
# LCx(fit_varSD, X = 50, time_LCx = 30,  conc_range = c(0,100)) %>% plot()

## ----varITLCx, eval=FALSE-----------------------------------------------------
# # LC50 at time = 4
# LCx(fit_varIT, X = 50, time_LCx = 4, conc_range = c(0,200)) %>% plot()
# 
# # LC50 at time = 30
# LCx(fit_varIT, X = 50, time_LCx = 30, conc_range = c(0,100)) %>% plot()

## ----MFx_compt, cache=TRUE, eval=FALSE----------------------------------------
# # (1) upload or build a data frame with the exposure profile
# data_4MFx <- data.frame(time = 1:10,
#                         conc = c(0,0.5,8,3,0,0,0.5,8,3.5,0))
# 
# # (2) Use the fit on constant exposure propiconazole with model SD (see previously)
# MFx_PRZ_cstSD_4MFx <- MFx(object = fit_cstSD, data_predict = data_4MFx, ode = TRUE)

## ----MFx_plot, cache=TRUE, eval=FALSE-----------------------------------------
# # (3) Plot the survival rate as function of the multiplication factors.
# plot(MFx_PRZ_cstSD_4MFx)

## ----MFx_plotLog, cache=TRUE, eval=FALSE--------------------------------------
# # (3 bis) Plot the survival rate as function of the multiplication factors in log-scale.
# plot(MFx_PRZ_cstSD_4MFx, log_scale = TRUE)

## ----MFx_plotTime, cache=TRUE, eval=FALSE-------------------------------------
# # (4) Plot the survival rate versus time. Control (MFx = 1) and estimated MFx.
# plot(MFx_PRZ_cstSD_4MFx, x_variable =  "Time")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# MFx_PRZ_cstSD_4MFx$df_MFx

## ----MFx_x10, cache=TRUE, eval=FALSE------------------------------------------
# # (2 bis) fit on constant exposure propiconazole with model SD (see previously)
# MFx_PRZ_cstSD_4MFx_x10 <- MFx(object = fit_cstSD, data_predict = data_4MFx, X = 10)

## ----MFx_x10_plot, cache=TRUE, eval=FALSE-------------------------------------
# # Plot with log scale
# plot(MFx_PRZ_cstSD_4MFx_x10, log_scale = TRUE)

## ----MFx_x100_threshold, cache=TRUE, eval=FALSE-------------------------------
# # (2 ter) fit on constant exposure propiconazole with model SD (see previously)
# MFx_PRZ_cstSD_4MFx_x10_thresh20 <- MFx(object = fit_cstSD, data_predict = data_4MFx, X = 10, threshold_iter = 20)
# plot(MFx_PRZ_cstSD_4MFx_x10_thresh20, log_scale = TRUE)

## ----MFx_IT, cache=TRUE, eval=FALSE-------------------------------------------
# # (2) Use the fit on constant exposure propiconazole with model IT. No print of run messages.
# MFx_PRZ_cstIT_4pred <- MFx(object = fit_cstIT, data_predict = data_4MFx, time_MFx = 4, quiet = TRUE)
# 
# # (3) Plot the survival rate versus multiplication factors.
# plot(MFx_PRZ_cstIT_4pred, log_scale = TRUE)

## ----MFx_ITplot, cache=TRUE, eval=FALSE---------------------------------------
# # (2) Use the fit on constant exposure propiconazole with model IT. No print of run messages.
# MFx_PRZ_cstIT_4pred <- MFx(object = fit_cstIT, X=10, hb_value = FALSE, data_predict = data_4MFx, time_MFx = 4, quiet = TRUE)
# 
# plot(MFx_PRZ_cstIT_4pred, log_scale = TRUE)
# 
# plot(MFx_PRZ_cstIT_4pred, x_variable =  "Time")

## ----MFx_range, cache=TRUE, eval=FALSE----------------------------------------
# # Use the fit on constant exposure propiconazole with model SD.
# MFx_PRZ_cstSD_4pred_range <- MFx(object = fit_cstSD, data_predict = data_4MFx, X = NULL, MFx_range = 1:6)

## ----plt_MFx_range, cache=TRUE, eval=FALSE------------------------------------
# # Plot survival rate versus the range of multiplication factor.
# plot(MFx_PRZ_cstSD_4pred_range)

## ----plt_MFx_range_Time, cache=TRUE, eval=FALSE-------------------------------
# # Plot Survival rate as function of time.
# plot(MFx_PRZ_cstSD_4pred_range, x_variable = "Time")

## ----cache=TRUE, eval=FALSE---------------------------------------------------
# # Plot a specific time series.
# plot(MFx_PRZ_cstSD_4pred_range$ls_predict[[4]])

## ----MFx_PRZ_cstSD_4MFxFIXhbr, cache=TRUE, eval=FALSE-------------------------
# MFx_PRZ_cstSD_4MFxFIXhb <- MFx(object = fit_cstSDFIXhb, data_predict = data_4MFx, ode = FALSE,
#                                hb_value = FALSE, hb_valueFORCED = fit_cstSDFIXhb$hb_valueFIXED)

## ----plotMFx_PRZ_cstSD_4MFxFIXhb, cache=TRUE, eval=FALSE----------------------
# plot(MFx_PRZ_cstSD_4MFxFIXhb)

## ----cache=TRUE---------------------------------------------------------------
# (1) load data set
data(cadmium2)

# (2) check structure and integrity of the data set
reproDataCheck(cadmium2)

# (3) create a `reproData` object
dat <- reproData(cadmium2)

# (4) represent the cumulated number of offspring as a function of time
plot(dat, concentration = 124, addlegend = TRUE, pool.replicate = FALSE)

# (5) represent the reproduction rate as a function of concentration
plotDoseResponse(dat, target.time = 28)

# (6) check information on the experimental design
summary(dat)

# (7) fit a concentration-effect model at target-time
fit <- reproFitTT(dat, stoc.part = "bestfit",
                  target.time = 21,
                  ecx = c(10, 20, 30, 40, 50),
                  quiet = TRUE)
summary(fit)

## ----cache=TRUE---------------------------------------------------------------
plot(fit, log.scale = TRUE, adddata = TRUE,
     cicol = "orange",
     addlegend = TRUE)

## ----cache=TRUE---------------------------------------------------------------
ppc(fit)

## ----cache=TRUE---------------------------------------------------------------
summary(fit)

## ----cache=TRUE---------------------------------------------------------------
dat <- reproData(cadmium2)
plot(survData(dat))

