Example: Multi-scale model of tumor growth
based on Jagiella et al., Cell Systems 2017
- 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
Hasenauer et al., J. Coup. Sys. and Mult. Dyn. 2015
How to infer parameters for complex stochastic models?
ABC
Approximate Bayesian Computation
github.com/icb-dcm/pyabc
Klinger et al., Bioinformatics 2018
Parallel backends: 1 to 1,000s cores
Parallelization strategies
Klinger et al., CMSB Proceedings 2017
Application example: Tumor model
based on Jagiella et al., Cell Systems 2017
Define summary statistics
- 400 cores
- 3 days
- 1.8e6 simulations
ABC worked where many other methods had failed.
ABC worked where many other methods had failed.
Adaptive population sizes
Klinger et al., CMSB Proceedings 2017
idea: adapt population size trying to match a target accuracy
Self-tuning distance functions
based on Prangle, Bayesian Analysis 2015
Measurement noise
How to efficiently account for measurement noise in ABC?
And ...
...
FitMultiCell project
Joint initiative to make ABC fit for the analysis of multi-cellular models
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
Likelihood-free inference
- 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 enables multi-experiment data integration.
ABC enables uncertainty-aware predictions.
ABC enables hypothesis testing.
Analysis and visualization
Measurement noise
How to account for measurement noise in ABC?
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 | ...?