معرفی پایگاه داده MIT-BIH Arrhythmia فیزیونت و نحوه خواندن آن در پایتون


سایت فیزیونت یک منبع پایگاه داده رایگان برای تحقیقات پزشکی هست که توسط آزمایشگاه فیزولوژی محاسباتی MIT مدیریت می‌شود. پایگاه داده MIT BIH Arrhythmia برای تحقیقات روی بیماریهای آریتمی قلبی ثبت شده است. این پایگاه داده  شامل 48 ثبت نیم ساعته از سیگنال ECG است که به فرمت .dat قابل دانلود هست. در این پست میخواهیم با این پایگاه داده و چارچوب تحقیقات روی آن آشنا شویم، در انتها هم توضیح می دهیم که چطور می توان این داده را در پایتون خواند.  

پایگاه داده MIT BIH Arrhythmia

این داده شامل 48 ثبت نیم ساعته سیگنال قلبی (ECG) هست که از47 نفر ثبت شده است. فایلها به صورت .dat در سایت قرار گرفته اند که همراه هر فایل یک فایل .atr و یک فایل hea قرار دارد. در اینجا محتوای هر فایل رو توضیح خواهیم داد.


ویدیوی در یوتیوب قرار داده شده است.


فایل .dat در پایگاه داده MIT BIH Arrhythmia

فایل اصلی ما برای تحقیقات است و داخل آن سیگنال ECG دو کاناله برای نیم ساعت قرار گرفته است. فرکانس نمونه‌برداری این سیگنال 360 هست. با در نظر گرفتن این مشخصات (30*60*360) میتوان گفت که داخل هر فایل .dat یک آرایه به اندازه حدودی 648000 *2 وجود دارد.

با داشتن فقط فایل .dat کاری رو نمیتونیم پیش ببریم، باید برچسب فایلها را هم داشته باشیم.

فایل .atr در پایگاه داده MIT BIH Arrhythmia

در داخال این فایل، برچسب تک تک QRS قرار گرفته است. این برچسبها توسط دو پزشک متخصص مشخص شده است. هر علامت معنی خاصی دارد و در واقع مشخص میکند که الگوی QRS چه نوع آریتمی را مشخص میکند که در ادامه با این علامت گذاری ها آشنا خواهیم شد.

فایل .hea در پایگاه داده MIT BIH Arrhythmia

در این فایلها اطلاعات اضافی مرتبط با هر ثبت از قبلی اسم ثبت، تعداد سمپلها و اینجور موارد هست. که ما به این اطلاعات خیلی نیازی نداریم. و در تحقیقات محتوای فایل .dat  و .atr برای ما اهمیت دارند.

هدف از ثبت پایگاه داده MIT BIH Arrhythmia

پایگاه داده MIT BIH Arrhythmia با هدف تحقیقات روی تشخیص آریتمی قلبی ثبت شده است. در آریتمی های قلبی، QRS میتواند الگوی زمانی متفاوتی همانند شکل زیر داشته باشد.

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

نحوه علامت گذاری QRS در پایگاه داده MIT BIH Arrhythmia

تمام QRSهای هر فایل توسط دو پزشک متخصص لیبل گذاری شده اند و میتوان به طور کلی این ها در 5 دسته طبقه بندی کرد. مقالات برای ارزیابی رویکردهای خود، مسئله را 5 کلاسه در نظر میگیرند:

  • (N): ضربان آریتمی یعنی ضربان های غیر نابجا (non-ectopic beats)
  • (S): ضربانات نابجای فوق بطنی (supraventricular ectopic beats)
  • (V): ضربانات نابجای بطنی ( ventricular ectopic beats)
  • (F): ضربانات تلفیقی (fusion beats)
  • (U): ضربانات طبقه بندی نشده (unclassifiable and paced beats)

هدف در این تحقیقات این است که یک سیستمی طراحی بکنیم با پردازش سیگنال قلبی (ECG) نوع آریتمی قلبی فرد را تشیخص دهد. یعنی بتواند تمام QRS های سیگنال ECG را برچسب گذاری کند. یعنی مشخص کند که در یک داده مثلا یک ساعته، چه تعداد از QRS ها الگوی نوع N، چه تعداد S, V, F یا U را دارد.

خوبی این نوع سیستم اینه که در سریعترین زمان ممکن این اطلاعات را در اختیار پزشک قرار میدهید و فرایند تشخیص نوع بیماری قلبی فرد تسریع و البته دقیقتر می‌کند.

