第7章: メニューからスクリプトへ:履歴パネル¶
第6章 — ERP解析からの続きです。これはMNELABコンパニオン ガイドの最終章です。
ここまで、メインのMNE-Pythonトラックがコードとして教えている「読み込み → 前処理 → ICA → エポック化 → 平均化」というワークフローを、クリックして辿ってきました。この最終章では、その両者を直接結び付ける機能 — MNELABの履歴パネルを紹介します。
履歴パネルを開く¶
View → History(またはCtrl+Y)を開くと、MNELABが起動してからのすべての操作を静かに記録し続けてきたパネルが現れます — しかもあいまいな説明としてではなく、その操作が実際に実行したまさにそのMNE-Pythonコードとして記録されています。これはMNELABの中心的な機能のひとつで、作者自身の言葉によれば、「過去の操作がどの関数に対応するかを発見する」ことや「解析をコードとして再現する」ことを助けるために、まさにそのために存在します(Brunner, 2022, Journal of Open Source Software)。
ある実例¶
このガイドの第2〜5章をサンプル記録データで一通り行うと、履歴パネルにはおおよそ次のような内容が残ります:
data = read_raw("sample_audvis_raw.fif", preload=True)
data.filter(1.0, 40.0)
data.set_eeg_reference("average")
ica.apply(inst=data, exclude=[0, 3])
events, _ = mne.events_from_annotations(data)
data = mne.Epochs(data, events[np.isin(events[:, 2], [1, 2, 3])],
tmin=-0.2, tmax=0.5, baseline=(None, 0), preload=True)
ここに並んでいる行はすべて、メインのMNE-Pythonトラックの第3〜7章で教えているAPIそのものです — filter()、set_eeg_reference()、ica.apply()、events_from_annotations()、そして mne.Epochs()。何ひとつ翻訳されたり近似されたりしていません。履歴パネルは直接の書き起こしです。
ここに橋渡しの章がない理由¶
BrainstormおよびEEGLAB & ERPLABの各トラックは、実際のファイル形式の境界を越えてMNE-Pythonへ戻る章 — .set ファイルを読み込む、あるいはFieldTrip互換の .mat へエクスポートする、といった内容 — で締めくくられます。MNELABにはそのような境界を越える必要がありません。すでにMNE-Pythonそのものだからです — インポートすべきものが何もないのです。履歴パネルの内容は、そのまま .py ファイルやノートブックのセルに貼り付けて実行できます — 読み込み用の関数は不要です。なぜなら、そもそもMNE-Python自身のオブジェクトモデルから一度も外に出ていないからです。
この先へ¶
ここから先、自分自身の記録データで続きを行うには、まさにMNE-Pythonトラックの自分のデータへの応用テンプレートが使えます。多くの読者は、まずMNELABで新しいデータセットを探索し、その履歴パネルから関連する行をコピーして、すべての呼び出しを記憶から書き起こす代わりにそのテンプレートの出発点として使うのがもっとも簡単だと感じています。
これでMNELABコンパニオン ガイドは終わりです — 読んでいただきありがとうございました。