SWoTTeD : An Extension of Tensor Decomposition to Temporal Phenotyping

This repository contains the implementation of SWoTTeD (Sliding Window for Temporal Tensor Decomposition)

Illustration of SwoTTeD Decomposition

Authors

Overview

SWoTTeD is a tensor decomposition framework to extract temporal phenotypes from structured data. Most recent decomposition models allow extracting phenotypes that only describe snapshots of typical profiles, also called daily phenotypes. However, SWoTTeD extends the notion of daily phenotype into temporal phenotype describing an arrangement of features over a time window.

The capabilities of the SWoTTeD model are illustrated in the example notebook.

This code implements the SWoTTeD as a PyTorch Lightning module that you can embed in you own architecture. The SWoTTeD module enables:

  • to discover phenotypes through the decomposition of a 3D tensor (with dimensions: patients, features and time). To deal with patient’ data having different duration, the dataset is a collection of pathways (2D matrices);

  • to project new patient pathways on discovered phenotypes;

  • to predict next events in a pathways.

More documentation about this project and how to use the model is available here: https://hsebia.gitlabpages.inria.fr/swotted/.

How to install

The pyproject.toml is the project configuration file for poetry which enables to create and set up a virtual environment suitable to run SWoTTeD.

git clone https://gitlab.inria.fr/hsebia/swotted

## In case of the use of poetry
poetry install
poetry shell

SWoTTeD is also available on the Python Package Index (PyPI). In this case, you will only have the model (but not the tests, including the random generator of random tensors with hidden patterns). See the First run example in the documentation in this case.

pip install swotted

How to cite

@misc{Sebia23_SWoTTeD_ArXiV,
      title={SWoTTeD: An Extension of Tensor Decomposition to Temporal Phenotyping},
      author={Hana Sebia and Thomas Guyet and Etienne Audureau},
      year={2023},
      eprint={2310.01201},
      archivePrefix={arXiv},
      url = {https://arxiv.org/abs/2310.01201}
}```