Skip to content

Global sensitivity analysis #116

Description

@akutuva21

Global sensitivity analysis

Repository: RuleWorld/PyBioNetGen

Title: Add global sensitivity analysis workflows for BNGL models

Motivation

BioNetGen and BNGsim already support parameter scans, fast repeated simulation, local sensitivities, and Fisher-information analysis. What is still missing is a standard global sensitivity interface for answering questions such as:

  • Which parameters explain most output variance across a specified range?
  • Which parameters matter only through interactions?
  • Which parameters can be screened out before fitting?
  • How sensitive are conclusions to uncertainty across the full prior parameter space?

This is complementary to the existing derivative-based local sensitivity support.

Proposed initial methods

A useful first implementation could support:

  • Morris screening;
  • Sobol first-order indices;
  • Sobol total-order indices.

Later additions could include FAST/eFAST or derivative-informed global methods.

Proposed API

result = model.global_sensitivity(
    parameters={
        "k1": (0.01, 10.0),
        "k2": (0.1, 100.0),
        "KD": (1.0, 1000.0),
    },
    outputs=["pERK"],
    method="sobol",
    timepoints=[5, 15, 60],
    n_samples=4096,
)

The implementation should use BNGsim's in-process/batch execution when available and retain the existing subprocess path as a fallback where practical.

Useful returned information would include:

  • first-order indices;
  • total-order indices;
  • confidence intervals;
  • parameter names and bounds;
  • sampling design;
  • simulation failures;
  • reproducibility seed.

Design consideration

This should be an analysis layer rather than another simulator. Integration with established sampling implementations such as SALib would likely be preferable to reimplementing the algorithms.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions