What’s new

v0.1.9 (February 2020)

New functions

  1. Added yasa.transition_matrix() to calculate the state-transition matrix of an hypnogram.

  2. Added yasa.sleep_statistics() to extract the sleep statistics from an hypnogram.

  3. Added the coupling and freq_so keyword-arguments to the yasa.spindles_detect() function. If coupling=True, the function will also returns the phase of the slow-waves (in radians) at the most prominent peak of the spindles. This can be used to perform spindles-SO coupling, as explained in the new Jupyter notebooks on PAC and spindles-SO coupling.


  1. It is now possible to disable one or two out of the three thresholds in the yasa.spindles_detect(). This allows the users to run a simpler detection (for example focusing exclusively on the moving root mean square signal).

  2. The yasa.spindles_detect() now returns the timing (in seconds) of the most prominent peak of each spindles (Peak).

  3. The yasa.get_sync_sw has been renamed to yasa.get_sync_events() and is now compatible with spindles detection. This can be used for instance to plot the peak-locked grand averaged spindle.

Code testing

  1. Removed Travis and AppVeyor testing for Python 3.5.

v0.1.8 (October 2019)

  1. Added yasa.plot_spectrogram() function.

  2. Added lspopt in the dependencies.

  3. YASA now requires MNE>0.19.

  4. Added a notebook on non-linear features.

v0.1.7 (August 2019)

  1. Added yasa.sliding_window() function.

  2. Added yasa.irasa() function.

  3. Reorganized code into several sub-files for readability (internal changes with no effect on user experience).

v0.1.6 (August 2019)

  1. Added bandpower function

  2. One can now directly pass a raw MNE object in several multi-channel functions of YASA, instead of manually passing data, sf, and ch_names. YASA will automatically convert MNE data from Volts to uV, and extract the sampling frequency and channel names. Examples of this can be found in the Jupyter notebooks examples.

v0.1.5 (August 2019)

  1. Added REM detection (rem_detect) on LOC and ROC EOG channels + example notebook

  2. Added yasa/hypno.py file, with several functions to load and upsample sleep stage vector (hypnogram).

  3. Added yasa/spectral.py file, which includes the bandpower_from_psd function to calculate the single or multi-channel spectral power in specified bands from a pre-computed PSD (see example notebook at notebooks/10_bandpower.ipynb)

v0.1.4 (May 2019)

  1. Added get_sync_sw function to get the synchronized timings of landmarks timepoints in slow-wave sleep. This can be used in combination with seaborn.lineplot to plot an average template of the detected slow-wave, per channel.

v0.1.3 (March 2019)

  1. Added slow-waves detection for single and multi channel

  2. Added include argument to select which values of hypno should be used as a mask.

  3. New examples notebooks + changes in README

  4. Minor improvements in performance (e.g. faster detrending)

  5. Added html API (/html)

  6. Travis and AppVeyor test for Python 3.5, 3.6 and 3.7

v0.1.2 (February 2019)

  1. Added support for multi-channel detection via spindles_detect_multi function.

  2. Added support for hypnogram mask

  3. Added several notebook examples

  4. Changed some default parameters to optimize behavior

v0.1.1 (January 2019)

  1. Added post-processing Isolation Forest

  2. Updated Readme and added support with Visbrain

  3. Added Cz full night in notebooks/

v0.1 (December 2018)

Initial release of YASA: basic spindles detection.