Local parameter sensitivity analysis

This function allows to assess the local sensitivity of model outputs with respect to changes in parameters and represents the results graphically and returns a data.frame with the calculate sensitivity metric values. A default sensitivity metric is implemented but the user can provide own sensitivity metrics to assess specific things (example: time to maximum value, maximum value, steady-state/baseline value, oscillation frequency, ... whatever.) Local here means based on the parameterization within the IQRmodel.

sensitivity_IQRmodel(
  model,
  simtime,
  dosingTable = NULL,
  sensparams = NULL,
  sensoutput = NULL,
  sensmetricFct = NULL,
  sensopt.abspert = NULL,
  sensopt.relpert = 0.01,
  title = NULL,
  orderAlpha = FALSE,
  plotTrajectories = FALSE
)

Arguments

model

IQRmodel to perform the sensitivity analysis for

simtime

Simulation time vector to use for the analysis.It can also be provided as a list of simulation time vectors. In the latter case the same number as list entries of dosingTable elements need to be provided. The different simtime vectors will then be used for the different dosingTable elements in the order as defined.

dosingTable

Single IQRdosing object defining the dosing to apply to the model during sensitivity analysis. dosingTable can also be a list of IQRdosing objects that all will be simulated and results concatenated.

sensparams

Vector of parameter names in the IQRmodel to perform the sensitivity analysis for. Default: all parameters in the model.

sensoutput

Vector of element names (states, variables, reactions) in the IQRmodel to consider during the sensitivity analysis. Default: all OUTPUT variables in the model. If no OUTPUT elements present then an error is produced.

sensmetricFct

Function defining a custom sensitivity metric according to the syntax define in Details.

sensopt.abspert

Default relative perturbation work well for non-zero nominal parameters. To allow to also determine sensitivity to parameters with 0 nominal value this argument takes a named vector. Names should be parameter names in the model and the value is the desired perturbation in absolute terms. Absolute perturbations can also be used on non-zero parameters and if done the absolute perturbation and the relative perturbation both will be done.

sensopt.relpert

All parameters are perturbed using relative perturbations of 0.01 times the nominal value.

title

Character string defining a custom title for the returned sensitivity analysis results plot.

orderAlpha

Logical. If TRUE the parameters in the results are ordered alphabetically. Otherwise by decreasing sensitivity value.

plotTrajectories

Logical, defining if trajectories to be plotted for visual inspection of results.

Value

List with elements "plot" and "sensitivity". Plot is a ggplot2 object containing the plot itself. sensitivity is a data.frame containing parameter names and sensitivity values.

Details

A custom sensitivity metric can be provided through definition of a function with the following input arguments: p_nom,p_pert,y_nom,y_pert. Where p_nom is the nominal parameter value, p_pert the perturbed one. y_nom is a data.frame the following columns: TIME, DOSING, NAME, VALUE. NAME contains the name of the simulated output, VALUE contains the simulated value under nominal parameter conditions, TIME contains the TIME of the simulated point. y_pert contains the same information as y_nom but for perturbed parammeter conditions. The output of the custom sensitivity metric function needs to be a scalar numeric value that defines the sensitivity metric to be used. This sensitivity metric function is called by sensitivity_IQRmodel for all parameters in sensparams.

The default sensitivity metric calculates normalized sensitivities for each observed timepoint across all observed outputs. Since this results in signed vectors, the mean of the absolute values of the normalized sensitivities is used as a metric, resulting in an always positive metric that can only be used to assess sensitivity of all outputs together to a parameter but not be used to assess directionality of the sensitivity.

See also

Other IQRmodel: IQRmodel(), addOutputs_IQRmodel(), addRelations_IQRmodel(), exportSBML_IQRmodel(), exportVariant_IQRmodel(), export_IQRmodel(), getPars_IQRmodel(), hasCcodeFunctions_IQRmodel(), hasInitialAssignments_IQRmodel(), importSBML_IQRmodel(), importVariant_IQRmodel(), is_IQRmodel(), new_IQRmodel(), print.IQRmodel(), print.IQRsensitivity(), regenerate_IQRmodel(), replaceTerms_IQRmodel(), setParameters_IQRmodel(), setPars_IQRmodel(), sim_IQRmodel(), simbio_CSV2namedVector(), simbio_updateParamIC_IQRmodel(), stoichiometry_IQRmodel(), strReplace_IQRmodel()

Other QSP: IQRsysEst(), IQRsysModel(), IQRsysProject(), addOutputs_IQRmodel(), addRelations_IQRmodel(), as_IQRsysEst(), as_IQRsysProjectMulti(), as_IQRsysProject(), comparePars_IQRsysModel(), duplicate_IQRsysProject(), exportVariant_IQRmodel(), exportVirtualSubjects_IQRnlmeProject(), export_IQRsysData(), getDosing_IQRsysModel(), getEmpiricalETACovarianceMatrix_IQRsysProject(), getOptTrace_IQRsysProject(), getPars_IQRoptTrace(), getPars_IQRsysModel(), getPrediction_IQRsysModel(), hasrun_IQRsysProject(), importVariant_IQRmodel(), import_IQRsysData(), is_IQRsysEst(), is_IQRsysModel(), is_IQRsysProjectMulti(), is_IQRsysProject(), load_IQRsysProject(), modelSpec_IQRsysEst(), model_IQRsysModel(), offsetTIME_IQRsysData(), plotDVPRED_IQRsysModel(), plotFit_IQRsysModel(), plotPars_IQRsysModel(), plotPred_IQRsysModel(), plotProfile_IQRsysModel(), plotWRES_IQRsysModel(), plotWaterfall_IQRsysModel(), plot_IQRoptTrace(), plot_IQRsysModel(), print.IQRsensitivity(), print.IQRsysProject(), profile_IQRsysModel(), replaceTerms_IQRmodel(), run_IQRsysProjectMulti(), run_IQRsysProject(), sample_IQRsysModel(), setPars_IQRsysModel(), sim_IQRsysModel(), sim_IQRvirtualSubjects(), simbio_CSV2namedVector(), simbio_updateParamIC_IQRmodel(), spmIIV_IQRsysProject(), spm_IQRsysProject(), switchOpt_IQRsysModel(), tablePars_IQRsysModel()

Other Sensitivity Analysis: informationContent_IQRnlmeProject(), print.IQRsensitivity()

Author

Henning Schmidt, IntiQuan