حالا برای طراحی چنین سیستمی باید چیکار کنیم؟ اول باید از هر گروه تعدادی QRS جدا کنیم و با کمکشون مدل را آموزش دهیم تا بتواند هر QRS را به درستی در یکی از 5 گروه قرار دهد.

البته قبل از آن یک مرحله اولیه برای تشخیص موقعیت QRS طراحی کنیم که از سیگنال ECG فرد موقعیت QRS را تشخیص داده و آنها را جدا کند. حال بعد از اینکه QRS هارا جدا کرد و نوع هر کدام را نیز تشخیص دهد.

خب برای شروع ما لازم داریم براساس برچسبهای مشخص شده توسط پزشکان داده آموزش را آماده کنیم. اگر پایگاه داده را بررسی کنید متوجه میشوید که علامتها لزوما N-U نیست و کلی علامت وجود دارد! تکلیف چیه!؟ در زیر توضیح میدهیم که هر علامت در چه دسته ای قرار میگیرد و موقع جدا کردن QRS آنها را باید در چه دسته ای قرار دهیم.

علامت مخصوص برای ضربان های نرمال

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

علامت مخصوص برای ضربان های فوق بطنی

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

علامت مخصوص برای ضربان های بطنی

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

علامت مخصوص برای ضربان های فیوژن

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

علامت مخصوص برای ضربان های ناشناخته

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

مطالعه علامتها در فیزیونت

نحوه خواندن فایل .dat فیزیونت در پایتون

ما قبلا در یک پستی نحوه خواندن فایل .dat در متلب را توضیح داده ایم، در این بخش نحوه خواندن این نوع داده ها در پایتون رو توضیح میدهیم.


ویدیو در یوتیوب قرار داده شده است.


مرحله اول: نصب کتابخانه wfdb

برای خواندن پایگاه داده MIT BIH Arrhythmia در پایتون لازم است که در ابتدا کتابخانه wfdb را نصب کنیم. برای اینکار کد زیر را در بخش command prompt اجرا میکنیم.

Python

pip install wfdb
or
conda install -c conda-forge wfdb

مرحله دوم: خواندن فایل .dat در پایتون

حال بعد از نصب کتابخانه wfdb میتونیم با دستور زیر فایل .dat را در پایتون بخوانیم.

Python

Filename= 'MIT-BIH-Arrhythmia/100'
signals, fields = wfdb.rdsamp(Filename)

مسیر و اسم فایل .dat را مشخص میکنیم و سیگنال را load میکنیم. داخل متغیر signals سیگنال ECG قرار می‌گیرد و در داخل متغیر fields هم اطلاعاتی از قبلی فرکانس نمونه برداری، طول سیگنال، تعداد کانالها، واحد ثبت شده سیگنال ECG و غیره قرار می‌گیرد.

حال به سیگنال ECG در محیط پایتون دسترسی داریم و میتوانیم عملیات لازم رو روی آن انجام دهیم. در زیر ما سیگنال ECG کانال اول برای 5 ثانیه را نشان داده ایم.

Python

t= np.linspace(0,10,360*5)
plt.plot(t,signals[:360*5,0],linewidth=1)
plt.axis([0,10,-0.7,1])
plt.show()

معرفی پایگاه داده MIT BIH Arrhythmia فیزیونت و نحوه خواندن داده .dat در پایتون

مرحله سوم: خواندن فایل .atr در پایتون

بعد از خواندن فایل، برای ساخت داده آموزشی، لازم است که در ابتدا لیبل هر کدام از QRS را داشته باشیم. برای اینکار لازم است که فایل atr را همانند زیر بخوانیم.

Python

annotation = wfdb.rdann('MIT-BIH-Arrhythmia/100', 'atr')
fs=annotation.fs

داخل فایل annotation خونده شده، موقعیت و لیبل هر کدام از QRS ها قرار دارد. طبق کد زیر میتوانیم به این لیبلها و موقعیتها دسترسی داشته باشیم.

Python

peaks_position = annotation.sample
peaks_type = annotation.symbol

خب دیگه تمومه! بستر برای تحقیقات آماده شده و از اینجا به بعد متونید تحقیقاتتون رو پیش ببرید.

موفق باشید…

در دوره تخصصی پردازش سیگنال قلبی، یکی از پایگاه داده هایی که برای پروژه ها استفاده می‌کنیم، پایگاه داده MIT BIH Arrhythmia Database است.


دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code