Disease Course Sequencing with the Event Based Model#

by Neil Oxtoby and Vikram Venkatraghavan

../../../_images/ebm.png

Disease Course Sequencing with Event-Based Modelling

Event-Based Modelling (EBM) is a class of mathematical models, with associated Python softwares, that estimate a quantitative signature of disease progression (a Disease Course Sequence) using either cross-sectional or longitudinal medical data.

The softwares:

  • reconstruct the pathophysiological cascade (fine-grained temporal sequence of events) for a chronic, progressive disease

  • stages individuals along this fine-grained Disease Course Sequence, representing their cumulative abnormality along the group-average progression

  • does this all probabilistically and without predefined biomarker cutpoints

Software Python package Open source Tutorials

The software for classical EBM is distributed via the UCL POND group’s GitHub account, typically under the MIT license.

The software for the state-of-the-art Discriminative EBM as well as classical EBM (pyebm) is distributed via Vikram’s GitHub account, typically under the GNU General Public License v3.0.

Note: The classical EBM implementation in the two repositories differ in the type of mixture modelling (an essential step in EBMs) they support. The UCL POND group’s implementation supports KDE based mixture modelling as well as Gaussian mixture modelling (GMM), whereas pyebm only supports GMM.

The softwares should operate across operating systems, but specific requirements, e.g., python package versions, are detailed in each repository.

Usage#

The KDE EBM package includes user-friendly functions to perform key operations in the Disease Course Sequencing pipeline:

kde_ebm.mixture_model: fit_all_kde_models(...), fit_all_gmm_models(...)

Converts multimodal biomarker data into event probabilities by fitting mixture models to patient/control data using Kernel Density Estimation or Gaussian mixture modelling.

kde_ebm.plotting

Plotting tools for visualizing model outputs, e.g., mixture_model_grid(), mcmc_uncert_mat(), mcmc_trace(), stage_histogram()

kde_ebm.mcmc

Tools for Markov Chain Monte Carlo fitting of the EBM, including bootstrap cross-validation.

The pyEBM toolbox can be used to fit a Discriminative EBM, or a classical EBM using Gaussian mixture modelling.

pyebm.debm.fit(...):

Fits DEBM to multimodal biomarker data and inherently handles missing data. DEBM estimates average Disease Course Sequence for the entire cohort, any pre-defined subgroup of it, as well as for each subject in the cohort.

pyebm.ebm.fit(...):

Fits EBM to multimodal biomarker data and inherently handles missing data. EBM estimates average Disease Course Sequence for the entire cohort.

Tutorial(s)#

We have developed an introductory tutorial to understand Disease Course Sequencing using Event-Based Modelling. In future, we will provide an example on real data from a publicly available dataset.

Tutorial 1: KDE EBM Hello World: example EBM on simulated data

This introduction to Event-Based Modelling is a walkthrough where you will fit an EBM using the KDE EBM software and simulated data.

Go to the tutorial 30 minutes cross-sectional data

Tutorial 2: pyEBM Hello World: example DEBM on simulated data

This introduction to Discriminative Event-Based Modelling is a walkthrough where you will fit a DEBM using the pyEBM software and simulated data.

Go to the tutorial 30 minutes crosssectional data

Tutorial 3: KDE EBM: example usage on real medical data

Wishlist.

Tutorial 4: DEBM: example usage on real medical data

Wishlist.

Installation#

KDE EBM installation is explained in the GitHub repository

pyEBM installation is via pip: pip install pyebm