EEG研究に向けて_Day3解析編_公開用

416 Views

March 25, 25

スライド概要

ラボで使用した脳波勉強会の資料です。
3部作で、Day1 知識編、Day2 実験編、Day3解析編です。
資料のダウンロードや質問は、reikuma.brain[at]gmail.comまで。
tag: 脳波, EEG, eeglab

作成者は、本内容に一切の責任を負いません。また無断転載を禁止します。

profile-image

所属:早稲田大学大学院人間科学研究科博士課程 専門:認知神経科学 手法:fMRI, fNIRS, EEG, MEG, 視線, Psychopy

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2024-07-15 脳波研究に向けて ー解析編ー

2.

はじめに 構成 Day 1 • 脳波の種類 • 脳波計 • グラフの読みかた Day2 • 脳波の実験課題を作る • 脳波の実験をする Day3 1. 解析の動向 2. パイプライン 3. eeglabによる解析 解析準備, 前処理, 個人解析, 集団解析 2 / 76

3.

解析ソフトの動向

4.

脳波を解析する 再掲 4 / 76 脳波解析ソフト MNE-Python ・Pythonベースでコーディング必要 ・発展的な解析が可能 ・ECoG, MEG, NIRSも可能 https://mne.tools/stable/index.html# EEGLAB ・MATLABベースでGUI操作可能 ・基礎的な解析・簡単な図示しやすい ・参考書がある https://sccn.ucsd.edu/eeglab/index.php BrainStorm ・MATLABベース https://neuroimage.usc.edu/brainsto rm/Introduction

5.

脳波解析ソフト 5 / 76 解析ソフト https://doi.org/10.52294/001c.116386

6.

脳波解析ソフト 6 / 76 ERPを図示する (1/3) https://doi.org/10.52294/001c.116386

7.

脳波解析ソフト 7 / 76 ERPを図示する (2/3) https://doi.org/10.52294/001c.116386

8.

脳波解析ソフト 8 / 76 ERPを図示する (3/3) https://doi.org/10.52294/001c.116386

9.

今回のデータについて

10.

今回のデータについて 10 / 76 ERP Event Motor • BrainProduct actiCAP 32chで計測 • 2024.07.10に収録 • トリガー情報変更済みデータ • 4人分データ (25, 26, 26, 32歳) • 左手S1:18回 右手S2:18回 • -1000 ~ 2000 msec 課題1秒ー安静17~21秒 (handgrip_event.psyexp) PsychoPy 課題起動 実験実行 Spacekey クリック 【+】表示 30sec 【+】表示 約19sec 【L】表示 1sec 【+】表示 約19sec 【R】表示 1sec 終了 実験画面 自動消滅 トリガー 18回繰り返し(計36回) 課題時間:12.5分

11.

パイプライン

12.

パイプライン 12 / 76 前処理pipeline 出典 脳波解析入門 リンク 特徴 https://sites.google.com/site/eeglabspmbook/home https://eeglab.org/tutorials/11_Scripting/automated_pip eline.html eeglab開発者 PREP https://vislab.github.io/EEG-Clean-Tools/ 有名だがアーチファクト除去が自動ではないため時代遅れとの声も HAPPE https://www.frontiersin.org/articles/10.3389/fnins.2018. 00097/full 発達期データおよび高アーティファクトデータ用の標準化された処 理ソフトウェア DEEP https://www.sciencedirect.com/science/article/pii/S187 8929322000482?via%3Dihub Makoto's preprocessing pipeline https://sccn.ucsd.edu/wiki/Makoto's_preprocessing_pip eline#:~:text=investigation%20is%20necessary.,Further%20optimizing%20the%20preprocessing%20ord er,-%3F%20(02/28/2020 他の説明も詳しい。この人が提案している https://www.cincinnatichildrens.org/bio/m/makoto-miyakoshi Delorme(2023), scirntific reports https://doi.org/10.1038/s41598-023-27528-0 主張自体は独特だが、新手法と比較する既存手法は参考になる Cristina(2023), scirntific data https://doi.org/10.1038/s41597-023-02525-0 臨床神経科学におけるバイオマーカー探索のための、オープンで完 全自動化されたEEGパイプライン eeglab wiki

