Source code for neurokit2.eeg.eeg_diss

# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd

from .eeg_gfp import eeg_gfp


[docs] def eeg_diss(eeg, gfp=None, **kwargs): """**Global dissimilarity (DISS)** Global dissimilarity (DISS) is an index of configuration differences between two electric fields, independent of their strength. Like GFP, DISS was first introduced by Lehmann and Skrandies (1980). This parameter equals the square root of the mean of the squared differences between the potentials measured at each electrode (versus the average reference), each of which is first scaled to unitary strength by dividing by the instantaneous GFP. Parameters ---------- eeg : np.ndarray An array (channels, times) of M/EEG data or a Raw or Epochs object from MNE. gfp : list The Global Field Power (GFP). If ``None``, will be obtained via ``eeg_gfp()``. **kwargs Optional arguments to be passed into ``nk.eeg_gfp()``. Returns ------- np.ndarray DISS of each sample point in the data. Examples --------- .. ipython:: python import neurokit2 as nk eeg = nk.mne_data("filt-0-40_raw") eeg = eeg.set_eeg_reference('average') gfp = nk.eeg_gfp(eeg) diss = nk.eeg_diss(eeg, gfp=gfp) @savefig p_eeg_diss1.png scale=100% nk.signal_plot([gfp[0:300], diss[0:300]], standardize=True) @suppress plt.close() References ---------- * Lehmann, D., & Skrandies, W. (1980). Reference-free identification of components of checkerboard-evoked multichannel potential fields. Electroencephalography and clinical neurophysiology, 48(6), 609-621. """ if isinstance(eeg, (pd.DataFrame, np.ndarray)) is False: eeg = eeg.get_data() if gfp is None: gfp = eeg_gfp(eeg, **kwargs) normalized = eeg / gfp diff = np.diff(normalized, axis=1) diss = np.mean(np.power(diff, 2), axis=0) # Preserve length diss = np.insert(diss, 0, 0, axis=0) return diss