GrandSpectralPipeο
Tip
π‘ Usage Examples - See the notebook for usage examples and code snippets: Grand spectral analyses
- class sleepeegpy.pipeline.GrandSpectralPipe(*, pipes, output_dir)[source]ο
Bases:
SpectrumPlotsThe pipeline element combining results from multiple subjects.
Contains methods for computing and plotting combined PSD and topomaps, per sleep stage.
Methods:
For each sleep stage creates a
mne.time_frequency.SpectrumArrayobject.Spectral parametrization by FOOOF - fitting oscillations & one over f.
Plot PSD per sleep stage.
Plots topomap for a sleep stage and a frequency band.
Plots topomap collage for multiple sleep stages and bands.
Saves SleepSpectrum objects to h5 files.
Attributes:
Stores SpectralPipes for multiple subjects.
Path to the directory where the output will be saved.
Representative raw object to infer montage
Instances of
fooof.FOOOFGroupper sleep stage.Instances of
SleepSpectrumper sleep stage.-
pipes:
Iterable[SpectralPipe][source]ο Stores SpectralPipes for multiple subjects.
- plot_psds(picks, psd_range=(-40, 60), freq_range=(0, 60), dB=True, xscale='linear', axis=None, plot_sensors=False, save=False, legend_args=None, **plot_kwargs)[source]ο
Plot PSD per sleep stage.
- Parameters:
picks (
Iterable[str] |str) β Channels to plot PSDs for. Refer tomne.io.Raw.pick().psd_range (
tuple) β Range of y axis on PSD plot. Defaults to (-40, 60).freq_range (
tuple) β Range of x axis on PSD plot. Defaults to (0, 40).dB β Whether transform PSD to dB. Defaults to True.
xscale (
str) β Scale of the X axis, check available values atmatplotlib.axes.Axes.set_xscale(). Defaults to βlinearβ.axis (
axis) β Instance ofmatplotlib.axes.Axes. Defaults to None.plot_sensors (
bool) β Whether to plot sensor map showing which channels were used for computing PSD. Defaults to False.save (
bool) β Whether to save the figure. Defaults to False.**plot_kwargs β Arguments passed to the
matplotlib.pyplot.plot(). Have no effect if axis is provided.Defaults to None.
- plot_topomap(stage='REM', band={'Delta': (0, 4)}, dB=False, axis=None, save=False, topomap_args=None, cbar_args=None)[source]ο
Plots topomap for a sleep stage and a frequency band.
- Parameters:
stage (
str) β One of the sleep_stages keys. Defaults to βREMβ.band (
dict) β Name-value pair - with name=arbitrary name and value=(l_freq, h_freq). Defaults to {βDeltaβ: (0, 4)}.dB (
bool) β Whether transform PSD to dB. Defaults to False.axis (
axis) β Instance ofmatplotlib.axes.Axes. Defaults to None.save (
bool) β Whether to save the figure. Defaults to False.topomap_args (
dict) β Arguments passed tomne.viz.plot_topomap().Defaults to None.cbar_args (
dict) β Arguments passed tomatplotlib.pyplot.colorbar().Defaults to None.
- plot_topomap_collage(stages_to_plot='all', bands={'Alpha': (8, 12.49), 'Beta': (12.5, 29.99), 'Delta': (0, 3.99), 'Gamma': (30, 60), 'Sigma': (12.5, 15), 'Theta': (4, 7.99)}, dB=False, low_percentile=5, high_percentile=95, fig=None, save=False, topomap_args=None, cbar_args=None)[source]ο
Plots topomap collage for multiple sleep stages and bands.
- Parameters:
stages_to_plot (
tuple) β Tuple of strings representing names from sleep_stages, e.g., (βREMβ, βN1β). If set to βallβ plots every stage provided in sleep_stages. Defaults to βallβ.bands (
dict) β Dict of name-value pairs - with name=arbitrary name and value=(l_freq, h_freq). Defaults to { βDeltaβ: (0, 3.99), βThetaβ: (4, 7.99), βAlphaβ: (8, 12.49), βSigmaβ: (12.5, 15), βBetaβ: (12.5, 29.99), βGammaβ: (30, 60), }.dB (
bool) β Whether transform PSD to dB. Defaults to False.sleep_stages β Mapping between sleep stages names and their integer representations. Defaults to {βWakeβ: 0, βN1β: 1, βN2β: 2, βN3β: 3, βREMβ: 4}.
low_percentile (
float) β Set min color value by percentile of the band data. Defaults to 5.high_percentile (
float) β Set max color value by percentile of the band data. Defaults to 95.fig (
figure) β Instance ofmpl:matplotlib.pyplot.figure. Defaults to None.save (
bool) β Whether to save the figure. Defaults to False.topomap_args (
dict) β Arguments passed tomne.viz.plot_topomap(). Defaults to None.cbar_args (
dict) β Arguments passed tomatplotlib.pyplot.colorbar(). Defaults to None.
- save_psds(overwrite)[source]ο
Saves SleepSpectrum objects to h5 files.
- Parameters:
overwrite β Whether to overwrite existing spectrum files.
-
psds:
dictο Instances of
SleepSpectrumper sleep stage.
-
fooofs:
dict[source]ο Instances of
fooof.FOOOFGroupper sleep stage.
- compute_psd(sleep_stages={'N1': 1, 'N2': 2, 'N3': 3, 'REM': 4, 'Wake': 0}, reference=None, fmin=0, fmax=60, average='mean', picks='eeg', reject_by_annotation=True, save=False, overwrite=False, **psd_kwargs)[source]ο
For each sleep stage creates a
mne.time_frequency.SpectrumArrayobject.- Parameters:
sleep_stages (
dict) β Sleep stages mapping in hypnogram. Defaults to {βWakeβ: 0, βN1β: 1, βN2β: 2, βN3β: 3, βREMβ: 4}.reference (
Iterable[str] |str|None) β Which eeg reference to compute PSD with. If None, the reference isnβt changed. Defaults to None.fmin (
float) β Lower frequency bound. Defaults to 0.fmax (
float) β Upper frequency bound. Defaults to 60.picks (
str|Iterable[str]) β Channels to compute spectra for. Refer tomne.io.Raw.pick(). Defaults to βeegβ.reject_by_annotation (
bool) β Whether to not use the annotations for the spectra computation. Defaults to True.save (
bool) β Whether to save the spectra in .h5 files. Defaults to False.overwrite (
bool) β Whether to overwrite the file. Defaults to False.**psd_kwargs β Additional arguments passed to
mne.time_frequency.psd_array_welch()
- parametrize(picks, freq_range, average_ch=False, **kwargs)[source]ο
Spectral parametrization by FOOOF - fitting oscillations & one over f.
- Parameters:
picks β Channels to use in parametrization.
freq_range β Range of frequencies to parametrize. If None, set to bandpass filter boundaries. Defaults to None.
average_ch β Whether to average psds over channels. If False will be averaged over subjects. Defaults to False.
**kwargs β Arguments passed to
fooof.FOOOFGroup.
-
pipes: