EEGLABの歴史
このセクションは、少なくとも基礎を学んだユーザーのために意図されています MATLABのWeb制作とEEGLABの制作 データの分析を自動化および/またはカスタマイズするため。
目次
- トピックス
EEGLAB MATLAB は、
EEGLAB は、MATLAB のコレクションのコレクションです。 スタッフ EEGLAB MATLABのコンセプト これらの関数をスクリプトファイルまたはコマンドから呼び出す EEGLAB GUI は、EEGLAB GUI で、 EEGLABの特長 歴史メカニズムは、データセットで実行されるすべての操作の追跡を維持します EEGLABの特長 メニューベースでスクリプトベースのコンピューティング ユーザーが実行できるようにします。 サンプルデータセットで説明信号処理を行い、 EEGLAB の Windows で発行されたコマンドは、 テキストエディタを使用して変更することができます。
MATLABは、EEGLABの分析の実行をしています。 1 つ以上のデータセットの処理を大幅自動化します。 なので 高度な分析は、多くのパラメータの選択肢を伴って、かなり必要です 長い計算、それは頻繁に習慣を書くことは便利です スクリプト、特に複数のデータセットを同じ方法で処理するか、または 複数の方法で1つのデータセットを処理する。
EEGLABデータ構造(EEG)とサブ構造(EEGLAB) EEG.data、EEG.event、EEG.urevent、EEG.epoch、EEG.chanlocs、 EEG.historyは必須です。 チュートリアルの例は、予約された変数名の一部を議論します EEGLABおよび使用:
- EEG: 現在のEEGデータセット
- AllEEG: 全てを 記憶する
- 現在のデータセット
いつでも参照できます EEGLAB データ構造 詳しくはこちら EEG構造について EEGLABの特徴 EEGLABの学習方法、およびストリーミング方法。
EEGLABの「データセット履歴」との違いは2つあります。 「セッション歴」 つまり「セッション履歴」は、すべて保存されます。 現在の EEGLAB は、 セッション。 対照的に、「データセット履歴」は、その関数呼び出しのみを保存します。 現在のデータセットを修正しました。 セッション履歴は、期間中のみご利用いただけます。 EEGLAB の 最近のコメント データセット履歴が保存されるように、新しいセッション履歴を作成します。 EEG.history 保存時に EEG のデータセット構造のフィールド セッション終了時のデータセット。 そのため、いつか回収されます。 現在のセッションの最後にデータセットを保存します)。
EEGLABフォーラム
このセクションでは、歴史の活用方法を説明します スクリプトを書くための現在のデータセットの変更。
EEGLAB データセットをロードし、データウィンドウを転送します。
- 電話番号 ファイル → データの読み込みEEGLABの「sample_data」フォルダに「eeglab_data.set」と書いてあります。
- メニュー項目を使用する Plot → チャンネルデータ(有料) このポップアップ eegplot 下にデータをスクロールする。

