Pythonで脳を研究する 14
引き続きPython MNEで色々と試している.
今回は脳内活動のプロットサンプルコードを出してみた.
import mne
import numpy as np
import matplotlib.pyplot as plt
from mne.datasets import sample
from pathlib import Path
# --- 1. 各種パスと被験者情報の設定 ---
data_path = Path(mne.datasets.sample.data_path())
subject = "sample"
subjects_dir = data_path / "subjects"
trans = str(data_path / "MEG" / "sample" / "sample_audvis_raw-trans.fif")
# --- 2. evokedオブジェクトの読み込み ---
evoked_file = data_path / "MEG" / "sample" / "sample_audvis-ave.fif"
evoked = mne.read_evokeds(str(evoked_file), baseline=(None, 0), proj=True, verbose=False)[0]
# --- 3. BEMおよびソース空間ファイルのパス ---
bem = str(subjects_dir / subject / "bem" / f"{subject}-5120-bem-sol.fif")
src = str(subjects_dir / subject / "bem" / f"{subject}-oct-6-src.fif")
# --- 4. 前向きモデル(Forward Solution)の計算 ---
fwd = mne.make_forward_solution(
evoked.info, trans=trans, src=src, bem=bem,
meg=True, eeg=False, verbose=True
)
# --- 5. ノイズ共分散の推定 ---
# (ここでは、エポックデータからbaseline期間(tmax=0)を使って推定)
raw_fname = data_path / "MEG" / "sample" / "sample_audvis_raw.fif"
raw = mne.io.read_raw_fif(str(raw_fname), preload=True)
raw.pick_types(meg=True, eeg=False, stim=True, eog=True)
events = mne.find_events(raw, stim_channel="STI 014")
event_id = dict(auditory_left=1, auditory_right=2, visual_left=3, visual_right=4)
epochs = mne.Epochs(raw, events, event_id, tmin=-0.2, tmax=0.5, baseline=(None, 0), preload=True)
noise_cov = mne.compute_covariance(epochs, tmax=0)
# --- 6. 逆解算子(Inverse Operator)の作成 ---
inv = mne.minimum_norm.make_inverse_operator(
evoked.info, fwd, noise_cov, loose=0.2, depth=0.8, verbose=True
)
# --- 7. 逆解算子の適用によるソース推定 ---
snr = 3.0
lambda2 = 1.0 / snr ** 2
stc = mne.minimum_norm.apply_inverse(
evoked, inv, lambda2=lambda2, method="dSPM", verbose=True
)
# --- 8. 結果の可視化 ---
# 例えば、初期時刻0.1秒付近の脳活動を表示("split"モードで左右半球表示)
brain = stc.plot(
hemi="split", subjects_dir=str(subjects_dir),
initial_time=0.1, time_viewer=True
)
plt.show()
参考文献
- https://mne.tools/stable/index.html
- Robert A. Seymour, Nicholas Alexander, Stephanie Mellor, George C. O’Neill, Tim M. Tierney, Gareth R. Barnes, and Eleanor A. Maguire. Interference suppression techniques for OPM-based MEG: Opportunities and challenges. NeuroImage, 247:118834, February 2022. doi:10.1016/j.neuroimage.2021.118834.