المحطة 1 · الدرس 4

ALLEEG وإدارة الداتاست

مهم10 دقائققبل هذا الدرس: بنية EEG structاطبع البطاقة
تبدأ من: eeglab_data.set (D1) · لا شيء: البيانات كما نزّلتها.تنزيل البيانات (يفتح في نافذة جديدة)
سكربت الوصول لهذه الحالة
MATLAB
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
sampleFolder = fullfile(fileparts(which('eeglab')), 'sample_data');
EEG = pop_loadset('filename', 'eeglab_data.set', 'filepath', sampleFolder);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, 0, 'setname', 'Continuous EEG Data', 'gui', 'off');
eeglab redraw;

الفكرة باختصار

كل خطوة معالجة تنتج نسخة جديدة من بياناتك. ويستطيع EEGLAB أن يحتفظ بعدة نسخ في الذاكرة في نفس الوقت، فتقارن قبل وبعد، أو تعود خطوة للخلف دون أن تفتح الملف من جديد.

يستخدم EEGLAB لذلك ثلاثة متغيّرات:

قبل وبعد

رف اسمه ALLEEG عليه صندوقان: 1 هو Continuous EEG Data بـ 32 قناة، و 2 هو D1 no EOG بـ 30 قناة. سهم CURRENTSET = 2 يشير إلى الصندوق 2، ونسخة منه أمام الرف اسمها EEG.

أسئلتك بعد هذا، كل جواب في قسمه:

لماذا أحتاج هذه الخطوة؟

السبب بالتفصيل، والمصطلحات التي تحتاجها
  • ALLEEG: الرفّ الذي يحمل كل داتاستdatasetملف بيانات EEG واحد محمّل في EEGLAB مع معلوماته. (dataset) في الذاكرة.
  • EEG: الداتاست التي تعمل عليها الآن.
  • CURRENTSET: رقم هذه الداتاست على الرفّ.

إذا لم تعرف أي داتاست هي الحالية، قد تفلتر النسخة الخطأ أو تحفظ فوق الأصل. هذا الدرس يعلّمك كيف تعرف دائماً أين أنت.

كيف أطبّقها في EEGLAB؟

14 خطوة من القوائم

1. غيّر شيئاً وخزّنه كداتاست جديدة

حتى يكون عندنا شيء نخزّنه، نجري تغييراً بسيطاً: نحذف قناتي العين EOG1 و EOG2. هذا مثال لهذا الدرس فقط.

  1. و eeglab_data.set مفتوحة، افتح Edit ثم Select data.
  2. في صف Channel(s) اكتب EOG1 EOG2.
  3. فعّل خانةfield (in a dialog)مكان في نافذة نكتب فيه قيمة أو نختارها. في نفس الصف، تحت on->remove these. بدون هذه العلامة يُبقي EEGLAB هاتين القناتين ويحذف كل قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. (channel) الأخرى.
  4. اضغط OK.
  5. تظهر نافذة تسأل What do you want to do with the new dataset?. في Name it: استبدل Continuous EEG Data بـ D1 no EOG.
  6. اترك Save it as file: غير مفعّلة. الداتاست الجديدة تبقى في الذاكرة فقط.
  7. اترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّلة، حتى يبقى الأصل داتاست رقم 1.
  8. اضغط OK.

تبدأ النافذة الرئيسية الآن بـ #2: D1 no EOG، و Channels per frame يعرض 30.

2. تنقّل بين الداتاست

  1. افتح قائمةmenuمجموعة أوامر تظهر عند الضغط على اسمها في أعلى النافذة. Datasets. فيها Dataset 1:Continuous EEG Data و Dataset 2:D1 no EOG. والحالية عليها علامة صح.
  2. اختر Dataset 1:Continuous EEG Data. تعرض النافذة الرئيسية #1 و 32 قناة من جديد.
  3. أي قائمة تستخدمها الآن تعمل على الداتاست 1. قبل كل خطوة، انظر إلى السطر الأول في النافذة الرئيسية لتعرف أي داتاست هي الحالية.

3. احذف داتاست من الذاكرة

  1. افتح Edit ثم Delete dataset(s) from memory.
  2. في Dataset(s) to delete: اكتب 2.
  3. اضغط OK. قائمة Datasets فيها الآن الداتاست 1 فقط.