メニュー項目 ファイル → 履歴スクリプト → セッション履歴スクリプトを保存 コマンド テンプレート スクリプトファイル。 ファイルを現在のディレクトリに保存するか、 MATLAB パスのディレクトリ (英語) >> パス セッションコマンドを保存する doitagain.m(必須) MATLABでは、.m ファイルとして保存します。
doitagain.m は、 たとえば オープン MATLABのグラフィカルインターフェイスのボタンで開く。
% EEGLAB history file generated on the 20-Dec-2020
% ------------------------------------------------
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
EEG = pop_loadset('filename','eeglab_data.set','filepath','/data/matlab/eeglab/sample_data/');
[ALLEEG, EEG, CURRENTSET] = eeg_store( ALLEEG, EEG, 0 );
EEG = eeg_checkset( EEG );
pop_eegplot( EEG, 1, 1, 1);
eeglab redraw;
最初の2行はコメントです。 続いて6コマンドを実行します。
- EEGLAB は、
- 2番目のコマンドは、チュートリアルデータセットを読み込む
- EEGLABメモリにデータをセットする
- 4番目のコマンドは、データセットの一貫性をチェックします
- 第5コマンドはデータをプロットする
- 第6回は、EEGLABのグラフィカルインターフェイス(現データセットが更新されます)が更新されます。
>> eeglab 再考 メインのグラフィックインターフェイスが確実になるように、最後に追加されました。 データセットが処理された後更新される。
今すぐプレス Run MATLABのボタンです。 テキストが作成されます。 テキストが実行されます。 ファイル → 履歴スクリプト → スクリプトを実行 このメニュー項目は、MATLAB です。 グラフィカル は、EEGLAB のコンパイルを受け付けています。 また、MATLAB では、以下の手順を実行できます。
doitagain
EEGLABは、EEGLABを運営しています。 プロフィール 別のデータセット 現在のデータセットを処理するために使用した同じコマンドを使用して、試します doitagain.m は、データセットで行います。 再びスクリプトを実行します。
EEGLAB pop_ 関数は、EEGLAB pop_ 関数の呼び出しをします。 EEGLABの特徴 EEGLAB は、
詳細については、 MATLABは、以下のとおりです。 参照 pop_loadset.m、 ヘルプ → EEGLAB 関数 → インタラクティブなポップアップ関数 または EEGLABメニュー eeg_store.mの、ビア → EEGLAB → 管理者機能以下は、MATLAB にインストールします。
help pop_loadset
help eeg_store
EEGLABデータセット
EEGLAB、現時点では、 変数 EEG は EEGLAB が MATLAB 構造で、保存されます。 データセットに関する情報 データセット名と filename, チャンネル数と場所, サンプリング 料金、試行回数、各イベントに関する情報 トライアル/エポック、データ自体など。 完了のため EEG フィールド情報と関連情報 EEGLAB データ構造 コンテンツ EEG構造のフィールドは、EEG.fieldnameの構成要素です。 MATLABでは、 EEG.nbchan* を入力 現在のデータセットのチャンネル数を返します。
EEGLAB は、EEGLAB のパートナーです。 メニュー 現在のEEGデータセットは、EEG.history です。 履歴フィールドの内容には、その関数呼び出しを含む 現在のデータセットを修正し、関数をプロットする呼び出し。
EEG.historyは、 EEGLABでは、バイナリデータセット(for)をインポートします。 インスタンス, TEST.CNT) 以下のメニュー項目を使用しました。
- メニュー項目を使用する ファイル → インポートデータ → EEGLAB関数とプラグイン → Neuroscan .CNT ファイルから ファイルをインポートする(すべてのデフォルトを使用する)
- メニュー項目を使用する ツール → サンプリング速度の変更 サンプリングを250に Hz は、すべてのデフォルトで新しいデータセットに
- メニュー項目を使用する 基本のFIRをクリアする 1 Hz のハイパスフィルタ
- メニュー項目を使用する Plot → チャンネルデータ(有料) データの視覚化
EEG.historyについて コマンドライン 次のテキストを取得する必要があります。
EEG.history
ans =
EEG.etc.eeglabvers = '2020.0'; % this tracks which version of EEGLAB is being used, you may ignore it
EEG = pop_loadcnt('/Users/arno/Downloads/TEST.CNT' , 'dataformat', 'auto', 'memmapfile', '');
EEG = eeg_checkset( EEG );
EEG = pop_resample( EEG, 250);
EEG = eeg_checkset( EEG );
EEG = pop_eegfiltnew(EEG, 'locutoff',1,'plotfreqz',1);
EEG = eeg_checkset( EEG )
また、メニューを選択することで、現在のデータセット履歴を保存できます。 アイテム ファイル → 履歴を保存 → データセット履歴スクリプトを保存.
保存する session の履歴 EEGLAB 多重データセット変更が始まります。 EEG.historyは、現在のデータセットの変更のみとなります。
。 メニューを選択することにより、データセットに切り替える(元の連続データセット) アイテム データセット → データセット 1, と入力します。 >> EEG.history(以下に示す)、 最後の4を除いて上記のコマンド。 データセット1はメモリに保存されたコピーです データセットが読み込まれた後。 データセット 3 データセットから派生するので、すべての歴史を継承 それに適用される変更。
EEG.history
ans =
EEG.etc.eeglabvers = '2020.0'; % this tracks which version of EEGLAB is being used, you may ignore it
EEG = pop_loadcnt('/Users/arno/Downloads/TEST.CNT' , 'dataformat', 'auto', 'memmapfile', '');
EEG = eeg_checkset( EEG );
選択の後でプロセスを繰り返す データセット → データセット 2、私達は得ます
EEG.history
ans =
EEG.etc.eeglabvers = '2020.0'; % this tracks which version of EEGLAB is being used, you may ignore it
EEG = pop_loadcnt('/Users/arno/Downloads/TEST.CNT' , 'dataformat', 'auto', 'memmapfile', '');
EEG = eeg_checkset( EEG );
EEG = pop_resample( EEG, 250);
EEG = eeg_checkset( EEG );
そのため、データセットを繰り返し読み込むと、 繰り返しロードコマンドをデータセット履歴にしたい。
EEG.historyのコマンドは、 データセット(例えば、複数の被験者から)と同一を申請したい EEG.history は、 EEGLAB を運営しています。 例えば、新しいデータセットがあれば、同じように処理したい 最近のデータセット EEGLAB に、>> EEG.history では、新しいデータセットで実行します。 EEGLAB は、 MATLABは、
具体的に、最初に処理するために データセットは、EEGLABのグラフィックをそのまま処理します。 同様のデータセットは、最初に履歴をコピーまたは保存するだけです。 テキストファイルへ 例: doitagain.m は、別のデータセットをロードして実行します。 MATLAB のファイル doitagain.m は、通常、現在のMATLAB のパスです。 現在の作業ディレクトリを含みます。 ヘルプメッセージを読む MATLAB の機能 path.m と addpath.m は MATLAB です。 パス。 ステップバイステップの手順は以下の通りです。
- EEGLABに任せる
- 最初にMATLABメニュー データセット。
- >>>EEG.history のコマンドをコピーします。 データ処理コマンド。
- EEGLABメニューへ マトラボ コマンド で 新しいデータセットで。
- 最後のデータセットが処理されるまで、このように進みます。
より高度なスクリプト例を以下に提示します。 セクション。
データセット履歴は、セッション履歴よりも使いやすいことが多い データセットを操作するためのすべてのコマンドは含まないので。
EEGLAB ウィンドウを閉じる
EEGデータセット EEGLAB は、 以下の2つのコマンドのいずれかを実行してください。
- EEGLABウィンドウが実行中の場合、タイプ:
eeglab redraw;

- EEGLAB
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG, CURRENTSET); eeglab redraw;
新しいデータセットを作成するには、以下を入力します。
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG);
eeglab redraw;
EEGLABウィンドウで変更する
EEGLABデータ構造
EEGLAB MATLABのデータ構造は2つあります。EEGとALLEEG。 ALLEEGは、現在進行中のデータセットです。 EEGLAB では、EEGLAB で勉強しています。 処理中のデータセットに関する情報。 詳細はこちら EEGLAB データ構造 詳細については、.
。 多岐に渡る 現在の EEGLAB のセッションは、 eegh (履歴) コマンド。
eegh
MATLAB では、MATLAB では、EEGLAB のセッションを出力します。 ラインウィンドウ。 ファイル → データの読み込み で EEGLAB の「sample_data」のフォルダにある「eeglab_data.set」のチュートリアルファイルを開くなど。 、入力 eegh の コマンドラインは、次のテキストを返す必要があります。
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
EEG = pop_loadset( 'eeglab_data.set', '/matlab/eeglab/sample_data');
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG);
最初のコマンド (eeglab.mの) EEGLABは、初期化 EEGLAB 変数を出力する。 対象外 変数を継承する、EEGLAB関数() は、 eeglab.mの 呼び出しは他の何も変更しません MATLABワークスペース(EEGLABグローバル変数)pop_loadset.m 関数) データセットを EEG およびeeg_store.mの) ストア ALLEEGファイルデータセット
前のセクションで示されているスクリプトの種類は、戻ってくる可能性があり、 EEGLABのグラフィックとMATLABのコラボレーションで ALLEEGが変更されました。 EEG追加または直接変更 EEG は、MATLAB のファイルから構成されます。 簡単なルールを尊重する必要があります。
複数のデータセットを EEGLABオプション ファイル → 環境設定 メニュー項目(必須項目)、すべての現在の EEGLAB は、 構造のALLEEG、で保存するeノート。 変更されたEEGデータセットをALLEEGにコピーしてください。
を変更 * * 新しいデータセットは、単にタイプするかもしれません:
ALLEEG(2) = EEG;
CURRENTSET = 2;
新しいデータセットは過去のものとは内部的に一貫しているかもしれません。 しかし、コマンドを使用する方が良い eeg_store.mの、広範囲を実行します。 変更されたデータセットを保存する前に、データセットの一貫性をチェックします。 次のコマンドを使用して、新しいデータセットをデータセットに設定します。 番号2
[ALLEEG EEG] = eeg_store(ALLEEG, EEG, 2);
または
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG);
次の空きスペースで新しいデータセットを作成する ALLEEG 変数。データセットは、 変数 CURRENTSET dataset 2 は、最後のコマンド (above) は、 EEGLAB ウィンドウが開きます。 コマンド: >> eeglab 再配置 *ALLEEGは、 pop_newset.m 関数 このコマンドは、広範な機能を実行します。 データセットの一貫性は、より有用な高度なオプションを持っています。 蓄積された変更タイプで現在のデータセットを変更します。
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET,'overwrite', 'on');
変更された構造を保持するために新しいデータセットを作成する場合は、 使用:
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET);
CURRENTSET は新しい番号セットです。 EEGLABは、 注意: EEG 現在データセットのみが配布されます。 処理したいデータセットが含まれています。 上記関数は関数を呼び出します eeg_checkset.m 関数 変更されたデータセットの内部の一貫性を確認してください。
EEG = eeg_checkset(EEG);
または
EEG = eeg_checkset(EEG, 'eventconsistency');
上記2つ目のコマンドは、イベントの一貫性のための追加のチェックを実行します (完成までに時間がかかることもあります) EEG.event 情報からEEG.epoch* まで イベント構造が変更される場合にのみ使用されます。 イベントを見る スクリプトのチュートリアル:(/tutorials/11_Scripting/Event_Processing_command_line.html) EEGイベント
上記のコマンドは、複数のコマンドを維持するオプションがある場合に便利です。 データセットがオンになっています。 複数のデータセットを維持するオプションがオフの場合 (ビア・ザ・ ファイル → 環境設定 メニュー項目) ALLEEG の変数はそのままです。EEG は変数です データセット情報が含まれています。 このオプションを使用する場合は、 一度に1つのデータセットを処理する(ここでの目標は、より少ないメモリを使用することです。 より大きなデータセットを処理することができる。 ユーザーによる変更 EEG構造は即刻です。 不可逆。 一貫性のために、上記のすべてのコマンドが機能します。 は、ALLEEG の変数は空で指定します。
ユーザ名 * ユーザ名 * ユーザ名 * EEGLAB関数が削除されます。 user-added フィールドに格納されます。
EEG.analysis_priority = 1;
このページの先頭へ 現在のEEGデータセット、ALLEEG:すべての読み込みEEGデータセットの配列、現在のデータセットの構成 LASTCOM: EEGLABメニューから発行された最終コマンド; ALLCOM: EEGLABメニューから発行されたすべてのコマンド: EEGLABグループ CRENURTSTUDY: EEGLABグループ解析が0の場合、グループ解析は1EGLABの場合)。 EEGLAB は、グローバル変数の定義です。 コマンドラインからアクセス可能ですが、グローバルでは利用できません。 EEGLAB の変数です。 主要な 相互 相互 EEGLABの機能 eeglab.mの (その他) display)関数 は、 入力パラメータは、グローバル変数にアクセスしたり変更したりしません。 望ましくない ‘サイド 最小チャンス へ。 データセットのエフェクト
基本的なスクリプト例
EEGLABが保存済みか、LongEEGLAB MATLABが管理および実行 そもそもそも、 EEGLAB の処理を実践する EEGLABメニューからEEGLABコマンド履歴書、再実行 保存されたファイル。 MATLABは、実行する手順を説明します。 手動で。
以下は、メインの最初のいくつかのステップの次の例です。 パート から パート まで データセットで実行しなければならない最初の基本的な操作。 チュートリアルデータセット eeglab_data.set と、 対応するチャンネルファイル eeglab_chan32.locs. 追加しました コンピュータ と コード コメントはありません。 EEGLABのストーリーをコピーします。 詳しくはこちらこのページの先頭へ eegh は、
%% Getting started with EEGLAB history
% The line below was added by us to locate data files
eeglab_path = fileparts(which('eeglab.m'));
% Start eeglab
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
% Change option to process multiple datasets
pop_editoptions( 'option_storedisk', 0);
% Load the dataset (We modified the path manually here)
EEG = pop_loadset( 'eeglab_data.set', fullfile(eeglab_path, 'sample_data'));
% Load the channel location file, enabling automatic detection of channel file format'; We modified the path manually here
EEG.chanlocs=pop_chanedit(EEG.chanlocs, 'load',{ fullfile(eeglab_path, 'sample_data', 'eeglab_chan32.locs'), 'filetype', 'autodetect'});
% Store the dataset into EEGLAB
[ALLEEG EEG CURRENTSET ] = eeg_store(ALLEEG, EEG);
% High pass filter the data with cutoff frequency of 1 Hz.
EEG = pop_eegfilt( EEG, 1, 0, [], [0]);
% Below, create a new dataset with the name filtered Continuous EEG Data
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'setname', 'filtered Continuous EEG Data');% Now CURRENTSET= 2
EEG = pop_reref( EEG, [], 'refstate',0); % Re-refrence the new dataset
% This might be a good time to add a comment to the dataset.
EEG.comments = pop_comments(EEG.comments,'','Dataset was highpass filtered at 1 Hz and rereferenced.',1);
% You can see the comments stored with the dataset either by typing >> EEG.comments or selecting the menu option Edit->About this dataset.
EEG = pop_epoch( EEG, { 'square' }, [-1 2], 'newname', 'Continuous EEG Data epochs', 'epochinfo', 'yes');
% Extract epochs time-locked to the event - 'square', from 1 second before to 2 seconds after those time-locking events.
% Now, either overwrite the parent dataset, if you don't need the continuous version any longer, or create a new dataset
%(by removing the 'overwrite', 'on' option in the function call below).
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'setname', 'Continuous EEG Data epochs', 'overwrite', 'on');
EEG = pop_rmbase( EEG, [-1000 0]); % Remove baseline
% Add a description of the epoch extraction to EEG.comments.
EEG.comments = pop_comments(EEG.comments,'','Extracted ''square'' epochs [-1 2] sec, and removed baseline.',1);
[ALLEEG EEG] = eeg_store(ALLEEG, EEG, CURRENTSET); %Modify the dataset in the EEGLAB main window
eeglab redraw % Update the EEGLAB window to view changes
eeg_store や pop_newset は、 複数のデータセットが あります。 現在のデータセットの処理に興味がある場合は、安全に無視できます。 以下は同じスクリプトです。 コメントや追加のデータ管理コマンドなしで、コンパクト化。
注意事項: 以前述べたように、関数は EEGLABの ウィンドウから、ウィンドウのタイトルバーのアンダーリング pop_ 関数の呼び出し。 ファイル → 既存のデータセットをロードする で pop_loadset.m を実行。
eeglab_path = fileparts(which('eeglab.m'));
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
pop_editoptions( 'option_storedisk', 0);
EEG = pop_loadset( 'eeglab_data.set', fullfile(eeglab_path, 'sample_data')); % We modified the path manually here
EEG.chanlocs=pop_chanedit(EEG.chanlocs, 'load',{ fullfile(eeglab_path, 'sample_data', 'eeglab_chan32.locs'), 'filetype', 'autodetect'});
EEG = pop_eegfilt( EEG, 1, 0, [], [0]);
EEG = pop_reref( EEG, [], 'refstate',0);
EEG.comments = pop_comments(EEG.comments,'','Dataset was highpass filtered at 1 Hz and rereferenced.',1);
EEG = pop_epoch( EEG, { 'square' }, [-1 2], 'newname', 'Continuous EEG Data epochs', 'epochinfo', 'yes');
EEG = pop_rmbase( EEG, [-1000 0]);
EEG.comments = pop_comments(EEG.comments,'','Extracted ''square'' epochs [-1 2] sec, and removed baseline.',1);
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG, 1);
eeglab redraw
EEGLABに対応しています。 とりあえず、翻訳済みデータセット
%% Reduce sampling rate
% Reduce the sampling rate to 128 Hz (the above example was already sampled at 128 Hz'')
EEG = pop_resample( EEG, 128);
% Save it as a new dataset with the name Continuous EEG Data resampled
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'setname', 'Continuous EEG Data resampled');
% Now on the GUI we returned to the previous dataset (before downsampling)
EEG = eeg_retrieve(ALLEEG, 1); CURRENTSET = 1;
関数と関数の高速化
ErPのスカルプマップを0msから500msまで作成可能 pop_topoplot.m 関数 EEGLABの歴史 EEGLAB では、このコマンドをロードする、 詳しくはこちら.
%% Plot ERP maps
% Every 100 ms from 0 ms to 500 ms [0:100:500]
% Plot marks showing the locations of the electrodes on the scalp maps.
pop_topoplot(EEG,1, [0:100:500] , 'ERP scalp topographies',[2:3] ,0, 'electrodes', 'on');

