نحوه تبدیل داده .dat به .mat با استفاده از تولباکس سایت فیزیونت


سایت فیزیونت یک سایت بسیار خوبی برای بچه‌های مهندسی پزشکی و افرادی که  علاقه‌مند به کار روی سیگنالهای حیاتی هستند می‌باشد. که اکثر این داده‌ها به فرمت .mat جهت پردازش در متلب نیستند و نیاز است که ما در ابتدا با یک روشی این داده‌ها را به فرمت .mat تبدیل کنیم. در این جلسه قرار است یاد بگیریم که چطور می‌توان یک داده .dat رو به فرمت .mat تبدیل کرد. لازم به ذکر است که محتوای داخل این داده‌ای که در ویدیو برای آموزش استفاده کرده‌ایم، سیگنال ECG است. در سیگنال ECG ما به دو تا اطلاعات نیاز داریم. اولی سیگنال نوار قلبی(ECG) جهت انجام پردازش ها است و دومی لیبل تک تک موجهای QRS.

سایت فیزیونت یک سایت بسیار خوبی برای بچه‌های مهندسی پزشکی و افرادی که  علاقه‌مند به کار روی سیگنالهای حیاتی هستند می‌باشد. که اکثر این داده‌ها به فرمت .mat جهت پردازش در متلب نیستند و نیاز است که ما در ابتدا با یک روشی این داده‌ها را به فرمت .mat تبدیل کنیم. در این جلسه قرار است یاد بگیریم که چطور می‌توان یک داده .dat رو به فرمت .mat تبدیل کرد. لازم به ذکر است که محتوای داخل این داده‌ای که در ویدیو برای آموزش استفاده کرده‌ایم، سیگنال ECG است. در سیگنال ECG ما به دو تا اطلاعات نیاز داریم. اولی سیگنال نوار قلبی(ECG) جهت انجام پردازش ها است و دومی لیبل تک تک موجهای QRS.


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


برای تبدیل داده‌های سایت فیزیونت به .mat دو روش وجود دارد:

  • استفاده از محیط گرافیکی کاربران سایت فیزیونت برای تبدیل داده به فرمت .mat

این روش را در یک ویدیوی آموزشی جدا توضیح داده ایم. یکی از ایرادات این محیط این است که بعضی از داده‌هایی که حجشمان بالا هست را به خوبی به .mat تبدیل نمی‌کند. در واقع حجم کمتری از داده(نزدیک 1 دقیقه) را تبدیل می کند! این در حالی است که ما به کل داده نیاز داریم. نکته بعدی اینکه برای خوندن لیبل داده‌ها این رابط گرافیکی مناسب نیست! لذا نیاز است که از روش دوم هم برای خواندن داده و هم برای خواندن لیبل داده استفاده کنیم. و همچنین باید توجه کنیم که این محیط گرافیکی امسال(98) تغییر پیدا کرده و کاربران تنها برای نمایش داده می‌توانند استفاده کنند.

  • استفاده از تولباکس wfdb-app-toolbox-0-10-0 برای خواندن داده ها و لیبل ها

برای استفاده از این تولباکس بهتر است که در ورژن متلب 2016 و 2016 به پایین باشد. البته همانطور که در ویدیو مشاهده می‌کنید من از این تولباکس در ورژن 2017 استفاده کرده‌ام و مشکلی به وجود نیامده است. سایت کلی تولباکس برای ورژن‌های مختلف متلب گذاشته که من موفق نشدم از اونا استفاده کنم. لذا پیشنهاد من اینه که از این تولباکس برای خواندن داده و لیبل استفاده کنید.

برای دانلود تولباکس و کد demo  جهت خواندن داده‌ روی لینک زیر کلیک بکنید.

لینک دانلود


مراحل تبدیل داده با استفاده از تولباکس

1- دانلود تولباکس 

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

2- در مسیر قرار دادن تولباکس (در یک ویدیوی جدا نحوه اضافه کردن یک تولباکس به متلب را در سایت آموزش داده ایم).

تولباکس را در مسیری که قرار کدها نوشته قرار بدین و سپس به صورت زیر را به مسیر متلب اضافه کنید تا متلب هنگام استفاده از توابع داخل تولباکس(rdnn و rdsamp) خطا ندهد.

حال بعد از اضافه کردن تولباکس به مسیر متلب می‌توانید از این تولباکس استفاده کنید.

