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

بيانات BIDS و OpenNeuro

تبدأ من: sub-002_task-FaceRecognition_eeg.set (D4) · لا شيء: البيانات كما نزّلتها.تنزيل البيانات (يفتح في نافذة جديدة)
سكربت الوصول لهذه الحالة
MATLAB
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
% Folder for the BIDS dataset (change it)
bidsFolder = 'C:\Users\me\Documents\eeg-course\ds002718';
baseUrl = 'https://s3.amazonaws.com/openneuro.org/ds002718/';
files = {'dataset_description.json', 'README', 'task-FaceRecognition_events.json', ...
    'sub-002/eeg/sub-002_task-FaceRecognition_eeg.set', ...
    'sub-002/eeg/sub-002_task-FaceRecognition_eeg.json', ...
    'sub-002/eeg/sub-002_task-FaceRecognition_channels.tsv', ...
    'sub-002/eeg/sub-002_task-FaceRecognition_electrodes.tsv', ...
    'sub-002/eeg/sub-002_task-FaceRecognition_events.tsv'};
for iFile = 1:numel(files)
    target = fullfile(bidsFolder, files{iFile});
    if ~exist(fileparts(target), 'dir'), mkdir(fileparts(target)); end
    websave(target, [baseUrl files{iFile}]);
end

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

كل مختبر يسمّي ملفاته ويرتّبها بطريقته. أما BIDSمعيار موحّد لتسمية ملفات البيانات العصبية وتنظيمها في مجلدات. (Brain Imaging Data Structure) فمعيار مشترك: أسماء مجلدات ثابتة، وأسماء ملفات ثابتة، وملفات جانبية تصف التسجيل. داتاستdatasetملف بيانات EEG واحد محمّل في EEGLAB مع معلوماته. (dataset) المكتوبة بـ BIDS تقرؤها أي أداة تعرف المعيار، دون أن تسأل المختبر كيف حفظ بياناته.

قبل وبعد

شجرة مجلد ds002718: في الجذر dataset_description.json و README و task-FaceRecognition_events.json، ثم sub-002 ثم eeg وفيه خمسة ملفات: ملف الإشارة set بحوالي 235 MB، و eeg.json بتفاصيل التسجيل، و channels.tsv بأسماء 74 قناة، و electrodes.tsv بمواقع الأقطاب، و events.tsv بـ 1479 حدثاً.

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

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

السبب بالتفصيل، والمصطلحات التي تحتاجها

و OpenNeuro موقع مجاني يستضيف مئات الداتاست العامة بصيغة BIDS. وفائدة BIDS لمستخدم EEGLAB أنها توفّر خطوتين عملتهما بيدك في هذه المحطة: حدثeventعلامة في التسجيل تحدد لحظة شيء مهم، مثل ظهور مثير. (event) ومواقع قطبelectrodeالقطعة المعدنية التي توضع على الرأس لالتقاط الإشارة. (electrode) تأتي جاهزة في ملفاتها.

نستخدم الداتاست ds002718 (Wakeman و Henson): شاهد مشاركparticipantالشخص الذي سُجّلت بياناته في التجربة. وجوهاً مشهورة، ووجوهاً غير مألوفة، وصوراً مبعثرة الأجزاء. الداتاست كاملة حوالي 4 جيجابايت، لذلك ننزّل مشاركاً واحداً فقط، sub-002، بحوالي 235 ميغابايت.

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

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

1. نزّل مشاركاً واحداً

  1. افتح صفحة الداتاست: ds002718 على OpenNeuro.
  2. من قائمةmenuمجموعة أوامر تظهر عند الضغط على اسمها في أعلى النافذة. الملفات نزّل هذه الملفات، واحفظها على جهازك بنفس ترتيب المجلدات، داخل مجلد اسمه ds002718:
    • في المستوى الأعلى: dataset_description.json و README و task-FaceRecognition_events.json.
    • في sub-002/eeg/: الملفات الخمسة التي تبدأ بـ sub-002_task-FaceRecognition_.
  3. لا تحتاج مجلد anat (صور الرنين المغناطيسي) في هذا الدرس.

