Sensitivity Analysis
The Sensitivity module provides functionality for performing sensitivity analysis on the ODE-based phosphorylation models in the PhosKinTime package. Using the Morris method from SALib, this module evaluates the influence of each model parameter on the output of the system, thereby helping to identify the most critical parameters and potential nonlinear interactions.
Overview
This module (primarily implemented in analysis.py
) defines functions that:
-
Define the Sensitivity Problem:
Two functions (define_sensitivity_problem_rand
anddefine_sensitivity_problem_ds
) generate the problem definition (number of variables, parameter names, and bounds) required for the Morris sensitivity analysis. The choice depends on whether the model is a random model (randmod
) or a distributive/successive model. -
Run Sensitivity Analysis:
Thesensitivity_analysis
function:- Generates parameter samples using the Morris method.
- Simulates the ODE system (via the package's
solve_ode
function) for each parameter set. - Computes a response metric (e.g., the sum of the phosphorylated states at the final time point).
- Analyzes the sensitivity indices using SALib's
analyze
function. - Generates a suite of plots (bar plots, scatter, radial, CDF, and pie charts) to visually summarize the sensitivity of each parameter.