3- خواندن داده (با استفاده از تابع rdsamp)

برای اینکه بتوان یک داده را با استفاده از این تولباکس خواند لازم است که فایلهای مرتبط با داده را نیز داشت. در کنار داده اصلی، یک سری فایلهای .atr و .header نیز سایت قرار داده است که  باید این فایلها هم کنار داده دانلود شده باشند، در غیر اینصورت هنگام اجرای کد متلب خطا خواهد داد!

کد متلب

filename = [‘16265’]

signal=rdsamp([filename,.dat’  ]);


الان سیگنال خوانده شده است و در پنجره workspace قرار دارد و ما میتوانیم پردازش های خود را شروع کنیم. حال برای اینکه از تبدیل داده به فرمت .mat مطمئن شویم بهتر است بخشی از سیگنال را نمایش دهیم.

(plot(signal(1:1000,1),’b’,’linewidth’ ,1

 

 


4- خواندن لیبل (با استفاده از دستور rdann)

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

الان سیگنال خوانده شده است و در پنجره workspace قرار دارد و ما میتوانیم پردازش های خود را شروع کنیم. حال برای اینکه از تبدیل داده به فرمت .mat مطمئن شویم بهتر است بخشی از سیگنال را نمایش دهیم.

[ann,type,subtype,chan,num,comments]=rdann ([filename,’atr‘, [ ],[ ] );

داخل فایل ann موقعیت پیکهای R مشخص شده است و داخل فایل type لیبل تک تک QRS ها مشخص شده است.

حال میتوانید پردازش‌های خود را روی داده‌ها انجام دهید.

موفق باشید…

 


دیدگاه ها

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

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

code

13 دیدگاه

  1. دانشجو

    سلام. خسته ننباشید
    مطالب عالی هستند
    ممنون از وقتی که گذاشتید

    یک سوال وقتی فایل .mat رو از بانک اطلاعاتی سایت دانلوود میکنیم به درد تولباکس نمیخوره؟
    فایل .dat رو از کجا باید دانلود کنیم؟

    • mohammad_1369

      سلام
      خواهش میکنم
      داده های به فرمت .DAT که مربوط به سیگنالهای حیاتی هستند، را میتوانید از سایت فیزیونت دانلود کنید.
      موفق باشید

  2. هادی

    سلام وقت تون بخیر
    همین مسیر شمارو انجام دادم برای نمونه شما جواب میده ولی برای داده های خودم خطا میده میشه راهنمایی کنید

    • mohammad_1369

      سلام
      وقت بخیر
      یه سری اشکالات جزئی تو کارتون حتما هست و به همین خاطر برای شما شاید به مشکل خورده.
      مشابه سوال شما برای بچه های دیگه هم بوده که حلشون کردیم و در کانال تلگرام مطرح کردیم.
      در کانال تلگرام جوابا قرار داده شده است.
      @onlinebme

  3. homa

    درود و عرض خداقوت من از این toolbox داخل ورژن 2019 استفاده کردم جواب داد خوشبختانه

    • mohammad_1369

      سلام
      ممنون از اطلاع رسانیتون
      بله خوشبختانه در این ورژن هم جواب میده
      موفق باشید

  4. Mehrdad

    با سلام و وقت بخیر
    به جهت اطلاع رسانی خدمت شما، ویدیوی آموزشی مطلب اراِه شده با عنوان نحوه تبدیل داده .dat به .mat با استفاده از تولباکس سایت فیزیونت در صفحه فوق پخش نمی شود؛ در صورت امکان مشکل به وجود آمده را برطرف نماِیید.
    با تشکر از مطالب مفید سایت

    • onlinebme

      سلام
      مشکل برطرف شد
      موفق باشید

  5. nasrin

    خیلی ممنونم بابت توضیحات مبسوطتون- عالی بود

    • onlinebme

      ممنون از لطف شما

  6. فاطمه

    سلام و وقت بخیر
    لطفا یه اموزش در مورد نحوه دسترسی به داده های mimiciii از بانک دیتای فیزیونت قرار بدید.
    https://physionet.org/content/mimiciii/1.4/
    ممنون

  7. پرستش شریفی

    من تقریبا تمام سایت های خارجی رو زیر و رو کردم ولی هیچ کدوم این موضوع رو تا این حد کامل توضیح نداده بودن . خیلی ازتون ممنونم

    • Onlinebme

      خوشحالیم که براتون مفید بوده