{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n\n# Compute induced power in the source space with dSPM\n\nReturns STC files ie source estimates of induced power\nfor different bands in the source space. The inverse method\nis linear based on dSPM inverse operator.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Authors: Alexandre Gramfort \n#\n# License: BSD-3-Clause\n# Copyright the MNE-Python contributors." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n\nimport mne\nfrom mne import io\nfrom mne.datasets import sample\nfrom mne.minimum_norm import read_inverse_operator, source_band_induced_power\n\nprint(__doc__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set parameters\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data_path = sample.data_path()\nmeg_path = data_path / \"MEG\" / \"sample\"\nraw_fname = meg_path / \"sample_audvis_raw.fif\"\nfname_inv = meg_path / \"sample_audvis-meg-oct-6-meg-inv.fif\"\ntmin, tmax, event_id = -0.2, 0.5, 1\n\n# Setup for reading the raw data\nraw = io.read_raw_fif(raw_fname)\nevents = mne.find_events(raw, stim_channel=\"STI 014\")\ninverse_operator = read_inverse_operator(fname_inv)\n\ninclude = []\nraw.info[\"bads\"] += [\"MEG 2443\", \"EEG 053\"] # bads + 2 more\n\n# picks MEG gradiometers\npicks = mne.pick_types(\n raw.info, meg=True, eeg=False, eog=True, stim=False, include=include, exclude=\"bads\"\n)\n\n# Load condition 1\nevent_id = 1\nevents = events[:10] # take 10 events to keep the computation time low\n# Use linear detrend to reduce any edge artifacts\nepochs = mne.Epochs(\n raw,\n events,\n event_id,\n tmin,\n tmax,\n picks=picks,\n baseline=(None, 0),\n reject=dict(grad=4000e-13, eog=150e-6),\n preload=True,\n detrend=1,\n)\n\n# Compute a source estimate per frequency band\nbands = dict(alpha=[9, 11], beta=[18, 22])\n\nstcs = source_band_induced_power(\n epochs, inverse_operator, bands, n_cycles=2, use_fft=False, n_jobs=None\n)\n\nfor b, stc in stcs.items():\n stc.save(f\"induced_power_{b}\", overwrite=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "plot mean power\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "plt.plot(stcs[\"alpha\"].times, stcs[\"alpha\"].data.mean(axis=0), label=\"Alpha\")\nplt.plot(stcs[\"beta\"].times, stcs[\"beta\"].data.mean(axis=0), label=\"Beta\")\nplt.xlabel(\"Time (ms)\")\nplt.ylabel(\"Power\")\nplt.legend()\nplt.title(\"Mean source induced power\")\nplt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" } }, "nbformat": 4, "nbformat_minor": 0 }