رسم موقعیت مکانی الکترودهای سیگنال EEG با استفاده از پکیج MNE پایتون
- دسته:اخبار علمی
- هما کاشفی
در این مقاله توضیح میدهیم که چطور میتوان با استفاده از پکیج MNE پایتون، موقعیت مکانی حسگرها را خواند و رسم کرد و پکیچ MNE چطور موقعیت مکانی حسگرها را تشخیص میدهد.
ابتدا مثل همیشه لازم است که با ایمپورت کردن ماژولهای موردنیاز خود آغاز کنیم:
Python
from pathlib import Path import matplotlib.pyplot as plt import numpy as np import mne
معرفی دو متد Montages و Layouts در پکیج MNE پایتون برای رسم موقعیت مکانی الکترودها
Montages حاوی موقعیتهای حسگر در فضای سه بعدی (xو y و z بر حسب متر) است که میتوان آن را به دادههای EEG/MEG موجود اختصاص داد. با مشخص کردن موقعیت مکانی حسگرها نسبت به مغز، Montages نقش بسیار مهمی در محاسبه راهحل پیشرو و برآوردهای معکوس دارد.
در مقابل، Layouts بازنماییهای ایدهآل دو بعدی از موقعیتهای حسگر هستند. آنها عمدتاً برای نمودارهای فرعی حسگر جداگانه در topoplot استفاده میشوند تا آرایش نسبی و تقریبی حسگرها را نمایش دهند.
توجه: اگر منحصراً با دادههای EEG کار میکنید، از Montages استفاده کنید نه Layouts. مونتاژهای ایدهآل اغلب مونتاژ تمپلیت نامیده میشوند.
کار با Builtin Montages در پکیچ MNE پایتون
مختصات سه بعدی حسگرهای سیگنال MEG در ثبتهای خام و اولیه از سیستمهای MEG گنجانده شده است. آنها به طور خودگار در مشخصهی info دادهی خام پس از بارگذاری، ذخیره میشوند. موقعیت مکانی الکترودهای EEG به دلیل تفاوت در شکل سر، بسیار متفاوتتر هستند. مونتاژهای ایدهآل (Template montages) برای بسیاری از سیستمهای EEG در پکیج MNE-Python گنجانده شدهاند و میتوان با دستور ()mne.channels.get_builtin_montages آنها را مشاهده کرد.
Python
builtin_montages = mne.channels.get_builtin_montages(descriptions=True) for montage_name, montage_description in builtin_montages: print(f"{montage_name}: {montage_description}") output: standard_1005: Electrodes are named and positioned according to the international 10-05 system (343+3 locations) standard_1020: Electrodes are named and positioned according to the international 10-20 system (94+3 locations) standard_alphabetic: Electrodes are named with LETTER-NUMBER combinations (A1, B2, F4, …) (65+3 locations) standard_postfixed: Electrodes are named according to the international 10-20 system using postfixes for intermediate positions (100+3 locations) standard_prefixed: Electrodes are named according to the international 10-20 system using prefixes for intermediate positions (74+3 locations) standard_primed: Electrodes are named according to the international 10-20 system using prime marks (' and '') for intermediate positions (100+3 locations) biosemi16: BioSemi cap with 16 electrodes (16+3 locations) biosemi32: BioSemi cap with 32 electrodes (32+3 locations) biosemi64: BioSemi cap with 64 electrodes (64+3 locations) biosemi128: BioSemi cap with 128 electrodes (128+3 locations) biosemi160: BioSemi cap with 160 electrodes (160+3 locations) biosemi256: BioSemi cap with 256 electrodes (256+3 locations) easycap-M1: EasyCap with 10-05 electrode names (74 locations) easycap-M10: EasyCap with numbered electrodes (61 locations) easycap-M43: EasyCap with numbered electrodes (64 locations) EGI_256: Geodesic Sensor Net (256 locations) GSN-HydroCel-32: HydroCel Geodesic Sensor Net and Cz (33+3 locations) GSN-HydroCel-64_1.0: HydroCel Geodesic Sensor Net (64+3 locations) GSN-HydroCel-65_1.0: HydroCel Geodesic Sensor Net and Cz (65+3 locations) GSN-HydroCel-128: HydroCel Geodesic Sensor Net (128+3 locations) GSN-HydroCel-129: HydroCel Geodesic Sensor Net and Cz (129+3 locations) GSN-HydroCel-256: HydroCel Geodesic Sensor Net (256+3 locations) GSN-HydroCel-257: HydroCel Geodesic Sensor Net and Cz (257+3 locations) mgh60: The (older) 60-channel cap used at MGH (60+3 locations) mgh70: The (newer) 70-channel BrainVision cap used at MGH (70+3 locations) artinis-octamon: Artinis OctaMon fNIRS (8 sources, 2 detectors) artinis-brite23: Artinis Brite23 fNIRS (11 sources, 7 detectors) brainproducts-RNP-BA-128: Brain Products with 10-10 electrode names (128 channels)
این built-in EEG montages را میتوان با دستور mne.channels.make_standard_montage بارگذاری کرد:
Python
easycap_montage = mne.channels.make_standard_montage("easycap-M1") print(easycap_montage) Output: <DigMontage | 0 extras (headshape), 0 HPIs, 3 fiducials, 74 channels>
آبجکت Montage یک متد plot برای رسم موقعیت مکانی حسگرها در فضای دو بعدی یا سه بعدی دارد:
Python
easycap_montage.plot() # 2D fig = easycap_montage.plot(kind="3d", show=False) # 3D fig = fig.gca().view_init(azim=70, elev=15) # set view angle for tutorial
یک montage را پس از بارگذاری با استفاده از متد set_montage میتوان به داده اعمال کرد برای مثال raw.set_montage(), epochs.set_montage() یا evoked.set_montage(). این متد تنها با دادههایی کار میکند که نامهای کانال EEG آنها مرتبط با نامهای کانال در montage است.
با استفاده از متد ()plot_sensors میتوانید موقعیتهای مکانی حسگرها را رسم کنید.
Python
ssvep_folder = mne.datasets.ssvep.data_path() ssvep_data_raw_path = ( ssvep_folder / "sub-02" / "ses-01" / "eeg" / "sub-02_ses-01_task-ssvep_eeg.vhdr" ) ssvep_raw = mne.io.read_raw_brainvision(ssvep_data_raw_path, verbose=False) # Use the preloaded montage ssvep_raw.set_montage(easycap_montage) fig = ssvep_raw.plot_sensors(show_names=True) # Apply a template montage directly, without preloading ssvep_raw.set_montage("easycap-M1") fig = ssvep_raw.plot_sensors(show_names=True)
دیدگاه ها