Skip to content
/ Xi-Pi Public

a nonparametric model for neural power spectra decomposition

License

Notifications You must be signed in to change notification settings

ShiangHu/Xi-Pi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XiPi toolbox

Shiang Hu, Zhihao Zhang, BRAIT-LAB

[Paper] [Biorxiv] 2024-May highlights paper - Journal of Biomedical and Health Informatics [Click this]

The ξ-π (XiPi) algorithm separates periodic and aperiodic neural activity using nonparametric model. It works in the spectral domain, like FOOOF, IRASA, SpriNt etc.

**Cover Photo**

**Graphic Abstract**

Installation

The code requires matlab enviroment. If you want to compare it with FOOOF, you also need to install FOOOF here.

Install XiPi (ξ-π)

git clone https://github.com/annie-jpg/XiPeaks-study

Add XiPi_toolbox directory into your matlab

cd $home/XiPeaks-study; addpath(genpath("XiPi_toolbox"))

Quick Start

The XiPi work in the spectral domain. You should calculate the spectral first through power spectrum density estimation method[Welch,Multitaper].
Using matlab command doc pwelch to check, or function xp_calculateSpec(see later).

Then, using the core function :

[psd_ftd,components] = scmem_unim(freq,spt);

Now, you have separate a aperiodic component (AC) and some periodic components (PCs). psd_ftd represents the sum of all components, and components [column 1] represents the AC, [other column] represent the PCs.

Parameter settings

For scmem_unim function, you can set some parameters to limit the peak fitting. According to your datasets, you can set it empirically. If the peak setting is null, we tend to set default for you.
The peak setting includes:
peak_min_width: The peak whose bandwidth < peak_min_width will be not found.
peak_min_value: The peak whose power proportion < peak_min_value will be not found.
peak_num_limt: The number of peak detection will <= peak_num_limt

settings = [1 0.05 3]   % peak_min_width=1;peak_min_value=0.05;peak_num_limt=3;
[psd_ftd,components] = scmem_unim(freq,spt,settings);  

Expansion

For convenience, we provide additional function, including
[import data: xp_importdata]
[calculate PSD: xp_calculateSpec]
[batch excute ξ-π: xp_separateSpec]
[parameterization: xp_parameterize]

XiPi = xp_importdata([]) % import data.
XiPi = xp_calculateSpec(XiPi,[1 30],50,'select_chan',[1 2])  % calculate spectral in channel 1,2 and 1-30s.
XiPi = xp_separateSepc(XiPi)  % using ξ-π to separate neural PSD.
XiPi = xp_parameterize(XiPi)  % using power-law function and Gaussian function [defalut] to parameterize components.

Please use doc command to check more function parameter input.

Prospect and application

The ξ-π algorithm can be:

  • extended to time-frequency analysis.
  • extended to multivariable cross spectrum.
  • applied to obtain oscillation features and predict age, disorder etc.
  • applied to eliminate the impact of aperiodic component.

Contributors

Shiang Hu ([email protected]), Zhihao Zhang ([email protected]), Jie Ruan, Borsh, Pedro A. Valdes-Sosa

Acknowledgements

This work was supported by the NSFC Project Number 62101003. 

About

a nonparametric model for neural power spectra decomposition

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published