Subtype and Staging Inference, or SuStaIn, is an algorithm for discovery of data-driven groups or "subtypes" in chronic disorders. This repository is the Python implementation of SuStaIn, with the option to describe the subtype progression patterns using either the event-based model or the piecewise linear z-score model.
In main pySuStaIn directory (where you see setup.py, README.txt, LICENSE.txt and all subfolders), run:
pip install -e ./awkde
pip install .
This will install the awkde package (used for mixture modelling), then the pySuStaIn package.
If the above install breaks, you may have some interfering packages installed. One way around this would be to create a new Anaconda environment that uses Python 3.7, then activate it and repeat the installation steps above. To do this, download and install Anaconda, then run:
conda create --name sustain_env python=3.7
conda activate sustain_env
To create an environment named sustain_env
.
- The SuStaIn algorithm: Young et al. 2018
- The event-based model: Fonteijn et al. 2012, (with Gaussian mixture modelling Young et al. 2014)
- The piecewise linear z-score model: Young et al. 2018
- Implementation in multiple sclerosis (predicting treatment response): Eshaghi et al. 2020. The trained model is available here.
- Application to tau PET data in Alzheimer's disease: Vogel, et al., 2020
(The authors) have also persuaded me that (SuStaIn is) as clever as e.g. Heiko Braak's brain, (and) can infer longitudinal trajectories based on cross-sectional observations.
- Anonymous reviewer
- Python >= 3.7
- NumPy >= 1.18
- SciPy
- Matplotlib
- Scikit-learn for cross-validation
- kde_ebm for mixture modelling (KDE and GMM included)
- pathos for parallelization
- awkde for KDE mixture modelling
- Added parallelized startpoints
sustainType can be set to:
mixture_GMM
: SuStaIn with an event-based model progression pattern, with Gaussian mixture modelling of normal/abnormal.mixture_KDE
: SuStaIn with an event-based model progression pattern, with Kernel Density Estimation (KDE) mixture modelling of normal/abnormal.zscore
: SuStaIn with a piecewise linear z-score model progression pattern.
See simrun.py
for examples of how to run these different implementations.
See the jupyter notebook for a tutorial on how to use SuStaIn using simulated data.
This project has received funding from the European Union’s Horizon 2020 Research and Innovation Programme under Grant Agreements 666992. Application of SuStaIn to multiple sclerosis was supported by the International Progressive MS Alliance (IPMSA, award reference number PA-1603-08175).