13.

パイプライン 13 / 76 前処理pipeline例 (1/2) PREPのパイプライン 脳波解析入門のパイプライン Makoto’s パイプライン

14.

パイプライン 14 / 76 前処理pipeline例 (2/2) Cristina(2023)のパイプライン HAPPEのパイプライン DEEPのパイプライン

15.

パイプライン 再掲 15 / 76 解析の流れ 解析準備 前処理 データ読み込み Annotation情報 書き直し ダウン サンプリング 不要チャンネル 除去 電極位置情報 登録 High-pass filter Low-pass filter 不良チャンネル 除去・補完 Re-reference エポッキング ICA High-pass filter +LineNoise除去 不良区間除去 ASR Re-reference エポック リジェクト ICA不要コン ポーネント除去 時間周波数解析 同期分析 +α チャンネルレベル / ソースレベル 集団解析 事象関連電位 周波数解析

16.

パイプライン 再掲 16 / 76 今回説明する解析の流れ 解析準備 前処理 データ読み込み Annotation情報 書き直し ダウン サンプリング 不要チャンネル 除去 電極位置情報 登録 High-pass filter Low-pass filter 不良チャンネル 除去・補完 Re-reference エポッキング ICA High-pass filter +LineNoise除去 不良区間除去 ASR Re-reference エポック リジェクト ICA不要コン ポーネント除去 時間周波数解析 同期分析 +α チャンネルレベル / ソースレベル 集団解析 事象関連電位 周波数解析

17.

パイプライン 今回のパイプライン • Makoto’s pipelineとDelorme(2023) pipelineを元に作成 • 脳波解析入門と比較して、研究者の意志が介在しないよう自動化アルゴリズムを多用 • 再現性へ • 脳波解析の練習も兼ねて、工程数を多めに設定 • 必要に応じて&先行研究に応じて、前処理の取捨選択を。 17 / 76

18.

セットアップ&起動

19.

セットアップ&起動 再掲 19 / 76 MATLABのインストール (2024a) • 以下のサイトの指示に従って、MATLABをインストールする https://www.waseda.jp/navi/rental/soft/matlab.html R2024aで実習します。 他のバージョンでも動くと思います。

20.

セットアップ&起動 再掲 20 / 76 eeglabのインストール (2024.0) https://sccn.ucsd.edu/eeglab/download.php or https://sccn.ucsd.edu/eeglab/download/daily/ 一番下の2024.0をダウンロード

21.

セットアップ&起動 再掲 eeglabを起動する (1/3) ① MATLABを起動する ② パスの設定を選択 ③ ポップアップが出てくる ④ フォルダーの追加 21 / 76

22.

セットアップ&起動 再掲 22 / 76 eeglabを起動する (2/3) ⑤ ダウンロードした[eeglab2024] を選択する ⑥ [OK]を選択 ⑦ 追加したeeglabが表示されているか確認 ⑧ [保存]を選択 ⑨ [閉じる]を選択

23.

セットアップ&起動 再掲 eeglabを起動する (3/3) eeglabと入力し、Enterを押す 青いポップアップが出てくる 23 / 76

24.

セットアップ&起動 24 / 76 アドインを追加 (今回は不要) 選択 Install/Updateをすると、 eeglabが終了し再起動される オススメ • Biosig:edfファイルを開ける • ICLabel, mara:ICA後の除去を自動で行う

25.

解析準備

26.

動画解説 26 / 76 https://youtu.be/RhHKZpTJxvY

27.

