Skip to contents

Calculates intensities using the double-sigmoidal model fit and the parameters (maximum, final asymptote intensity, slope1Param, midpoint1Param, slope2Param, and mid point distance).

Usage

doublesigmoidalFitFormula(
  x,
  finalAsymptoteIntensityRatio,
  maximum,
  slope1Param,
  midPoint1Param,
  slope2Param,
  midPointDistanceParam
)

Arguments

x

the "time" (time) column of the dataframe

finalAsymptoteIntensityRatio

This is the ratio between asymptote intensity and maximum intensity of the fitted curve.

maximum

the maximum intensity that the double sigmoidal function reach.

slope1Param

the slope parameter of the sigmoidal function at the steppest point in the exponential phase of the viral production.

midPoint1Param

the x axis value of the steppest point in the function.

slope2Param

the slope parameter of the sigmoidal function at the steppest point in the lysis phase. i.e when the intensity is decreasing.

midPointDistanceParam

the distance between the time of steppest increase and steppest decrease in the intensity data. In other words the distance between the x axis values of arguments of slope1Param and slope2Param.

Value

Returns the predicted intensities for the given time points with the double-sigmoidal fitted parameters for the double sigmoidal fit.

Examples

time <- seq(3, 24, 0.1)

#simulate intensity data and add noise
noise_parameter <- 0.2
intensity_noise <- stats::runif(n = length(time), min = 0, max = 1) * noise_parameter
intensity <- doublesigmoidalFitFormula(time,
                                      finalAsymptoteIntensityRatio = .3,
                                      maximum = 4,
                                      slope1Param = 1,
                                      midPoint1Param = 7,
                                      slope2Param = 1,
                                      midPointDistanceParam = 8)
intensity <- intensity + intensity_noise

dataInput <- data.frame(intensity = intensity, time = time)
normalizedInput <- normalizeData(dataInput)
parameterVector <- doublesigmoidalFitFunction(normalizedInput, tryCounter = 2)


#Check the results
if(parameterVector$isThisaFit){
 intensityTheoretical <-
       doublesigmoidalFitFormula(
               time,
               finalAsymptoteIntensityRatio = parameterVector$finalAsymptoteIntensityRatio_Estimate,
               maximum = parameterVector$maximum_Estimate,
               slope1Param = parameterVector$slope1Param_Estimate,
               midPoint1Param = parameterVector$midPoint1Param_Estimate,
               slope2Param = parameterVector$slope2Param_Estimate,
               midPointDistanceParam = parameterVector$midPointDistanceParam_Estimate)

 comparisonData <- cbind(dataInput, intensityTheoretical)

 require(ggplot2)
 ggplot(comparisonData) +
   geom_point(aes(x = time, y = intensity)) +
   geom_line(aes(x = time, y = intensityTheoretical)) +
   expand_limits(x = 0, y = 0)
   }

if(!parameterVector$isThisaFit){
  print(parameterVector)
  }
#>   finalAsymptoteIntensityRatio_N_Estimate
#> 1                                      NA
#>   finalAsymptoteIntensityRatio_Std_Error finalAsymptoteIntensityRatio_t_value
#> 1                                     NA                                   NA
#>   finalAsymptoteIntensityRatio_Pr_t maximum_N_Estimate maximum_Std_Error
#> 1                                NA                 NA                NA
#>   maximum_t_value maximum_Pr_t slope1Param_N_Estimate slope1Param_Std_Error
#> 1              NA           NA                     NA                    NA
#>   slope1Param_t_value slope1Param_Pr_t midPoint1Param_N_Estimate
#> 1                  NA               NA                        NA
#>   midPoint1Param_Std_Error midPoint1Param_t_value midPoint1Param_Pr_t
#> 1                       NA                     NA                  NA
#>   slope2Param_N_Estimate slope2Param_Std_Error slope2Param_t_value
#> 1                     NA                    NA                  NA
#>   slope2Param_Pr_t midPointDistanceParam_N_Estimate
#> 1               NA                               NA
#>   midPointDistanceParam_Std_Error midPointDistanceParam_t_value
#> 1                              NA                            NA
#>   midPointDistanceParam_Pr_t residual_Sum_of_Squares log_likelihood AIC_value
#> 1                         NA                     Inf             NA        NA
#>   BIC_value isThisaFit startVector.finalAsymptoteIntensityRatio
#> 1        NA      FALSE                                0.2758815
#>   startVector.maximum startVector.slope1Param startVector.midPoint1Param
#> 1           0.4070449                164.5084                  -0.134779
#>   startVector.slope2Param startVector.midPointDistanceParam
#> 1                172.7302                         0.2282912
#>   dataScalingParameters.timeRange dataScalingParameters.intensityMin
#> 1                              24                          0.1433002
#>   dataScalingParameters.intensityMax dataScalingParameters.intensityRange
#> 1                           4.157786                             4.014485
#>             model finalAsymptoteIntensityRatio_Estimate maximum_Estimate
#> 1 doublesigmoidal                                    NA               NA
#>   slope1Param_Estimate midPoint1Param_Estimate slope2Param_Estimate
#> 1                   NA                      NA                   NA
#>   midPointDistanceParam_Estimate
#> 1                             NA