سكربتscriptملف أوامر MATLAB ينفّذ خطوات المعالجة بالترتيب. في صندوق نقطة البداية ينزّل نفس الملفات دفعة واحدة.

2. انظر في الملفات الجانبية

افتح sub-002_task-FaceRecognition_events.tsv في أي محرّر نصوص أو جدول بيانات. كل سطر حدث، وفيه أعمدة مثل onset (بالثواني)، و trial_type (مثلاً famous_new أو right_sym)، و value (رمز رقمي).

افتح sub-002_task-FaceRecognition_channels.tsv. أسماء قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. (channel) من EEG001 إلى EEG074، لا أسماء 10-10. وهذا مهم في الخطوة التالية.

3. استورد المشارك

  1. افتح File ثم Import data ثم Using EEGLAB functions and plugins ثم From BIDS folder structure. (ونفس الأمر في File ثم BIDS tools ثم Import BIDS folder to STUDY.)
  2. اختر مجلد ds002718 واضغط Select Folder (في macOS: Open). تظهر نافذة Import BIDS data — pop_importbids().
  3. أبقِ خانةfield (in a dialog)مكان في نافذة نكتب فيه قيمة أو نختارها. Use BIDS electrode.tsv files (when present) for channel locations; off: look up locations using channel labels مفعّلة. الأسماء EEG001 وأخواتها غير قياسية، فالبحث بالاسم لن يجد شيئاً.
  4. أبقِ خانة Use BIDS event.tsv files for events and use the following BIDS field for event type مفعّلة، واختر من القائمة تحتها trial_type بدل value.
  5. خانة Study output folder تعرض مساراً ينتهي بـ ds002718/derivatives/eeglab. أبقِها. يكتب EEGLAB ملفاته هناك ولا يمسّ الملفات التي نزّلتها.
  6. اضغط OK. يأخذ الاستيراد دقيقة أو دقيقتين.

في EEGLAB 2026.1 ينشئ هذا الأمر STUDYبنية في EEGLAB تجمع داتاست عدة مشاركين لتحليلها معاً. دائماً، حتى لمشارك واحد. تعرض النافذة الرئيسية الـ STUDY، وقائمة Datasets فيها الداتاست 1. اخترها من قائمة Datasets لترى تفاصيلها: 74 قناة، و 250 هرتز، و 1479 حدثاً. ستتعلّم الـ STUDY في المحطة 8.

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

نفس الخطوات في 16 أسطر MATLAB
MATLAB
% Start EEGLAB (EEG-BIDS ships with EEGLAB 2026.1)
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;

% Folder where you downloaded ds002718 with sub-002 (change it)
bidsFolder = 'C:\Users\me\Documents\eeg-course\ds002718';

% Import: events from the trial_type column, positions from electrodes.tsv
[STUDY, ALLEEG] = pop_importbids(bidsFolder, ...
    'eventtype', 'trial_type', 'bidsevent', 'on', 'bidschanloc', 'on', ...
    'outputdir', fullfile(bidsFolder, 'derivatives', 'eeglab'));

% Make the imported dataset the current one and show it
CURRENTSTUDY = 1; EEG = ALLEEG; CURRENTSET = 1:numel(EEG);
eeglab redraw;

% Check what arrived
EEG(1).nbchan                % 74
EEG(1).srate                 % 250
numel(EEG(1).event)          % 1479
eeg_eventtypes(EEG(1))       % right_sym 500, famous_new 150, ...
  • 'eventtype', 'trial_type' هو نفس الاختيار من القائمة في النافذة. وبدونه يستخدم EEGLAB عمود value، فتصبح أنواع الأحداث أرقاماً مثل 13 و 4096.
  • الملف المستورد يُكتب في derivatives/eeglab/sub-002/eeg/، وملف الـ STUDY في derivatives/eeglab/ds002718.study. الملف يأخذ اسمه من مجلد BIDS، أما الـ STUDY نفسها فبلا اسم (STUDY.name فارغ) ما لم تعطها اسماً.

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

