Python from scratch - PAL
111 subscribers
84 photos
5 videos
6 files
51 links
Download Telegram
.
5. Mental-Disorder EEG dataset

نوع داده EEG : بالینی

داده‌های EEG از بیماران مبتلا به افسردگی (Depression) و افراد سالم.

هدف این دیتاست بررسی تفاوت‌های الکتروفیزیولوژیک در اختلالات خلقی است.

ویژگی‌ها

۱۲۸ کانال EEG با نرخ نمونه‌برداری بالا

داده‌های resting-state و task

فرمت‌ها: edf و txt

همراه با اطلاعات بالینی آزمودنی‌ها

کاربرد
تحلیل سیگنال EEG در مطالعات بالینی، یادگیری ماشین در تشخیص بیماری.


https://arxiv.org/abs/2002.09283

.
.
6. TUH EEG Corpus (Temple University Hospital)


نوع داده EEG: بالینی بلندمدت

بزرگ‌ترین مجموعه EEG بالینی آزاد جهان. شامل هزاران ساعت ثبت از بیماران مختلف با تشخیص‌های عصبی متنوع است.

ویژگی‌ها

بیش از ۲۰۰۰ بیمار

سیگنال EEG چندساعته تا چندروزه

حاوی برچسب‌های تشخیصی (Seizure, Normal, Sleep, etc)

فرمت استاندارد edf

کاربرد
تشخیص تشنج، تحلیل خواب، EEG بالینی و هوش مصنوعی پزشکی.


https://isip.piconepress.com/projects/tuh_eeg/

.
.
7. CHB-MIT Scalp EEG Database


نوع داده:
داده‌های EEG جمع‌آوری شده از کودکان مبتلا به صرع مقاوم به درمان در بیمارستان کودکان ماساچوست.

تمرکز روی تشخیص و پیش‌بینی تشنج (Seizure detection).

اگر نمی‌خواهید دیتاست سنگین دانلود کنید، این مورد گزینه خوبی است.

ویژگی‌ها

تعداد بیماران: 23 کودک

نوع داده‌ها: سیگنال EEG اسکالپ (روی پوست سر)

تعداد کانال‌ها: 23 کانال EEG

فرمت: فایل‌های .edf

طول هر ثبت: معمولاً چند دقیقه تا چند ساعت

داده‌ها شامل دوره‌های معمولی و دوره‌های تشنج هستند.

کاربرد

پژوهش در زمینه تشخیص و پیش‌بینی تشنج

تحلیل الگوهای غیرطبیعی در EEG بیماران صرعی

توسعه الگوریتم‌های شناسایی تشنج در EEG

https://physionet.org/content/chbmit/1.0.0/

.
.
.
تمرین یک دیتاست EEG واقعی

کتابخانه mne یکی از قوی‌ترین کتابخانه‌ها برای تحلیل EEG, MEG, LFP است و ابزارهای آماده برای فیلتر، زمان–فرکانس، ERP و ... دارد.


چطور یک دیتاست EEG واقعی (MNE Sample Dataset) را در JupyterLab دانلود، بارگذاری و مشاهده کنیم.

.
.
مرحله ۱: نصب کتابخانه‌ی MNE


!pip install mne

.
.
مرحله 2: دانلود دیتاست نمونه MNE

import mne
# Download the sample dataset (only the first time)
data_path = mne.datasets.sample.data_path()
print("Dataset downloaded to:", data_path)

این دیتاست حدود 1.65 گیگابایت حجم دارد و فقط بار اول دانلود می‌شود.
به طور پیش‌فرض در پوشه‌ای مانند مسیر زیر ذخیره می‌شود.

C:\Users\YourName\mne_data

.
.
مرحله 3: بارگذاری فایل EEG نمونه


# Define the path to the raw EEG file
raw_file = data_path / 'MEG' / 'sample' / 'sample_audvis_raw.fif'
# Load the raw data
raw = mne.io.read_raw_fif(raw_file, preload=True)
# Show basic information
raw.info


این فایل شامل سیگنال‌های EEG و MEG واقعی است (از یک فرد که به صدا و تصویر پاسخ داده است).


.
مشاهده نتیجه کد بالا👇
.

مرحله 4: نمایش سیگنال EEG در زمان


# Plot first 5 seconds of EEG
raw.plot(duration=5, n_channels=20, scalings='auto')


هر کانال شامل یک الکترود EEG یا MEG

محور X زمان (ثانیه)

محور Y ولتاژ (µV)

هر چه duration بزرگ‌تر باشد، سیگنال در هر صفحه بیشتر فشرده می‌شود.

بخش n_channels=20 یعنی فقط ۲۰ کانال (electrode) از EEG نمایش داده شود.


.
.

مرحله 5: مشاهده طیف فرکانسی EEG (FFT / PSD)


# Power Spectral Density (frequency domain)
raw.plot_psd(fmax=80, picks='eeg')


این نمودار توان سیگنال را در فرکانس‌های مختلف (0–80 Hz) نشان می‌دهد.

برای مشاهده باندهای فرکانسی مانند Alpha (8–13 Hz)، Beta (13–30 Hz) و Gamma (>30 Hz) مناسب است.


.
.
مرحله 6: فیلتر کردن سیگنال


مثلاً حذف نویز برق ۵۰ هرتز

raw_filtered = raw.copy().notch_filter(freqs=50)
raw_filtered.plot(duration=5, n_channels=20)

بعلاوه بسته به اینکه تمرکز ما روی چه بازه‎‌های فرکانسی است از Low-pass filter هم می‌توانیم استفاده کنیم.

مقدار آن بستگی به هدف ما از آنالیز دارد.

مثلاً اگر نیاز داریم روی باند گاما کار کنیم نباید این فرکانس‌ها فیلتر شوند.

در ERP (event-related potential) تمرکز بر پاسخ‌های کند مغز است مانند 0.1-30 Hz


.
❤1
.
مثالی دیگر

raw_lp = raw.copy().filter(l_freq=None, h_freq=40) # Low-pass filter at 40 Hz
raw_lp.plot(duration=5, n_channels=20)

بخش l_freq=None یعنی فیلتر بالاگذر اعمال نمی‌شود.

بخش h_freq=40 یعنی فقط فرکانس‌های زیر ۴۰ هرتز باقی می‌مانند.

.