Front page

Why?

Example: Multi-scale model of tumor growth

based on Jagiella et al., Cell Systems 2017 Tumor gif
  • cells modeled as interacting stochastic agents, dynamics of extracellular substances by PDEs
  • simulate up to 106 cells
  • 10s - 1h for one forward simulation

What we tried

  • multi-start local methods
    • deterministic gradient descent
      • Levenberg-Marquardt
      • interior-point
      • trust-region
    • stochastic gradient descent
    • Bayesian optimization
  • global methods
    • simulated annealing
    • > 20 particle methods
    • enhanced scatter search

Failed

Worked

  • multi-start local methods
    • deterministic gradient descent
      • Levenberg-Marquardt
      • interior-point
      • trust-region
    • stochastic gradient descent
    • Bayesian optimization
  • global methods
    • simulated annealing
    • > 20 particle methods
    • enhanced scatter search

Multiscale models

Multiscale models Hasenauer et al., J. Coup. Sys. and Mult. Dyn. 2015

How to infer parameters for complex stochastic models?

ABC

Approximate Bayesian Computation

How to use in practice?

pyABC logo white
github.com/icb-dcm/pyabc
Klinger et al., Bioinformatics 2018
pyABC logo black Points

Parallel backends: 1 to 1,000s cores

Parallelization backends

Parallelization strategies

Klinger et al., CMSB Proceedings 2017 Parallelization strategies

Application example: Tumor model

based on Jagiella et al., Cell Systems 2017

Define summary statistics

Tumor summary statistics
  • 400 cores
  • 3 days
  • 1.8e6 simulations
Tumor KDEs
ABC worked where many other methods had failed.
Tumor final KDE
ABC worked where many other methods had failed.

Some algorithmic details

Adaptive population sizes

Klinger et al., CMSB Proceedings 2017 Adaptive population sizes idea: adapt population size trying to match a target accuracy

Self-tuning distance functions

based on Prangle, Bayesian Analysis 2015
Adaptive distances

Measurement noise

How to efficiently account for measurement noise in ABC? Measurement noise methods

And ...

And

...

FitMultiCell project

Joint initiative to make ABC fit for the analysis of multi-cellular models Morpheus Morpheus toolbox: Staruß et al., Bioinformatics 2014

Summary

  • parameter estimation when we cannot evaluate the likelihood can be challenging
  • ABC allows for reliable statistical inference
  • pyABC provides a user-friendly, flexible, and scalable framework
  • already used in multiple applications
Not everything is a nail.
github.com/icb-dcm/pyabc

And else?

Check out github.com/icb-dcm for ...

  • ... efficient ODE simulation: AMICI
  • ... optimization, sampling, profile likelihoods: (py)PESTO
  • ... benchmarking and parameter estimation standards: PEtab
  • ...

Acknowledgments

Thanks to:

  • Elba Raimúndez-Álvarez
  • Emmanuel Klinger
  • Dennis Rickert
  • Jan Hasenauer
  • and many more

Backup

Likelihood-free inference

Bayes theorem highlighting likelihood
  • can happen: evaluation of likelihood infeasible
  • but possible to simulate data $y\sim\pi(y|\theta)$

What ABC does

We want: \[\pi(\theta|y_{obs}) \propto \pi(y_{obs}|\theta)\pi(\theta).\] We get with distance $d$, threshold $\varepsilon>0$, and summary statistics $s$: \[\pi_{ABC}(\theta|s_{obs}) \propto \int I(\{d(s, s_{obs}) \leq \varepsilon\})\pi(s|\theta)\pi(\theta)ds \approx \frac{1}{N} \sum_{i=1}^N\delta_{\theta^{(i)}}(\theta).\]

Efficiency of SMC

ABC-Rejection and ABC-SMC comparison
Tumor integration
ABC enables multi-experiment data integration.
Tumor integration 2
ABC enables uncertainty-aware predictions.
Tumor 3d
ABC enables hypothesis testing.

Analysis and visualization

Visualization

Measurement noise

How to account for measurement noise in ABC? Measurement noise motivation

Measurement noise

Gives exact inference

The modified kernel allows us to sample from the true posterior distribution \[\pi_\text{ABC}(z_\text{obs}|\theta) = \pi(z_\text{obs}|\theta) \propto \int\pi(z_\text{obs}|y,\theta)\pi(y|\theta)\pi(\theta)\operatorname{dy}\] assuming a noise distribution $z\sim\pi(Z|y,\theta)$.

Measurement noise

A generic tempering scheme

Sample from \[\pi_{\text{ABC},t}(\theta|y_\text{obs}) \propto \int\pi(z_\text{obs}|y,\theta)^{1/T_t}\pi(y|\theta)\pi(\theta)dy\] using importance sampling, where $T_0=\infty$, $T_{t_\text{max}}=1$.

Problems: How to initialize | update temperatures | normalize acceptances kernels | ...?