ָFunctions to Assess Parameter Identifiability

Assessing All Types of Identifiability

StructuralIdentifiability.assess_identifiabilityFunction
assess_identifiability(ode::ODE{P}, p::Float64=0.99) where P <: MPolyElem{fmpq}

Input:

• ode - the ODE model
• p - probability of correctness.

Assesses identifiability (both local and global) of a given ODE model (parameters detected automatically). The result is guaranteed to be correct with the probability at least p.

assess_identifiability(ode, [funcs_to_check, p=0.99])

Input:

• ode - the ODE model
• p - probability of correctness.

Assesses identifiability of a given ODE model. The result is guaranteed to be correct with the probability at least p.

If funcs_to_check are given, then the function will assess the identifiability of the provided functions and return a list of the same length with each element being one of :nonidentifiable, :locally, :globally.

If funcs_to_check are not given, the function will assess identifiability of the parameters, and the result will be a dictionary from the parameters to their identifiability properties (again, one of :nonidentifiable, :locally, :globally).

assess_identifiability(ode::ModelingToolkit.ODESystem; measured_quantities=Array{ModelingToolkit.Equation}[], funcs_to_check=[], p = 0.99)

Input:

• ode - the ModelingToolkit.ODESystem object that defines the model
• measured_quantities - the output functions of the model
• funcs_to_check - functions of parameters for which to check the identifiability
• p - probability of correctness.

Assesses identifiability (both local and global) of a given ODE model (parameters detected automatically). The result is guaranteed to be correct with the probability at least p.

Assessing Local Identifiability

StructuralIdentifiability.assess_local_identifiabilityFunction
function assess_local_identifiability(ode::ModelingToolkit.ODESystem; measured_quantities=Array{ModelingToolkit.Equation}[], funcs_to_check=Array{}[], p::Float64=0.99, type=:SE)

Input:

• ode - the ODESystem object from ModelingToolkit
• measured_quantities - the measureable outputs of the model
• funcs_to_check - functions of parameters for which to check identifiability
• p - probability of correctness
• type - identifiability type (:SE for single-experiment, :ME for multi-experiment)

Output:

• for type=:SE, the result is a dictionary from each parameter to boolean;
• for type=:ME, the result is a tuple with the dictionary as in :SE case and array of number of experiments.

The function determines local identifiability of parameters in funcs_to_check or all possible parameters if funcs_to_check is empty

The result is correct with probability at least p.

type can be either :SE (single-experiment identifiability) or :ME (multi-experiment identifiability). The return value is a tuple consisting of the array of bools and the number of experiments to be performed. "

assess_local_identifiability(ode::ODE{P}, p::Float64 = 0.99, type=:SE) where P <: MPolyElem{Nemo.fmpq}

Input:

• ode - the ODE model
• p - probability of correctness
• type - identifiability type (:SE for single-experiment, :ME for multi-experiment)

Output:

• for type=:SE, the result is a dictionary from each parameter to boolean;
• for type=:ME, the result is a tuple with the dictionary as in :SE case and array of number of experiments.

The main entrypoint for local identifiability checks. Call this function to automatically take care of local identifiability of all parameters and initial conditions. The result is correct with probability at least p.

type can be either :SE (single-experiment identifiability) or :ME (multi-experiment identifiability). The return value is a tuple consisting of the array of bools and the number of experiments to be performed.

assess_local_identifiability(ode::ODE{P}, funcs_to_check::Array{<: Any, 1}, p::Float64=0.99, type=:SE) where P <: MPolyElem{Nemo.fmpq}

Checks the local identifiability/observability of the functions in funcs_to_check. The result is correct with probability at least p.

Call this function if you have a specific collection of parameters of which you would like to check local identifiability.

type can be either :SE (single-experiment identifiability) or :ME (multi-experiment identifiability). If the type is :ME, states are not allowed to appear in the funcs_to_check.

Assessing Global Identifiability

StructuralIdentifiability.assess_global_identifiabilityFunction
assess_global_identifiability(ode::ODE{P}, p::Float64=0.99; var_change=:default) where P <: MPolyElem{fmpq}

Input:

• ode - the ODE model
• p - probability of correctness
• var_change - a policy for variable change (:default, :yes, :no), affects only the runtime

Output:

• a dictionary mapping each parameter to a boolean.

Checks global identifiability for a parameters of the model provided in ode. Call this function to check global identifiability of all parameters automatically.

assess_global_identifiability(ode, [funcs_to_check, p=0.99, var_change=:default])

Input:

• ode - the ODE model
• funcs_to_check - rational functions in parameters
• p - probability of correctness
• var_change - a policy for variable change (:default, :yes, :no), affects only the runtime

Output:

• array of length length(funcs_to_check) with true/false values for global identifiability or dictionary param => Bool if funcs_to_check are not given

Checks global identifiability of functions of parameters specified in funcs_to_check.