Project Aghermann

This is Project Aghermann, a program designed to run Process S simulations on Slow-Wave Activity profiles from (human) EEG recordings as outlined in Achermann et al (1993) and further developed in my thesis. In this capacity, Aghermann produces a set of sleep homeostat parameters that can be used to describe and differentiate individual sleepers, such as short vs long sleepers, early vs late, etc.

Along the way to that goal, it has also grown to become a capable sleep-research experiment manager, useful in its own right.

Features

Experiment design

Aghermann keeps the recordings in an organized fashion in a tree, following an experimental design commonly used in sleep research, i.e., groups of subjects sleeping several episodes per session, with recordings from a number of channels.

  • Overview of all subjects sleeping in a given session, showing all episodes' SWA profiles stringed on a common timeline, aligned and laid out against day/night cycle.
  • Per-channel annotations, with an experiment-wide dialog for quickly jumping to so bookmarked episodes.
  • There is a sample dataset (two subjects, 4 episodes in each, C3, Fz and EOG+EMG), which can be downloaded and immediately used in Aghermann on fresh start).

Experimental design overview

Viewing/Scoring facility

Facility for displaying EEG and accompanying recordings, such as EOG and EMG, saved in EDF European Data Format files.

  • All minute details exposed thanks to cairo subpixel drawing (alternatively, signal can be downsampled for faster redraw).

  • Butterworth low-pass, high-pass and band-pass filters.

  • Display of either original and filtered signal, or both.

  • For EEG signals, PSD profiles can be displayed (in a defined frequency range or in a conventional band) in overlay.

  • EMG signal profile, allowing easily to spot REM or the time when subject sees a violent dream.

  • Recordings can be conveniently scored; scores can be imported/exported in plain ASCII.

    • Scoring asistance is very rudimentry, and will likely remain so.
  • Independent Component Analysis using FastICA routines from itpp. Reconstituted signals can be saved back to EDF source.

  • EEG signals can be further manually filtered for artifacts. The resulting PSD comes from cleaner epochs, greatly enhancing the SWA profile (crucial for a good Process S model simulation output).

  • Pattern finding. A pattern is characterized by its low-frequency component (adjustable cutoff and filter order), its envelope (a pair of lines connecting local extrema, with adjustable 'tightness'), and a density function of the zerocrossings of signal derivative (with variable sigma and sampling interval, interpolated). Using these criteria and some tuning, one can find occurrences of a pattern (say, a K-complex) in the signal.

  • Phase difference between channels, which can hint at the direction of propagation of EEG waves in a certain frequency band. It is determined as a shift of one signal's band-passed component against another such that the difference between them is minimal. (This feature's usefulness is highly tentative though.)

EDF header viewer/editor

A simple EDF header editor (edfhed-gtk) and a console-only viewer (edfhed) are provided.

Scoring facility, showing a marked artifact

Scoring facility, showing an annotation and the pattern find dialog

Achermann model simulation

Simulated annealing (configurable, from gsl) is used to fit SWA in Achermann's model simulations. You can also:

  • Interactively explore the effect of each model parameter on the course of Process S by tweaking the knobs manually;

  • Generate and save a summary of simulations for your subjects, for further stats.

A model run

Planned features

  • Support EDF+.
  • More advanced Slow-Wave metrics than gross SWA profile (defined as PSD/band/page).

Download

The latest version is 0.4.0, released 2011-11-01 (ChangeLog).

The current release (and older versions) can be found here, along with deb packages for the amd64 and i386 architectures.

The project's public Git repositories are hosted on GitHub and at SourceForge.

BerliOS Developer
       Logo, RIP 2011-12-31