解析準備 27 / 76 画面の見方 • • • • • • • • • • • • #1 (name):作業履歴(何もしていないので#1) フォルダパス:初期は入っていないことも チャンネルの個数:脳波+その他 1エポックの長さ:初期は全区間 エポック数:設定なしなら1 イベント数 サンプリング周波数 エポックのスタート/エンド:初期は0~最後 リファレンス:初期はunknown チャンネル位置:No(label only) ICAの有無:No データ容量 解析していく途中でこのポップアップがよく出る。 基本的には[OK]で良い。#2 (name)と履歴が増える。 毎処理が終わるとDoneと表示される

28.

解析準備 28 / 76 データの読み込み (今回のみ) .setファイルを選択 実習1 #1 情報が登録されている

29.

解析準備 29 / 76 データの読み込み (Cognionicsの場合) .edfファイルを選択 自分の好きな名前に

30.

解析準備 30 / 76 Annotation情報 書き出し (今回は不要) • テキストファイルで出力されるので、ファイルの 拡張子を自力で.csvにする。 • ファイルはタブ区切りなので、データ>区切り位置 で見やすくする。 • typeの箇所を任意のイベント名に変更する • number, latency, typeだけで十分(他は削除)

31.

解析準備 31 / 76 Annotation情報 書き込み (今回は不要) この箇所にコピペ イベントファイル(csv)を登録 上から、「1」「NaN」「NaN」「(チェックなし)」

32.

解析準備 32 / 76 ダウンサンプリング (今回は不要) 250もしくは500に

33.

解析準備 33 / 76 不要チャンネル除去 (Cognionicsの場合) 該当するチャンネルを選択 (Cognionicsなら29個)

34.

解析準備 34 / 76 電極位置情報登録 実習2 #1 球体を平面にしているので頭からはみ出る。 チャンネルが正しく配置されているか確認 問題なければ[OK] を押す

35.

解析準備 35 / 76 波形データの確認 だいたい60sぐらい 実験内容による time windowをずらす 実習3 #1 見え方は次ページ

36.

解析準備 36 / 76 [確認] 前処理前のデータ トリガーが実験パラダイム通り登録されているか Channel locations が Yesか 実習3 #1 ノイズが多い(全チャンネルが類似した動きをしている) = 全チャンネルに共通のノイズが乗っている

37.

前処理

38.

前処理 38 / 76 解説 (1/3) High-pass Filter / Low-pass Filter • HPF:ベースラインドリフトを除去する。ICAの精度にも影響を与える。 • LPF:ラインノイズを除去する、ノッチフィルターをすることも。 • 2つ合わせて、Band-pass Filterということも。 不良チャンネル除去 • 不良チャンネルとはデータポイントの5-10%を拒否しても保持できないチャンネルのこと • 平均Re-referanceをする時に重要なステップ (平均に対してノイズが多くなる) 不良チャンネルの補完 • 失ったチャンネルを、脳を球体と仮定して補完する。 • ただし、補完によって情報量が増えないので、意味なしという考えもある。 • ただし、ICAや信号減推定を行う時に脳モデルが必要なので、意味あるという考えもある。

39.

前処理 解説 (2/3) Re-reference (1回目) • 有名なのは平均Re-reference法。頭部のリファレンス電極の位置に依存しない。 • ラインノイズの抑制に役立つとも 不良区間修正(ASR), 不良区間除去 • 不良区間(過度な体動などによる)を除去ではなく、修正する考え Re-reference (2回目) • ICAの精度を上げるために実施。(精度とは関係ないという声も。。。) • データを再度、zero-sum状態にする 39 / 76

40.

前処理 40 / 76 解説 (3/3) ICA • Independent Component Analysis 独立成分分析 • 他変量の信号を複数の加法的な成分に分離するための計算方法 • これをすることで、脳由来、眼電由来、筋電由来などに分割できる ICA不要コンポーネント除去(ICLabel) • これまで手作業で行なっていた作業が自動化 • 由来を分割してもそのラベル付けはされていないため、ラベル付けを実施する • maraでも良い。 エポッキング • データをトリガー情報を元に分割すること。トリガー時刻から-500 ~ 2000msなど。 • エポックのうち、ノイズが多いものを除去することをエポックリジェクトという。