EEGLAB では、EEGLAB のライセンスを発行しています。 イラストの目的で弊社から書いていただきました。 上記のコマンド pop_topoplot.m 関数 信号処理機能を直接呼び出して実行できます。 topoplot.mの 以下に示すように:
%% Topographic plot
% Define variables:
times = [0:100:500];
pos = round(eeg_lat2point(times/1000, 1, EEG.srate, [EEG.xmin EEG.xmax]));
% Convert times to points (or >pos = round( (times/1000-EEG.xmin)/(EEG.xmax-EEG.xmin) * (EEG.pnts-1))+1;)
% See the event tutorial for more information on processing latencies
mean_data = mean(EEG.data(:,pos,:),3);
% Average over all trials in the desired time window (the third dimension of
% EEG.data allows to access different data trials). See tutorial about data structures
maxlim = max(mean_data(:));
minlim = min(mean_data(:));
maplimits = [ -max(maxlim, -minlim) max(maxlim, -minlim)]; % Get the data range for scaling the map colors
% Plot the scalp map series
figure
for k = 1:6
sbplot(2,3,k);
% A more flexible version of subplot
topoplot( mean_data(:,k), EEG.chanlocs, 'maplimits', maplimits, 'electrodes', 'on', 'style', 'both');
title([ num2str(times(k)) ' ms']);
end
cbar; % A more flexible version of MATLAB colorbar
トポグラフィのプロットは、スケールを除いて、以前のものとほぼ同じです。

EEGLAB MATLABは、次の手順を実行します。 EEGLAB関数学習 複数の分析を行います。 スクリプトの例をいくつか紹介します。