الحذف من الذاكرة لا يمسّ أي ملف على القرص. والداتاست التي لم تُحفظ أبداً تضيع عند حذفها.

كيف أكتبها بالكود؟

نفس الخطوات في 17 أسطر MATLAB
MATLAB
% Start EEGLAB and load the sample dataset as dataset 1
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
sampleFolder = fullfile(fileparts(which('eeglab')), 'sample_data');
EEG = pop_loadset('filename', 'eeglab_data.set', 'filepath', sampleFolder);
[ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG, 0);

% Remove the two eye channels and store the result as a new dataset
EEG = pop_select(EEG, 'rmchannel', {'EOG1', 'EOG2'});
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
    'setname', 'D1 no EOG', 'gui', 'off');

CURRENTSET                            % 2
[ALLEEG(1).nbchan ALLEEG(2).nbchan]   % 32 30

% Go back to dataset 1
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'retrieve', 1);
EEG.nbchan                            % 32

% Delete dataset 2 from memory (its file, if any, is not touched)
ALLEEG = pop_delset(ALLEEG, 2);
eeglab redraw;
  • pop_newset مع CURRENTSET يخزّن EEG المعدّلة كداتاست جديدة بعد الحالية. ومع 'gui', 'off' لا يفتح نافذة التسمية.
  • 'retrieve', 1 يجعل الداتاست 1 هي الحالية من جديد، كما يفعل اختيارها من قائمة Datasets.

أي قيمة أختار؟

القيم المناسبة حسب هدف تحليلك

الاختيار في النافذة التي تظهر بعد كل خطوة:

الخيارمتى تستخدمه
إنشاء داتاست جديدة (الافتراضي)تريد المقارنة مع النسخة السابقة، أو لست متأكداً من الخطوة بعد.
Overwrite it in memoryالذاكرة محدودة، أو لم تعد تحتاج النسخة السابقة في هذه الجلسة.
Save it as file:تريد الاحتفاظ بهذه النسخة بعد إغلاق MATLAB. أعطها اسماً جديداً حتى لا تكتب فوق الملف الأصلي.

عادة جيدة: سمِّ كل نسخة باسم يقول ماذا فعلت بها، مثل D1 no EOG أو D1 filtered 1Hz. قائمة داتاست كلها Continuous EEG Data سهلة الخلط.

كيف أتأكد أنها نجحت؟

4 فحوص سريعة
  1. بعد الخطوة 1، السطر الأول في النافذة الرئيسية #2: D1 no EOG، و 30 قناة.
  2. قائمة Datasets فيها داتاستان، وعلى الحالية علامة صح.
  3. بعد التنقّل إلى الداتاست 1، تعرض النافذة الرئيسية #1 و 32 قناة.
  4. بعد الحذف، قائمة Datasets فيها الداتاست 1 فقط.

لا شيء في هذا الدرس يُحفظ على القرص، وملف عيّنةsampleقيمة واحدة للإشارة في لحظة زمنية واحدة. يبقى كما هو.

ما الأخطاء التي يقع فيها كثيرون؟

4 أخطاء، وكيف تتجنّبها
  • العمل على الداتاست الخطأ. بعد التنقّل من قائمة Datasets، كل خطوة تنطبق على الداتاست التي اخترتها. تحقّق من رقم # في السطر الأول من النافذة الرئيسية قبل كل خطوة.
  • ظنّ أن التخزين في الذاكرة يحفظ الملف. الداتاست الجديدة تعيش في الذاكرة حتى تحفظها. وتضيع عند إغلاق MATLAB.
  • نسيان العلامة تحت on->remove these. بدونها يُبقي Edit ثم Select data القناتين EOG1 و EOG2 فقط، فتكون في الداتاست الجديدة قناتان بدل 30.
  • تغيير EEG في سكربتscriptملف أوامر MATLAB ينفّذ خطوات المعالجة بالترتيب. ونسيان eeg_store أو pop_newset. التغيير في المتغيّر EEG فقط، وقائمة Datasets لا تعرف عنه.

أين أقرأ أكثر؟

1 مراجع: التوثيق الرسمي أولاً

مكتوب لـ EEGLAB 2026.1 · 2026-10-28

تحتاج مساعدة؟

اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