41.

前処理 41 / 76 参考 ICA不要コンポーネントの判別 https://labeling.ucsd.edu/tutorial/labels

42.

前処理 42 / 76 High-pass filter / Low-pass filter 1-40Hzに 実習4 #2 電源ノイズなどを理由に慣習的に1 – 40 Hzにすることが多い。 高周波数帯域や低周波数帯域を見るために、 0.5 – 80Hzを見る研究もある。

43.

前処理 43 / 76 不良チャンネル除去 デフォルト値で。 チェックが入っているか確認 チェックが入っていないか確認 実習5 #3 不良チャンネル除去をした結果、 チャンネル数が32→31へ FC2が削除

44.

前処理 44 / 76 不良チャンネル補完 Dataset番号-1 (#3なので「2」を入力) 不良チャンネルとして除去されていなかったら このフェーズは不要 →32チャンネルから31チャンネルになったので補完 その結果、 ここの個数と今の個数を足して全チャンネル数になるように (今回なら、不良除去後31個+補完1個=全体32個) 実習6 #4 チャンネル数が31→32へ

45.

前処理 45 / 76 Re-reference (再基準化) 1回目 チェックが入っているか 実習7 #5

46.

前処理 46 / 76 不良区間修正(ASR), 不良区間除去 チェックが入っていないか確認 デフォルト値で。 チェックが入っているか確認 チェックが入っていないか確認 チェックが入っていないか確認 実習8 #6 今回はデモのため、 Removed bad dataはしない removedした結果、トリガー 数が足りなくなることがある

47.

前処理 47 / 76 Re-reference (再基準化) 2回目 チェックが入っているか 実習9 #7

48.

前処理 48 / 76 ICAのコンポーネント数を検討 除去されなかったチャンネル-1が自動入力。 eeglab2022.0にはなかった。 ICA アルゴリズム選択 初期設定ののrunicaでよい ICA実行中(時間がかかる) Interrruptは押さない step...と過程が表示 実習10 #7 Doneと出ずに終了

49.

前処理 49 / 76 ICA 不要コンポーネント除去 (ICLabel) (1/3) DefaultでOK 初期設定でOK 出力される 実習11 #7 ICAコンポーネントとそれの成分由来が表示される 番号を押すと、詳細が表示される

50.

前処理 50 / 76 ICA 不要コンポーネント除去 (ICLabel) (2/3) 実習12 #7 除去するコンポーネントにFlagをつけるため、 除去したい割合をそれぞれ入力 Eyeの可能性が0.5-1、つまり50~100%なら除去 初期値(0.9-1)は緩すぎという考えがある

51.

前処理 ICA 不要コンポーネント除去 (ICLabel) (3/3) 実習13 #8 51 / 76

52.

前処理 52 / 76 [確認] 前処理後のデータ 前処理前 前処理後

53.

前処理 53 / 76 データの保存 今回は、eeg_sub01_prepro.setで保存 エポッキング(次項)前に保存するのがオススメ 前処理後のデータは、 ・ICAで除去した後のデータ ・エポッキングした後のデータ をそれぞれ保存する。 エポッキングすると、再エポッキングできない 実習14 #8

54.

前処理 54 / 76 エポッキング 時間幅を決める 今回は-1 ~ 2secで良い その結果、 実習15 #9 連続データではなくなる 使うトリガー名を選択 今回は’S 1’と’S 2‘を使用

55.

前処理 55 / 76 データの保存 今回は、eeg_sub01_prepro_epoch.setで保存 実習16 #9

56.

個人解析

57.

個人解析 57 / 76 作図:周波数解析 横軸:周波数(Hz) 縦軸:パワースペクトル密度(dB (V2/Hz)) 表示する帯域を設定

58.

個人解析 58 / 76 作図:誘発電位・事象関連電位 (1/4) 表示チャンネルを選択 上:試行間のばらつき 横軸:時間 (ms) 縦軸:試行数(32試行表示) カラーバー:ポテンシャル(μV) 表示時間を入力 使うトリガーを選択 下:ERP 横軸:時間 (ms) 縦軸:ポテンシャル(μV)

59.

個人解析 59 / 76 作図:誘発電位・事象関連電位 (2/4) 横軸:時間 (ms) 縦軸:ポテンシャル(μV)

60.

個人解析 60 / 76 作図:誘発電位・事象関連電位 (3/4) 横軸:時間 (ms) 縦軸:ポテンシャル(μV)

61.

個人解析 61 / 76 作図:誘発電位・事象関連電位 (4/4) 見たい時間を入力 この例だと200ms, 400ms, 600ms カラーバー:ポテンシャル(μV) 凡例:時点

62.

個人解析 62 / 76 作図:時間周波数解析 見たいチャンネルを選択 横軸:時間(ms) 縦軸:周波数(Hz) カラーバー:パワースペクトル密度(dB) 凡例:チャンネル名・条件名

63.

集団解析

64.

動画解説 64 / 76 https://youtu.be/RhHKZpTJxvY

65.

集団解析 65 / 76 データ読み込み • エポッキング後のデータを使用 • command/Ctrlで複数選択可能 実習17

66.

集団解析 66 / 76 STUDY作成 nameは必須 メモリ管理の警告(無視) subjectに 被験者番号 session, conditionに複数回収録、 group に被験者のグループ分けを登録 実習18

67.

集団解析 67 / 76 design作成 sutdyが作成されると study setに変わる トリガーを選択 実習19

68.

集団解析 68 / 76 Precompute ERPs:baselineの時間帯を入力 ERSPs:時間がかかる 脳波解析入門では、 'cycles', [2 0.5], 'nfreqs', 48, 'freqs', [4 40] ERP-image: 試行数が一致してないとエラー 出力してもあまり意味がない 解析したいものにチェックをいれる 実習20 ERPsを選択すると ITTsも同じとでる。OKで

69.

集団解析 69 / 76 結果作図 準備 2つにチェックを入れる 有意水準は0.05で 実習21

70.

集団解析 70 / 76 作図:事象関連電位 対象チャンネルを選択 適宜入力 ・Time:表示時刻 ・limit:縦軸の幅 ・Lowpass plotted:滑らかに書く 印象が変わるので注意 1つの図に2条件をプロット OK後にPlot ERPsを選択→ 実習22

71.

集団解析 71 / 76 作図:事象関連電位 全チャンネル選択 適宜入力 ・Time:対象としたい時間を入力 この例だと、400~600ms Plot averaged topographyを選択 OK後にPlot ERPsを選択↓ 実習23

72.

集団解析 72 / 76 作図:周波数解析 適宜入力 ・Frequency:1-40Hzを入力 対象チャンネルを選択 1つの図に2条件をプロット OK後にPlot spectraを選択→ 実習24

73.

集団解析 73 / 76 作図:時間周波数解析 対象チャンネルを選択 適宜入力 ・Time:-500~1500ms ・Frequency:1-40Hzを入力 OK後にPlot ERSPsを選択↓ 実習25

74.

まとめ

75.

まとめ 今回の結果 75 / 76

76.

まとめ 今回の結果 • 運動によるもの?(運動関連脳電位?) • 500msは速い気がするが。 • 文字(R, L)が提示されたことによるもの? • Cognionicsの結果は散々 実験環境、教示が適切ではなかった • 脳波解析したら終わりではなく、 先行研究を踏まえて考察する必要がある 76 / 76