Code & Inventions

Ten years of research and startups left a trail of code, datasets and methods. Most of it is open source on GitHub. Feel free to use it, and tell me what you build with it.

Health, sleep and tinnitus (2020-2023)

Tinnitus-n-Sleep

A Python toolbox to detect physiological events in the sleep of tinnitus patients from polysomnography: bruxism (EMG bursts) and middle-ear muscle activation (pressure in the ear canal). Adaptive thresholding pipeline, event scoring into bursts and episodes (phasic, tonic, mixed), automatic group reports. Built for Siopi with Robin Guillard.

Stack: Python, MNE, Jupyter. Related publication: REM sleep impairment may underlie sleep-driven modulations of tinnitus (IJERPH, 2023).

Siopi: what works for people with tinnitus

An app where people with tinnitus and chronic conditions find others with similar symptoms, share what they tried, and see what worked. People are matched by symptom similarity with metric learning. 120+ therapies documented. Innovation Prize of the French ENT society (SF-ORL) in 2021.

Stack: Flutter, Python, Django, Streamlit.

TinnitusEEG

EEG markers of tinnitus with Riemannian geometry classification.

GitHub

Tinnitus nocturnal stimulation

Analysis of auditory stimulation during the sleep of tinnitus patients.

GitHub

NLP for euro-acouphenes

Natural language processing backend built during the Start-at-Home hackathon (Start-in-Saclay, April 2020).

GitHub

COVID-19 datasets

A curated list of public datasets, visualization tools and machine learning resources on the pandemic (2020).

GitHub

EEG and brain-computer interfaces (2014-2021)

Riemannian geometry workshop, vBCI Meeting 2021

Hands-on notebooks to classify brain signals with Riemannian geometry, from the 2021 international BCI Meeting. My most starred repository.

Brain Invaders 2 and the Brain Invaders datasets

An open-source, plug and play, multi-player brain-computer interface video game built at GIPSA-lab (OpenViBE and Python). The experiments produced four open EEG datasets on Zenodo, used by other labs to benchmark P300 classifiers.

Code (openvibe-gipsa-extensions) · Datasets and papers

CAJD: blind source separation for bilinear data

Standard ICA struggles when data mix linear and bilinear structures. Composite Approximate Joint Diagonalization extracts the independent sources in that case, e.g. event-related potentials in EEG. Paper at EUSIPCO 2016.

ACSTP: Adaptive Common Spatio-Temporal Pattern

A complete processing chain for event-related potentials: common spatio-temporal pattern, automatic component selection, latency correction, trial weighting by signal-to-noise ratio. Result: denoised single-trial ERPs, i.e. blinks and electrode movements removed. Published in the Journal of Neuroscience Methods (2016).

ERP estimation with and without ACSTP
Left: arithmetic ensemble average. Right: ACSTP. The grey area shows the variability of the estimation, smaller is better.

GIPSEEG

My Matlab toolbox for EEG processing and classification during the PhD. Not maintained, released for teaching.

GitHub

Open-source contributions

pyRiemann (Riemannian geometry for multichannel time series) and Timeflux (real-time acquisition and classification of time series).

Marketing systems (2022-now)

The dice system

A method to test short-form formats like dice: mimetic and original formats, produced in batch, kept or killed on data. The core of the STATUR method.

How it works