knitr::opts_chunk$set(echo = TRUE)
The sicegar package provides a helpful function that can generate plots of the fitted models. This function is built on top of the ggplot2 plot library.
###***************************** # INITIAL COMMANDS TO RESET THE SYSTEM seedNo=14159 set.seed(seedNo) ###***************************** ###***************************** require("sicegar") require("dplyr") require("ggplot2") require("cowplot") ###*****************************
To demonstrate figure generation, we first generate simulated sigmoidal and double-sigmoidal data and fit the respective models to these datasets.
# simulate sigmoidal data time <- seq(3, 24, 0.5) noise_parameter <- 0.1 intensity_noise <- runif(n = length(time), min = 0, max = 1) * noise_parameter intensity <- sigmoidalFitFormula(time, maximum = 4, slope = 1, midPoint = 8) intensity <- intensity + intensity_noise dataInputSigmoidal <- data.frame(intensity = intensity, time = time) # simulate double-sigmoidal data noise_parameter <- 0.2 intensity_noise <- runif(n = length(time),min = 0,max = 1) * noise_parameter intensity <- doublesigmoidalFitFormula(time, finalAsymptoteIntensityRatio = .3, maximum = 4, slope1 = 1, midPoint1Param = 7, slope2 = 1, midPointDistanceParam = 8) intensity <- intensity + intensity_noise dataInputDoubleSigmoidal <- data.frame(intensity = intensity, time = time) # fit models to both datasets fitObj_sm <- fitAndCategorize(dataInput = dataInputSigmoidal) fitObj_dsm <- fitAndCategorize(dataInput = dataInputDoubleSigmoidal)
Now we can plot the results using the function figureModelCurves()
. This function returns a ggplot2 plot that can be saved or displayed directly. The function has several different options.
First, we can plot only the raw input data.
# sigmoidal raw data only figureModelCurves(dataInput = fitObj_sm$normalizedInput) # double-sigmoidal raw data only figureModelCurves(dataInput = fitObj_dsm$normalizedInput)
Second, we can plot the input data with the fitted lines.
# sigmoidal fit figureModelCurves(dataInput = fitObj_sm$normalizedInput, sigmoidalFitVector = fitObj_sm$sigmoidalModel) # double-sigmoidal fit figureModelCurves(dataInput = fitObj_dsm$normalizedInput, doubleSigmoidalFitVector = fitObj_dsm$doubleSigmoidalModel)
Third, we can additionally visualize the parameter estimates, by setting showParameterRelatedLines = TRUE
.
# sigmoidal fit with parameter related lines figureModelCurves(dataInput = fitObj_sm$normalizedInput, sigmoidalFitVector = fitObj_sm$sigmoidalModel, showParameterRelatedLines = TRUE) # double-sigmoidal fit with parameter related lines figureModelCurves(dataInput = fitObj_dsm$normalizedInput, doubleSigmoidalFitVector = fitObj_dsm$doubleSigmoidalModel, showParameterRelatedLines = TRUE)
Note that the last example only works for models that had additional parameters calculated using parameterCalculation()
. This is done automatically when fitting with fitFunction()
, but needs to be done manually when fitting with multipleFitFunction()
.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.