القيم المناسبة حسب هدف تحليلك
الخياراختيارنالماذا
عمود نوع الحدثevent typeاسم أو رقم يميّز نوع الحدث، مثل "square".trial_typeأسماء مقروءة (famous_new و scrambled_new و right_sym). عمود value فيه رموز رقمية فقط.
Use BIDS electrode.tsv filesمفعّلةأسماء القنوات EEG001… غير قياسية، فالمواقع يجب أن تأتي من الملف. ألغِها فقط إذا كانت الأسماء قياسية ولا يوجد ملف مواقع.
Study output folderderivatives/eeglab (الافتراضي)BIDS يضع الملفات المعالَجة في derivatives، بعيداً عن البيانات الخام.
Import only the following participant indicesغير مفعّلةنزّلنا مشاركاً واحداً فقط. وفي داتاست كاملة استخدمها لتستورد بضعة مشاركين أولاً.

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

4 فحوص سريعة
  1. قائمة Datasets فيها الداتاست 1، واختيارها يعرض 74 قناة، و 250 هرتز، و 1479 حدثاً.
  2. eeg_eventtypes(EEG(1)) يعرض أسماء مثل right_sym و famous_new و boundary، لا أرقاماً.
  3. سطر Channel locations يعرض Yes، و Plot ثم Channel locations ثم By name يعرض الأقطاب على الرأس. وترى أيضاً نقاطاً لقنوات العين القلبheart (ECG)نبض القلب الكهربائي الذي قد يظهر في EEG كقمم منتظمة.، لأن الملف يعطيها مواقع.
  4. في المجلد ds002718/derivatives/eeglab/sub-002/eeg/ ملف .set المستورد.

انتهينا من BIDS. أغلق الـ STUDY من File ثم Clear study / Clear all قبل الدرس التالي. ومن المحطة القادمة نعمل على eeglab_data.set التي تأتي مع EEGLAB، لأنها صغيرة ومطابقة للتوثيق.

مصدر البيانات

البيانات: Wakeman, D. G., & Henson, R. N. (2015). A multi-subject, multi-modal human neuroimaging dataset. Scientific Data, 2, 150001. https://doi.org/10.1038/sdata.2015.1. نسخة EEGLAB على OpenNeuro: ds002718 v1.0.5، DOI 10.18112/openneuro.ds002718.v1.0.5. الرخصة: CC0.

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

5 أخطاء، وكيف تتجنّبها
  • اختيار مجلد sub-002 أو eeg. اختر المجلد الأعلى للداتاست، وهو الذي فيه dataset_description.json.
  • تنزيل ملف .set وحده. بدون events.tsv و electrodes.tsv تغيب الملفات الجانبية التي تجعل BIDS مفيدة. حافظ على ترتيب المجلدات كما في OpenNeuro.
  • ظهور أنواع الأحداث أرقاماً. أبقيت value في قائمة عمود الأحداث. أعد الاستيراد واختر trial_type.
  • إلغاء خانة electrode.tsv. البحث بالاسم لا يجد موقعاً لـ EEG001، فتبقى القنوات بلا مواقع.
  • البحث عن 70 قناة. في التسجيل 70 قناة EEG، ومعها HEOG و VEOG وقناتا EKG، فيكون EEG.nbchan = 74.

كيف أكتبها في ورقتي؟

قالب Methods: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته

قالب: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته.

EEG data in BIDS format (OpenNeuro ds002718, participant sub-002) were imported with pop_importbids (EEG-BIDS plugin 10.5, EEGLAB 2026.1), using the trial_type column for event types and electrode positions from electrodes.tsv.

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

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

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

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

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