{ "cells": [ { "cell_type": "markdown", "id": "5d037743", "metadata": { "id": "5d037743" }, "source": [ "# Exploring MIMIC-III" ] }, { "cell_type": "markdown", "id": "fbae8e9b", "metadata": { "id": "fbae8e9b" }, "source": [ "Let's begin by exploring data in the MIMIC-III Waveform Database.\n", "\n", "Our **objectives** are to:\n", "- Become familiar with the file structure\n", "- Find out which signals are present in selected records and segments, and how long the signals last.\n", "- Search for records that contain signals of interest.\n", "- Load waveforms using the WFDB toolbox.\n", "- Plot one minute of signals from a segment of data\n", "- Look more closely at the shape of the PPG pulse waves" ] }, { "cell_type": "markdown", "id": "0b240726", "metadata": { "id": "0b240726" }, "source": [ "
\n", "

Resource: You can find out more about the MIMIC-III Waveform Database here.

\n", "
" ] }, { "cell_type": "markdown", "id": "28b8e213", "metadata": { "id": "28b8e213" }, "source": [ "---\n", "## Setup" ] }, { "cell_type": "markdown", "id": "5dac032e", "metadata": { "id": "5dac032e" }, "source": [ "### Specify the required Python packages\n", "We'll import the following:\n", "- _sys_: an essential python package\n", "- _pathlib_ (well a particular function from _pathlib_, called _Path_)" ] }, { "cell_type": "code", "execution_count": 188, "id": "ce3cdfde", "metadata": { "id": "ce3cdfde" }, "outputs": [], "source": [ "import sys\n", "from pathlib import Path" ] }, { "cell_type": "markdown", "id": "9976c5e4", "metadata": { "id": "9976c5e4" }, "source": [ "### Specify a particular version of the WFDB Toolbox" ] }, { "cell_type": "markdown", "id": "6533154b", "metadata": { "id": "6533154b" }, "source": [ "- _wfdb_: For this workshop we will be using version 4 of the WaveForm DataBase (WFDB) Toolbox package. The package contains tools for processing waveform data such as those found in MIMIC:" ] }, { "cell_type": "code", "execution_count": null, "id": "5fdfa989", "metadata": { "id": "5fdfa989" }, "outputs": [], "source": [ "!pip install wfdb==4.1.0\n", "import wfdb" ] }, { "cell_type": "markdown", "id": "e11ce5b6", "metadata": { "id": "e11ce5b6" }, "source": [ "
\n", "

Resource: You can find out more about the WFDB package here.

\n", "
" ] }, { "cell_type": "markdown", "id": "d492e49f", "metadata": { "id": "d492e49f" }, "source": [ "Now that we have imported these packages (_i.e._ toolboxes) we have a set of tools (functions) ready to use." ] }, { "cell_type": "markdown", "id": "e7d38297", "metadata": { "id": "e7d38297" }, "source": [ "### Specify the name of the MIMIC Waveform Database" ] }, { "cell_type": "markdown", "id": "68491718", "metadata": { "id": "68491718" }, "source": [ "- Specify the name of the MIMIC-III Matched Waveform Database on Physionet, which comes from the URL: https://physionet.org/content/mimic3wdb-matched/1.0/" ] }, { "cell_type": "code", "execution_count": 190, "id": "982b8154", "metadata": { "id": "982b8154" }, "outputs": [], "source": [ "database_name = 'mimic3wdb-matched/1.0'" ] }, { "cell_type": "markdown", "id": "e49196a6", "metadata": { "id": "e49196a6" }, "source": [ "---\n", "## Identify the records in the database" ] }, { "cell_type": "markdown", "id": "b476f9b7", "metadata": { "id": "b476f9b7" }, "source": [ "### Get a list of records\n", "\n", "- Use the [`get_record_list`](https://wfdb.readthedocs.io/en/latest/io.html#wfdb.io.get_record_list) function from the WFDB toolbox to get a list of records in the database." ] }, { "cell_type": "code", "execution_count": 191, "id": "d91aa6a7", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "d91aa6a7", "outputId": "db8e3169-76ac-4bdd-bbaa-91cf626c1a6b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done: Loaded list of 10282 ICU stays for 'mimic3wdb-matched/1.0' database\n" ] } ], "source": [ "icustay_records = wfdb.get_record_list(database_name)\n", "print(\"Done: Loaded list of {} ICU stays for '{}' database\".format(len(icustay_records), database_name))" ] }, { "cell_type": "markdown", "id": "143bd9e6", "metadata": {}, "source": [ "- Display the first few records" ] }, { "cell_type": "code", "execution_count": 192, "id": "66545c1d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "First five ICU stays: ['p00/p000020/', 'p00/p000030/', 'p00/p000033/', 'p00/p000052/', 'p00/p000079/']\n" ] } ], "source": [ "print(\"First five ICU stays: {}\".format(icustay_records[0:5]))" ] }, { "cell_type": "markdown", "id": "4eecea37", "metadata": {}, "source": [ "Note the formatting of these records: each starts with an intermediate directory (\"p00\" in this case), followed by a record directory." ] }, { "cell_type": "markdown", "id": "7f9bb7cc", "metadata": {}, "source": [ "
Q: Can you print the names of the last five ICU stays?
Hint: in Python, the last five elements can be specified using '[-5:]'
" ] }, { "cell_type": "code", "execution_count": 193, "id": "0RzQmqjiQ9LD", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0RzQmqjiQ9LD", "outputId": "31eb6067-de92-4424-b32b-f292623215a5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reached maximum required number of records.\n", "Loaded 106 records from the 'mimic3wdb-matched/1.0' database.\n" ] } ], "source": [ "# iterate the subjects to get a list of records\n", "max_records_to_load = 100\n", "records = []\n", "for subject in icustay_records:\n", " # stop if we've loaded enough records\n", " if len(records) >= max_records_to_load:\n", " print(\"Reached maximum required number of records.\")\n", " break\n", " studies = wfdb.get_record_list(f'{database_name}/{subject}')\n", " for study in studies:\n", " records.append(Path(f'{subject}{study}'))\n", "\n", "print(f\"Loaded {len(records)} records from the '{database_name}' database.\")" ] }, { "cell_type": "markdown", "id": "fc82d67e", "metadata": { "id": "fc82d67e" }, "source": [ "### Look at the records" ] }, { "cell_type": "markdown", "id": "29552f5a", "metadata": { "id": "29552f5a" }, "source": [ "- Display the first few records" ] }, { "cell_type": "code", "execution_count": 194, "id": "bb5745a7", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bb5745a7", "outputId": "8fe32e59-c542-4a40-bd06-0c04fdcfbbfe" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "First five records: \n", " - p00/p000020/3544749_0001\n", " - p00/p000020/3544749_0002\n", " - p00/p000020/3544749_0003\n", " - p00/p000020/3544749_0004\n", " - p00/p000020/3544749_0005\n", "\n", "Note the formatting of these records:\n", " - intermediate directory ('p00' in this case)\n", " - icu stay identifier (e.g. 'p000020')\n", " - segment identifier (e.g. '3544749_0001'), consisting of the record (e.g. '3544749'), followed by the segment number (e.g. '0001').\n", " \n" ] } ], "source": [ "# format and print first five records\n", "first_five_records = [str(x) for x in records[2:7]] # ignored the first two which are numerics\n", "first_five_records = \"\\n - \".join(first_five_records)\n", "print(f\"First five records: \\n - {first_five_records}\")\n", "\n", "print(\"\"\"\n", "Note the formatting of these records:\n", " - intermediate directory ('p00' in this case)\n", " - icu stay identifier (e.g. 'p000020')\n", " - segment identifier (e.g. '3544749_0001'), consisting of the record (e.g. '3544749'), followed by the segment number (e.g. '0001').\n", " \"\"\")" ] }, { "cell_type": "markdown", "id": "b56c29d5", "metadata": { "id": "b56c29d5" }, "source": [ "
\n", "

Q: Can you print the names of the last five records?
Hint: in Python, the last five elements can be specified using '[-5:]'

\n", "
" ] }, { "cell_type": "markdown", "id": "d2a80895", "metadata": { "id": "d2a80895" }, "source": [ "## Identify records suitable for analysis" ] }, { "cell_type": "markdown", "id": "1a3218d3", "metadata": { "id": "1a3218d3" }, "source": [ "- The signals and their durations vary from one record (and segment) to the next. \n", "- Since most studies require specific types of signals (e.g. blood pressure and photoplethysmography signals), we need to be able to identify which records (or segments) contain the required signals and duration." ] }, { "cell_type": "markdown", "id": "b02c0b4e", "metadata": { "id": "b02c0b4e" }, "source": [ "### Setup" ] }, { "cell_type": "code", "execution_count": 195, "id": "5bb47556", "metadata": { "id": "5bb47556" }, "outputs": [], "source": [ "import pandas as pd\n", "from pprint import pprint" ] }, { "cell_type": "code", "execution_count": 196, "id": "95181681", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "95181681", "outputId": "544c69db-59d9-432c-ee6c-10e1b0f54318" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Earlier, we loaded 10282 records from the 'mimic3wdb-matched/1.0' database.\n" ] } ], "source": [ "print(f\"Earlier, we loaded {len(icustay_records)} records from the '{database_name}' database.\")" ] }, { "cell_type": "markdown", "id": "7f2b5955", "metadata": { "id": "7f2b5955" }, "source": [ "### Specify requirements" ] }, { "cell_type": "markdown", "id": "83f8611c", "metadata": { "id": "83f8611c" }, "source": [ "- Required signals" ] }, { "cell_type": "code", "execution_count": 197, "id": "3d1505ab", "metadata": { "id": "3d1505ab" }, "outputs": [], "source": [ "required_sigs = ['ABP', 'PLETH', 'II']" ] }, { "cell_type": "markdown", "id": "d9493d73", "metadata": {}, "source": [ "_Definitions:_\n", "- ABP - arterial blood presure (i.e. blood pressure signal)\n", "- PLETH - photoplethysmogram (PPG) signal\n", "- II - lead II electrocardiogram (ECG) signal" ] }, { "cell_type": "markdown", "id": "03920810", "metadata": { "id": "03920810" }, "source": [ "- Required duration" ] }, { "cell_type": "code", "execution_count": 198, "id": "568a93c1", "metadata": { "id": "568a93c1" }, "outputs": [], "source": [ "# convert from minutes to seconds\n", "req_seg_duration = 10*60 " ] }, { "cell_type": "markdown", "id": "d49187cd", "metadata": { "id": "d49187cd" }, "source": [ "### Find out how many records meet the requirements" ] }, { "cell_type": "markdown", "id": "65f2cdce", "metadata": { "id": "65f2cdce" }, "source": [ "_NB: This step may take a while. The results are copied below to save running it yourself._" ] }, { "cell_type": "code", "execution_count": null, "id": "015b47d3", "metadata": { "id": "015b47d3" }, "outputs": [], "source": [ "import urllib.request # to read online text file\n", "\n", "no_recs_req = 100\n", "matching_recs = {'dir':[], 'seg_name':[], 'length':[]}\n", "\n", "for icustay_record in icustay_records:\n", " \n", " if len(matching_recs['seg_name']) == no_recs_req:\n", " break\n", " \n", " print('Record: {}'.format(icustay_record)) #, end=\"\", flush=True)\n", " icustay_record_dir = f'{database_name}/{icustay_record}'\n", " temp = icustay_record.split(\"/\")\n", " icustay_record_name = temp[1]\n", " \n", " print(' Identifying segments: ', end=\"\", flush=True) \n", " target_url = \"https://physionet.org/files/\" + icustay_record_dir + \"RECORDS\"\n", " data = urllib.request.urlopen(target_url)\n", " \n", " segs = []\n", " for line in data:\n", " curr_line = line.decode(\"utf-8\") \n", " if \"p\" not in curr_line:\n", " temp = curr_line.split(\"\\n\")\n", " segs.append(temp[0])\n", " \n", " # check to see whether there are any waveform files (as opposed to just numerics)\n", " if len(segs) == 0:\n", " print('(no waveforms)')\n", " continue\n", " \n", " # check to see whether the required signals are present in this recording\n", " rec_header = segs[0].split(\"_\")[0] + \"_layout\"\n", " rec_metadata = wfdb.rdheader(rec_header,\n", " pn_dir=icustay_record_dir,\n", " rd_segments=True)\n", " sigs_present = rec_metadata.sig_name\n", " if not all(x in sigs_present for x in required_sigs):\n", " print('{} (missing signals)'.format(rec_header))\n", " continue\n", " \n", " print(' Reading data: ', end=\"\", flush=True)\n", " for seg in segs:\n", " print(seg, end=\"\", flush=True)\n", " seg_metadata = wfdb.rdheader(seg,\n", " pn_dir=icustay_record_dir,\n", " rd_segments=True)\n", "\n", " # Check whether the required signals are present in this segment\n", " sigs_present = seg_metadata.sig_name\n", " if not all(x in sigs_present for x in required_sigs):\n", " print(' (missing signals)')\n", " continue\n", " \n", " # Check whether the segment is of the required duration\n", " seg_length = seg_metadata.sig_len/(seg_metadata.fs)\n", "\n", " req_seg_duration = 60*10\n", " if seg_length < req_seg_duration:\n", " print(f' (too short at {seg_length/60:.1f} mins)')\n", " continue\n", "\n", " matching_recs['dir'].append(icustay_record_dir)\n", " matching_recs['seg_name'].append(seg)\n", " matching_recs['length'].append(seg_length)\n", " print(' (met requirements)')\n", " # Since we only need one segment per record break out of loop\n", " break\n", "\n", "print(f\"A total of {len(matching_recs['dir'])} records met the requirements:\")\n", "\n", "#df_matching_recs = pd.DataFrame(data=matching_recs)\n", "#df_matching_recs.to_csv('matching_records.csv', index=False)\n", "#p=1" ] }, { "cell_type": "code", "execution_count": 213, "id": "75ec15f4", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "75ec15f4", "outputId": "3ea832cd-4a4b-4265-bc2b-275d0f6c1802" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A total of 100 records were identified that met the requirements (although the search was limited to 100 records).\n", "\n", "The relevant segment names are:\n", " - 3531764_0003\n", " - 3285727_0007\n", " - 3092245_0007\n", " - 3047369_0003\n", " - 3481389_0008\n", " - 3189254_0006\n", " - 3054941_0001\n", " - 3462211_0001\n", " - 3755731_0015\n", " - 3988865_0012\n", " - 3747397_0005\n", " - 3016830_0019\n", " - 3429844_0002\n", " - 3395556_0005\n", " - 3046879_0003\n", " - 3376064_0010\n", " - 3205611_0013\n", " - 3126291_0001\n", " - 3622493_0043\n", " - 3410222_0004\n", " - 3021418_0002\n", " - 3832863_0007\n", " - 3757068_0002\n", " - 3090785_0011\n", " - 3929725_0001\n", " - 3031688_0022\n", " - 3040472_0001\n", " - 3289928_0011\n", " - 3068462_0004\n", " - 3873015_0004\n", " - 3089709_0002\n", " - 3883443_0015\n", " - 3447276_0006\n", " - 3216751_0009\n", " - 3377083_0005\n", " - 3831833_0006\n", " - 3203448_0022\n", " - 3729471_0009\n", " - 3000714_0001\n", " - 3019875_0004\n", " - 3113048_0001\n", " - 3678945_0003\n", " - 3358389_0004\n", " - 3124300_0001\n", " - 3145678_0005\n", " - 3383991_0003\n", " - 3147138_0008\n", " - 3068585_0032\n", " - 3545143_0009\n", " - 3062663_0002\n", " - 3548704_0010\n", " - 3947427_0006\n", " - 3763138_0005\n", " - 3263629_0001\n", " - 3081334_0026\n", " - 3251540_0009\n", " - 3195697_0001\n", " - 3973217_0001\n", " - 3942161_0001\n", " - 3696733_0005\n", " - 3176657_0041\n", " - 3310335_0019\n", " - 3132214_0015\n", " - 3228071_0003\n", " - 3195753_0006\n", " - 3573743_0005\n", " - 3266729_0003\n", " - 3760919_0010\n", " - 3958352_0006\n", " - 3300295_0003\n", " - 3028261_0046\n", " - 3912316_0020\n", " - 3341288_0003\n", " - 3306238_0001\n", " - 3217364_0003\n", " - 3872162_0001\n", " - 3133443_0001\n", " - 3457114_0003\n", " - 3020774_0012\n", " - 3820075_0003\n", " - 3573275_0029\n", " - 3145453_0019\n", " - 3528521_0005\n", " - 3119460_0009\n", " - 3511654_0003\n", " - 3061470_0003\n", " - 3083615_0012\n", " - 3145814_0005\n", " - 3426164_0003\n", " - 3688103_0007\n", " - 3228082_0010\n", " - 3028253_0056\n", " - 3523904_0009\n", " - 3576649_0004\n", " - 3794019_0005\n", " - 3013677_0009\n", " - 3025436_0007\n", " - 3879187_0012\n", " - 3195265_0024\n", " - 3163704_0001\n", "\n", "The corresponding directories are: \n", " - mimic3wdb-matched/1.0/p00/p000160/\n", " - mimic3wdb-matched/1.0/p00/p000188/\n", " - mimic3wdb-matched/1.0/p00/p000333/\n", " - mimic3wdb-matched/1.0/p00/p000543/\n", " - mimic3wdb-matched/1.0/p00/p000618/\n", " - mimic3wdb-matched/1.0/p00/p000735/\n", " - mimic3wdb-matched/1.0/p00/p000801/\n", " - mimic3wdb-matched/1.0/p00/p000946/\n", " - mimic3wdb-matched/1.0/p00/p001038/\n", " - mimic3wdb-matched/1.0/p00/p001049/\n", " - mimic3wdb-matched/1.0/p00/p001457/\n", " - mimic3wdb-matched/1.0/p00/p001501/\n", " - mimic3wdb-matched/1.0/p00/p001606/\n", " - mimic3wdb-matched/1.0/p00/p001791/\n", " - mimic3wdb-matched/1.0/p00/p001840/\n", " - mimic3wdb-matched/1.0/p00/p001855/\n", " - mimic3wdb-matched/1.0/p00/p001949/\n", " - mimic3wdb-matched/1.0/p00/p002063/\n", " - mimic3wdb-matched/1.0/p00/p002343/\n", " - mimic3wdb-matched/1.0/p00/p002369/\n", " - mimic3wdb-matched/1.0/p00/p002458/\n", " - mimic3wdb-matched/1.0/p00/p002577/\n", " - mimic3wdb-matched/1.0/p00/p002586/\n", " - mimic3wdb-matched/1.0/p00/p002639/\n", " - mimic3wdb-matched/1.0/p00/p002703/\n", " - mimic3wdb-matched/1.0/p00/p002858/\n", " - mimic3wdb-matched/1.0/p00/p002906/\n", " - mimic3wdb-matched/1.0/p00/p002974/\n", " - mimic3wdb-matched/1.0/p00/p002981/\n", " - mimic3wdb-matched/1.0/p00/p003039/\n", " - mimic3wdb-matched/1.0/p00/p003386/\n", " - mimic3wdb-matched/1.0/p00/p003617/\n", " - mimic3wdb-matched/1.0/p00/p003744/\n", " - mimic3wdb-matched/1.0/p00/p003866/\n", " - mimic3wdb-matched/1.0/p00/p003949/\n", " - mimic3wdb-matched/1.0/p00/p004053/\n", " - mimic3wdb-matched/1.0/p00/p004115/\n", " - mimic3wdb-matched/1.0/p00/p004313/\n", " - mimic3wdb-matched/1.0/p00/p004324/\n", " - mimic3wdb-matched/1.0/p00/p004331/\n", " - mimic3wdb-matched/1.0/p00/p004405/\n", " - mimic3wdb-matched/1.0/p00/p004588/\n", " - mimic3wdb-matched/1.0/p00/p004679/\n", " - mimic3wdb-matched/1.0/p00/p004802/\n", " - mimic3wdb-matched/1.0/p00/p004804/\n", " - mimic3wdb-matched/1.0/p00/p004833/\n", " - mimic3wdb-matched/1.0/p00/p004837/\n", " - mimic3wdb-matched/1.0/p00/p004904/\n", " - mimic3wdb-matched/1.0/p00/p004906/\n", " - mimic3wdb-matched/1.0/p00/p004966/\n", " - mimic3wdb-matched/1.0/p00/p005030/\n", " - mimic3wdb-matched/1.0/p00/p005071/\n", " - mimic3wdb-matched/1.0/p00/p005193/\n", " - mimic3wdb-matched/1.0/p00/p005345/\n", " - mimic3wdb-matched/1.0/p00/p005453/\n", " - mimic3wdb-matched/1.0/p00/p005742/\n", " - mimic3wdb-matched/1.0/p00/p005885/\n", " - mimic3wdb-matched/1.0/p00/p005913/\n", " - mimic3wdb-matched/1.0/p00/p005937/\n", " - mimic3wdb-matched/1.0/p00/p006116/\n", " - mimic3wdb-matched/1.0/p00/p006381/\n", " - mimic3wdb-matched/1.0/p00/p006533/\n", " - mimic3wdb-matched/1.0/p00/p006539/\n", " - mimic3wdb-matched/1.0/p00/p006621/\n", " - mimic3wdb-matched/1.0/p00/p006692/\n", " - mimic3wdb-matched/1.0/p00/p006702/\n", " - mimic3wdb-matched/1.0/p00/p006728/\n", " - mimic3wdb-matched/1.0/p00/p006875/\n", " - mimic3wdb-matched/1.0/p00/p007107/\n", " - mimic3wdb-matched/1.0/p00/p007184/\n", " - mimic3wdb-matched/1.0/p00/p007251/\n", " - mimic3wdb-matched/1.0/p00/p007445/\n", " - mimic3wdb-matched/1.0/p00/p007477/\n", " - mimic3wdb-matched/1.0/p00/p007529/\n", " - mimic3wdb-matched/1.0/p00/p007533/\n", " - mimic3wdb-matched/1.0/p00/p007614/\n", " - mimic3wdb-matched/1.0/p00/p007629/\n", " - mimic3wdb-matched/1.0/p00/p007644/\n", " - mimic3wdb-matched/1.0/p00/p007654/\n", " - mimic3wdb-matched/1.0/p00/p007866/\n", " - mimic3wdb-matched/1.0/p00/p007966/\n", " - mimic3wdb-matched/1.0/p00/p008061/\n", " - mimic3wdb-matched/1.0/p00/p008142/\n", " - mimic3wdb-matched/1.0/p00/p008167/\n", " - mimic3wdb-matched/1.0/p00/p008318/\n", " - mimic3wdb-matched/1.0/p00/p008396/\n", " - mimic3wdb-matched/1.0/p00/p008723/\n", " - mimic3wdb-matched/1.0/p00/p008735/\n", " - mimic3wdb-matched/1.0/p00/p008748/\n", " - mimic3wdb-matched/1.0/p00/p008780/\n", " - mimic3wdb-matched/1.0/p00/p008795/\n", " - mimic3wdb-matched/1.0/p00/p008799/\n", " - mimic3wdb-matched/1.0/p00/p008896/\n", " - mimic3wdb-matched/1.0/p00/p009124/\n", " - mimic3wdb-matched/1.0/p00/p009128/\n", " - mimic3wdb-matched/1.0/p00/p009258/\n", " - mimic3wdb-matched/1.0/p00/p009460/\n", " - mimic3wdb-matched/1.0/p00/p009473/\n", " - mimic3wdb-matched/1.0/p00/p009798/\n", " - mimic3wdb-matched/1.0/p00/p009993/\n" ] } ], "source": [ "print(f\"A total of {len(matching_recs['dir'])} records were identified that met the requirements (although the search was limited to {no_recs_req} records).\")\n", "\n", "relevant_segments_names = \"\\n - \".join(matching_recs['seg_name'])\n", "print(f\"\\nThe relevant segment names are:\\n - {relevant_segments_names}\")\n", "\n", "relevant_dirs = \"\\n - \".join(matching_recs['dir'])\n", "print(f\"\\nThe corresponding directories are: \\n - {relevant_dirs}\")" ] }, { "cell_type": "markdown", "id": "719f20f8", "metadata": { "id": "719f20f8" }, "source": [ "
\n", "

Question: Is this enough data for a study? Consider different types of studies, e.g. assessing the performance of a previously proposed algorithm to estimate BP from the PPG signal, vs. developing a deep learning approach to estimate BP from the PPG.

\n", "
" ] }, { "cell_type": "markdown", "id": "cfbd9837", "metadata": { "id": "6fccda20" }, "source": [ "## Extract data for a segment" ] }, { "cell_type": "markdown", "id": "23048b80", "metadata": {}, "source": [ "- Provide a list of segments which meet the requirements for the study" ] }, { "cell_type": "code", "execution_count": 214, "id": "8fed5590", "metadata": {}, "outputs": [], "source": [ "segment_names = ['3531764_0003', '3285727_0007', '3092245_0007', '3047369_0003', '3481389_0008', '3189254_0006', '3054941_0001', '3462211_0001', '3755731_0015', '3988865_0012', '3747397_0005', '3016830_0019', '3429844_0002', '3395556_0005', '3046879_0003', '3376064_0010', '3205611_0013', '3126291_0001', '3622493_0043', '3410222_0004', '3021418_0002', '3832863_0007', '3757068_0002', '3090785_0011', '3929725_0001', '3031688_0022', '3040472_0001', '3289928_0011', '3068462_0004', '3873015_0004', '3089709_0002', '3883443_0015', '3447276_0006', '3216751_0009', '3377083_0005', '3831833_0006', '3203448_0022', '3729471_0009', '3000714_0001', '3019875_0004', '3113048_0001', '3678945_0003', '3358389_0004', '3124300_0001', '3145678_0005', '3383991_0003', '3147138_0008', '3068585_0032', '3545143_0009', '3062663_0002', '3548704_0010', '3947427_0006', '3763138_0005', '3263629_0001', '3081334_0026', '3251540_0009', '3195697_0001', '3973217_0001', '3942161_0001', '3696733_0005', '3176657_0041', '3310335_0019', '3132214_0015', '3228071_0003', '3195753_0006', '3573743_0005', '3266729_0003', '3760919_0010', '3958352_0006', '3300295_0003', '3028261_0046', '3912316_0020', '3341288_0003', '3306238_0001', '3217364_0003', '3872162_0001', '3133443_0001', '3457114_0003', '3020774_0012', '3820075_0003', '3573275_0029', '3145453_0019', '3528521_0005', '3119460_0009', '3511654_0003', '3061470_0003', '3083615_0012', '3145814_0005', '3426164_0003', '3688103_0007', '3228082_0010', '3028253_0056', '3523904_0009', '3576649_0004', '3794019_0005', '3013677_0009', '3025436_0007', '3879187_0012', '3195265_0024', '3163704_0001']\n", "segment_dirs = ['mimic3wdb-matched/1.0/p00/p000160/', 'mimic3wdb-matched/1.0/p00/p000188/', 'mimic3wdb-matched/1.0/p00/p000333/', 'mimic3wdb-matched/1.0/p00/p000543/', 'mimic3wdb-matched/1.0/p00/p000618/', 'mimic3wdb-matched/1.0/p00/p000735/', 'mimic3wdb-matched/1.0/p00/p000801/', 'mimic3wdb-matched/1.0/p00/p000946/', 'mimic3wdb-matched/1.0/p00/p001038/', 'mimic3wdb-matched/1.0/p00/p001049/', 'mimic3wdb-matched/1.0/p00/p001457/', 'mimic3wdb-matched/1.0/p00/p001501/', 'mimic3wdb-matched/1.0/p00/p001606/', 'mimic3wdb-matched/1.0/p00/p001791/', 'mimic3wdb-matched/1.0/p00/p001840/', 'mimic3wdb-matched/1.0/p00/p001855/', 'mimic3wdb-matched/1.0/p00/p001949/', 'mimic3wdb-matched/1.0/p00/p002063/', 'mimic3wdb-matched/1.0/p00/p002343/', 'mimic3wdb-matched/1.0/p00/p002369/', 'mimic3wdb-matched/1.0/p00/p002458/', 'mimic3wdb-matched/1.0/p00/p002577/', 'mimic3wdb-matched/1.0/p00/p002586/', 'mimic3wdb-matched/1.0/p00/p002639/', 'mimic3wdb-matched/1.0/p00/p002703/', 'mimic3wdb-matched/1.0/p00/p002858/', 'mimic3wdb-matched/1.0/p00/p002906/', 'mimic3wdb-matched/1.0/p00/p002974/', 'mimic3wdb-matched/1.0/p00/p002981/', 'mimic3wdb-matched/1.0/p00/p003039/', 'mimic3wdb-matched/1.0/p00/p003386/', 'mimic3wdb-matched/1.0/p00/p003617/', 'mimic3wdb-matched/1.0/p00/p003744/', 'mimic3wdb-matched/1.0/p00/p003866/', 'mimic3wdb-matched/1.0/p00/p003949/', 'mimic3wdb-matched/1.0/p00/p004053/', 'mimic3wdb-matched/1.0/p00/p004115/', 'mimic3wdb-matched/1.0/p00/p004313/', 'mimic3wdb-matched/1.0/p00/p004324/', 'mimic3wdb-matched/1.0/p00/p004331/', 'mimic3wdb-matched/1.0/p00/p004405/', 'mimic3wdb-matched/1.0/p00/p004588/', 'mimic3wdb-matched/1.0/p00/p004679/', 'mimic3wdb-matched/1.0/p00/p004802/', 'mimic3wdb-matched/1.0/p00/p004804/', 'mimic3wdb-matched/1.0/p00/p004833/', 'mimic3wdb-matched/1.0/p00/p004837/', 'mimic3wdb-matched/1.0/p00/p004904/', 'mimic3wdb-matched/1.0/p00/p004906/', 'mimic3wdb-matched/1.0/p00/p004966/', 'mimic3wdb-matched/1.0/p00/p005030/', 'mimic3wdb-matched/1.0/p00/p005071/', 'mimic3wdb-matched/1.0/p00/p005193/', 'mimic3wdb-matched/1.0/p00/p005345/', 'mimic3wdb-matched/1.0/p00/p005453/', 'mimic3wdb-matched/1.0/p00/p005742/', 'mimic3wdb-matched/1.0/p00/p005885/', 'mimic3wdb-matched/1.0/p00/p005913/', 'mimic3wdb-matched/1.0/p00/p005937/', 'mimic3wdb-matched/1.0/p00/p006116/', 'mimic3wdb-matched/1.0/p00/p006381/', 'mimic3wdb-matched/1.0/p00/p006533/', 'mimic3wdb-matched/1.0/p00/p006539/', 'mimic3wdb-matched/1.0/p00/p006621/', 'mimic3wdb-matched/1.0/p00/p006692/', 'mimic3wdb-matched/1.0/p00/p006702/', 'mimic3wdb-matched/1.0/p00/p006728/', 'mimic3wdb-matched/1.0/p00/p006875/', 'mimic3wdb-matched/1.0/p00/p007107/', 'mimic3wdb-matched/1.0/p00/p007184/', 'mimic3wdb-matched/1.0/p00/p007251/', 'mimic3wdb-matched/1.0/p00/p007445/', 'mimic3wdb-matched/1.0/p00/p007477/', 'mimic3wdb-matched/1.0/p00/p007529/', 'mimic3wdb-matched/1.0/p00/p007533/', 'mimic3wdb-matched/1.0/p00/p007614/', 'mimic3wdb-matched/1.0/p00/p007629/', 'mimic3wdb-matched/1.0/p00/p007644/', 'mimic3wdb-matched/1.0/p00/p007654/', 'mimic3wdb-matched/1.0/p00/p007866/', 'mimic3wdb-matched/1.0/p00/p007966/', 'mimic3wdb-matched/1.0/p00/p008061/', 'mimic3wdb-matched/1.0/p00/p008142/', 'mimic3wdb-matched/1.0/p00/p008167/', 'mimic3wdb-matched/1.0/p00/p008318/', 'mimic3wdb-matched/1.0/p00/p008396/', 'mimic3wdb-matched/1.0/p00/p008723/', 'mimic3wdb-matched/1.0/p00/p008735/', 'mimic3wdb-matched/1.0/p00/p008748/', 'mimic3wdb-matched/1.0/p00/p008780/', 'mimic3wdb-matched/1.0/p00/p008795/', 'mimic3wdb-matched/1.0/p00/p008799/', 'mimic3wdb-matched/1.0/p00/p008896/', 'mimic3wdb-matched/1.0/p00/p009124/', 'mimic3wdb-matched/1.0/p00/p009128/', 'mimic3wdb-matched/1.0/p00/p009258/', 'mimic3wdb-matched/1.0/p00/p009460/', 'mimic3wdb-matched/1.0/p00/p009473/', 'mimic3wdb-matched/1.0/p00/p009798/', 'mimic3wdb-matched/1.0/p00/p009993/']" ] }, { "cell_type": "markdown", "id": "fbc272be", "metadata": {}, "source": [ "- Specify a segment from which to extract data" ] }, { "cell_type": "code", "execution_count": 215, "id": "404505b2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Specified segment '3531764_0003' in directory: 'mimic3wdb-matched/1.0/p00/p000160/'\n" ] } ], "source": [ "rel_segment_no = 0\n", "rel_segment_name = segment_names[rel_segment_no]\n", "rel_segment_dir = segment_dirs[rel_segment_no]\n", "print(f\"Specified segment '{rel_segment_name}' in directory: '{rel_segment_dir}'\")" ] }, { "cell_type": "markdown", "id": "6f989fcf", "metadata": {}, "source": [ "
\n", "

Extension: Have a look at the files which make up this record here (NB: you will need to scroll to the bottom of the page).

\n", "
" ] }, { "cell_type": "markdown", "id": "f2d5beb9", "metadata": {}, "source": [ "- Use the [`rdrecord`](https://wfdb.readthedocs.io/en/latest/io.html#wfdb.io.rdrecord) function from the WFDB toolbox to read the data for this segment." ] }, { "cell_type": "code", "execution_count": 203, "id": "f9ec70d5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data loaded from segment: 3531764_0003\n" ] } ], "source": [ "segment_data = wfdb.rdrecord(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n", "print(f\"Data loaded from segment: {rel_segment_name}\")" ] }, { "cell_type": "markdown", "id": "51b04c34", "metadata": {}, "source": [ "- Look at class type of the object in which the data are stored:" ] }, { "cell_type": "code", "execution_count": 204, "id": "82bfd5f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data stored in class of type: \n" ] } ], "source": [ "print(f\"Data stored in class of type: {type(segment_data)}\")" ] }, { "cell_type": "markdown", "id": "8bf8327f", "metadata": {}, "source": [ "
\n", "

Resource: You can find out more about the class representing single segment WFDB records here.

\n", "
" ] }, { "cell_type": "markdown", "id": "cad8b9d6", "metadata": {}, "source": [ "- Find out about the signals which have been extracted" ] }, { "cell_type": "code", "execution_count": 205, "id": "02a17c50", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This segment contains waveform data for the following 6 signals: ['RESP', 'PLETH', 'II', 'V', 'AVR', 'ABP']\n", "The signals are sampled at 125 Hz\n", "They last for 179.8 minutes\n" ] } ], "source": [ "print(f\"This segment contains waveform data for the following {segment_data.n_sig} signals: {segment_data.sig_name}\")\n", "print(f\"The signals are sampled at {segment_data.fs} Hz\")\n", "print(f\"They last for {segment_data.sig_len/(60*segment_data.fs):.1f} minutes\")" ] }, { "cell_type": "markdown", "id": "e0b448aa", "metadata": {}, "source": [ "## Visualise the signals" ] }, { "cell_type": "markdown", "id": "b74ed4a9", "metadata": {}, "source": [ "### Select a segment" ] }, { "cell_type": "markdown", "id": "278826ab", "metadata": {}, "source": [ "- Specify a segment from which to extract data" ] }, { "cell_type": "code", "execution_count": 206, "id": "5807515f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Specified segment '3285727_0007' in directory: 'mimic3wdb-matched/1.0/p00/p000188/'\n" ] } ], "source": [ "rel_segment_n = 1\n", "rel_segment_name = segment_names[rel_segment_n]\n", "rel_segment_dir = segment_dirs[rel_segment_n]\n", "print(f\"Specified segment '{rel_segment_name}' in directory: '{rel_segment_dir}'\")" ] }, { "cell_type": "markdown", "id": "3a7d23b6", "metadata": {}, "source": [ "### Extract one minute of data from this segment" ] }, { "cell_type": "markdown", "id": "c7b5622e", "metadata": {}, "source": [ "- Specify the timings of the data to be extracted" ] }, { "cell_type": "code", "execution_count": 207, "id": "928be8d7", "metadata": {}, "outputs": [], "source": [ "# time since the start of the segment at which to begin extracting data\n", "start_seconds = 90\n", "n_seconds_to_load = 60" ] }, { "cell_type": "markdown", "id": "7cf8a27b", "metadata": {}, "source": [ "- Find out the sampling frequency of the waveform data" ] }, { "cell_type": "code", "execution_count": 208, "id": "40177f31", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Metadata loaded from segment: 3285727_0007\n" ] } ], "source": [ "segment_metadata = wfdb.rdheader(record_name=rel_segment_name,\n", " pn_dir=rel_segment_dir)\n", "\n", "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n", "fs = round(segment_metadata.fs)" ] }, { "cell_type": "markdown", "id": "9771170e", "metadata": {}, "source": [ "- Extract the specified data" ] }, { "cell_type": "code", "execution_count": 209, "id": "035a8598", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "60 seconds of data extracted from segment 3285727_0007\n" ] } ], "source": [ "sampfrom = fs * start_seconds\n", "sampto = fs * (start_seconds + n_seconds_to_load)\n", "\n", "segment_data = wfdb.rdrecord(record_name=rel_segment_name,\n", " sampfrom=sampfrom,\n", " sampto=sampto,\n", " pn_dir=rel_segment_dir)\n", "\n", "print(f\"{n_seconds_to_load} seconds of data extracted from segment {rel_segment_name}\")" ] }, { "cell_type": "markdown", "id": "25198a91", "metadata": {}, "source": [ "### Plot the extracted signals" ] }, { "cell_type": "markdown", "id": "91c248fa", "metadata": {}, "source": [ "- Plot the extracted signals using the [plot_wfdb](https://wfdb.readthedocs.io/en/latest/plot.html#wfdb.plot.plot_wfdb) function from the WFDB Toolbox." ] }, { "cell_type": "code", "execution_count": 210, "id": "86a6b071", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "title_text = f\"Segment {rel_segment_name}\"\n", "wfdb.plot_wfdb(record=segment_data,\n", " title=title_text,\n", " time_units='seconds') " ] }, { "cell_type": "markdown", "id": "e28e098b", "metadata": {}, "source": [ "- Extract the PPG signal to loook at it more closely" ] }, { "cell_type": "code", "execution_count": 211, "id": "24263c2a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracted the PPG signal from column 0 of the matrix of waveform data.\n" ] } ], "source": [ "for sig_no in range(0, len(segment_data.sig_name)):\n", " if \"PLETH\" in segment_data.sig_name[sig_no]:\n", " break\n", "\n", "ppg = segment_data.p_signal[:, sig_no]\n", "fs = segment_data.fs\n", "print(f\"Extracted the PPG signal from column {sig_no} of the matrix of waveform data.\")" ] }, { "cell_type": "markdown", "id": "f0e3f259", "metadata": {}, "source": [ "

Note: the name given to PPG signals in the database is 'PLETH'.

" ] }, { "cell_type": "markdown", "id": "6981b724", "metadata": {}, "source": [ "- Plot to look at the shape of the PPG pulse wave more closely" ] }, { "cell_type": "code", "execution_count": 212, "id": "6fbd074a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(50.0, 55.0)" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAzk0lEQVR4nO3deVhUZfsH8O/NKoqCxOAGigukiSu4Uu5LLrmEuaVmVoi5L2la+VZmmy2mlEtqamb9NNPX1NI2sV4TwwXXVERNRFNcWEQwmPv3BzMEOAOznJmjx/tzXXM5M+c5z7k7Dfecec6zEDNDCCGEdrmoHYAQQgjHkkQvhBAaJ4leCCE0ThK9EEJonCR6IYTQODe1Duzv78/BwcFqHV4IIe5J+/btS2NmnTX7qJbog4ODkZCQoNbhhRDinkRE56zdR5puhBBC4yTRCyGExkmiF0IIjZNEL4QQGieJXgghNM7iRE9ErkR0gIi2mNhGRLSAiJKI6BARNVc2TCGEELay5op+IoDjZrb1ABBieEQDWGRnXEIIIRRiUaInokAAvQAsM1OkL4DVXGAPAF8iqqZQjEIIIexg6RX9fADTAejNbK8B4HyR1ymG94ohomgiSiCihCtXrlgTpxBCCBuVmeiJqDeAy8y8r7RiJt67Y0UTZl7KzBHMHKHTWTWCVwghhI0suaKPBNCHiM4C+ApAJyJaU6JMCoCgIq8DAaQqEqEQQgi7lJnomXkmMwcyczCAwQB+ZuZhJYptBjDC0PumNYB0Zr6ofLhCCCGsZfOkZkQUAwDMvBjANgA9ASQByAbwtCLRCSGEsJtViZ6ZdwLYaXi+uMj7DGCskoEJIYRQhoyMFUIIjZNEL4QQGieJXgghNE4SvRBCaJwkeiGE0DhJ9EIIoXGS6IUQQuMk0QshhMZJohdCCI2TRC+EEBoniV4IITROEr0QQmicJHohhNA4SfRCCKFxkuiFEELjJNELIYTGWbI4eDki2ktEiUR0lIheM1GmAxGlE9FBw2O2Y8IVQghhLUtWmMoF0ImZs4jIHcBvRPQdM+8pUe5XZu6tfIhCCCHsUWaiNywTmGV46W54sCODEkIIoRyL2uiJyJWIDgK4DOAHZo43UayNoXnnOyJqaKaeaCJKIKKEK1eu2B61EEIIi1mU6Jk5n5mbAggE0JKIwkoU2Q+gFjM3AbAQwCYz9Sxl5ghmjtDpdLZHLYQQwmJW9bph5hsAdgJ4tMT7GcycZXi+DYA7EfkrFKMQQgg7WNLrRkdEvobnXgC6APizRJmqRESG5y0N9V5VPFohhBBWs6TXTTUAq4jIFQUJfB0zbyGiGABg5sUABgAYQ0R5AG4BGGy4iSuEEEJllvS6OQSgmYn3Fxd5HgsgVtnQhBBCKEFGxgohhMZJohdCCI2TRC+EEBoniV4IITROEr0QQmicJHohhNA4SfRCCKFxkuiFEELjJNELIYTGSaIXQgiNk0QvhBAaJ4leCCE0ThK9EEJonCR6IYTQOEn0QgihcZLohRBC4yxZSrAcEe0lokQiOkpEr5koQ0S0gIiSiOgQETV3TLhCCCGsZclSgrkAOjFzFhG5A/iNiL5j5j1FyvQAEGJ4tAKwyPCvEEIIlZV5Rc8Fsgwv3Q2PkuvB9gWw2lB2DwBfIqqmbKhCCCFsYVEbPRG5EtFBAJcB/MDM8SWK1ABwvsjrFMN7JeuJJqIEIkq4cuWKjSELIYSwhkWJnpnzmbkpgEAALYkorEQRMrWbiXqWMnMEM0fodDqrgxVCCGE9q3rdMPMNADsBPFpiUwqAoCKvAwGk2hOYEEIIZVjS60ZHRL6G514AugD4s0SxzQBGGHrftAaQzswXlQ5WCCGE9SzpdVMNwCoickXBF8M6Zt5CRDEAwMyLAWwD0BNAEoBsAE87KF4hhBBWKjPRM/MhAM1MvL+4yHMGMFbZ0IQQQihBRsYKIYTGSaIXQgiNk0QvhBAaJ4leCCE0ThK9EEJonCR6IYTQOEn0QgihcZLohRBC4yTRCyGExkmiF0IIjZNEL4QQGieJXgghNE4SvRBCaJwkeiGE0DhJ9EIIoXGWrDAVRES/ENFxIjpKRBNNlOlAROlEdNDwmO2YcIUQQljLkhWm8gBMZeb9RFQRwD4i+oGZj5Uo9ysz91Y+RCGEEPYo84qemS8y837D80wAxwHUcHRgQgghlGFVGz0RBaNgWcF4E5vbEFEiEX1HRA3N7B9NRAlElHDlyhXroxVCCGE1ixM9EXkD2ABgEjNnlNi8H0AtZm4CYCGATabqYOalzBzBzBE6nc7GkIUQQljDokRPRO4oSPJfMPM3JbczcwYzZxmebwPgTkT+ikaqcbdu3cLIkSMRGRmJVatWISsrS+2QhBB3EWbG7t27bdrXkl43BGA5gOPM/IGZMlUN5UBELQ31XrUpovvUrFmzsGrVKqSkpGDkyJEICwtDcnKy2mEJIe4CeXl5iIqKQmRkpE37W3JFHwlgOIBORbpP9iSiGCKKMZQZAOAIESUCWABgMDOzTRHdh65evYpPPvkEzzzzDM6cOYPvv/8emZmZ6NWrF65fv652eEIIlX344YfYuHEj5s6da9P+pFY+joiI4ISEBFWOfbdZtGgRnn/+eRw4cABNmzYFAOzatQtdunRB165dsXXrVnUDFEKoJi0tDXXr1kW7du3w7bffgoj2MXOENXXIyNi7wOeff46wsDA0adKk8L127drh9ddfx7Zt25CYmKhidEIINcXGxiIzMxPvvPOOzXVIoldZamoqfv/9dzz55JMw3OYoFB0djXLlyuHjjz9WKTohhJqYGatXr0bnzp3x0EMP2VyPphP9mTNn0KNHD9SoUQORkZHYuXOn2iHdIS4uDgDQtWvXO7b5+fnhySefxJo1a3Dp0iVnhyaEUNmxY8dw5swZDBw40K56NJvo09LS0K5dO+zZswddunTBxYsX0bFjRyxcuFDt0IrZuXMnKlWqVNg2X9KMGTNw+/ZtvPvuu84NTAihuu3btwMAunfvblc9mkz0zIynn34aly9fxo8//ohVq1bh8OHD6Nu3LyZNmoT9+/erHWKhuLg4PPLII3B1dTW5PSQkBMOGDcOiRYuQlpbm5OiEEGrasWMH6tevj5o1a9pVjyYT/YoVK7Blyxa8//77CA8PBwBUqFABK1euREBAAJ577jno9XqVowT+/vtvnDhxAu3bty+13LRp05CTk4Nly5Y5KTIhhNpyc3MRFxeHbt262V2X5hI9M+Ptt99GixYtMHbs2GLbfH19MW/ePOzfvx+bNm1SJ8AijN1LW7duXWq5sLAwdOzYEYsWLUJeXp4zQhNCqOzQoUPIycnBI488Ynddmkv0Bw4cQFJSEmJiYu7oxQIAQ4YMQUhICN544w2oPaZr3759ICKz7fNFjRs3Dn/99Re+/fZbxwcmhMZdvHjxrp9mxHgh2KJFC7vr0lyi37ZtG4gIvXubnhrf1dUVM2fOxIEDB1RPmvv370doaCgqVqxYZtk+ffogKCgIsbGxTohMCO2aMmUKqlevDp1Oh+XLl6sdjlkHDx6En5+f3e3zgAYT/a+//oqwsDAEBASYLTN8+HDUq1cPr7zyiqpt9fv27UPz5s0tKuvm5obnn38eP//8M44ePergyITQpri4OHz44YcYOnQoHn74YTz33HPYtm2b2mGZdOrUKTz44IMmWyaspalEn5+fjz179pQ58Y+bmxtef/11HDp0SLVv9MuXLyMlJaXwZrElnn32WXh6esoAKiFsNH/+fOh0OixbtgybNm1CkyZNMGLECNyN62OcOnUKISEhitSlqUR/9OhRZGRkoG3btmWWHTx4MDp06IDp06erMhjJ2P5mTaL39/fHkCFDsHr1aqSnpzsqNCE0KTMzE1u2bMHw4cPh5eWFChUqYM2aNcjIyMDUqVPVDq+Y7OxspKSkSKI35X//+x8AWDSVJxFh8eLFyM7Oxvjx451+YzY+Ph4uLi6IiLBqbiKMGzcON2/exGeffeagyITQpl27diEvLw89e/YsfK9hw4aYPHky1qxZgxMnTqgYXXGnT58GANSrV0+R+jSV6Pfu3YuAgADUrl3bovIPPvggXn/9dXz99df49NNPHRxdcfHx8WjYsCG8vb2t2i88PByRkZF46623cPnyZQdFJ4T2/PjjjyhXrtwdF4JTp06Fu7s7Fi1apFJkd0pKSgIAuaI35ejRo2jUqJFVNy9eeOEFdO/eHRMnTsShQ4ccGN2/mBl79+5Fq1atbNp/8eLFSEtLwwcfmFwHRghhwk8//YTIyEiUK1eu2PsBAQHo168f1qxZg9zcXJWiK+7UqVMA5Ir+DsyMY8eOWT3Dm4uLC1avXo3KlStj4MCBTulbm5SUhOvXr6Nly5Y27R8WFoaoqCgsXrwYmZmZCkcnhPZcu3YNhw8fRqdOnUxuHzVqFK5evap6l2ujpKQk6HQ6+Pj4KFKfJUsJBhHRL0R0nIiOEtFEE2WIiBYQURIRHSIiy/oMKuivv/7CzZs30bBhQ6v3DQgIwJdffolTp05hzJgxDm+vP3jwIADrbsSWNG3aNKSnp+P9999XKCrrMbM0H4l7wr59+wDA7MVVly5dEBgYiBUrVjgzLLPOnTuH4OBgxeqz5Io+D8BUZm4AoDWAsURU8rK5B4AQwyMagNMbu44dOwYANiV6AGjfvj1effVVrFmzxuE3Oo03fR588EGb62jZsiWGDBmCt956C8ePH1cqNKvExMSgSpUqmDNnjirHF8JSxokMzY1bcXV1xciRI7F9+3akpKQ4MzSTUlJSEBgYqFh9ZSZ6Zr7IzPsNzzMBHAdQo0SxvgBWc4E9AHyJqJpiUVrAOIjInsn5Z82ahc6dO2Ps2LGFVwCOcOLECQQFBaFChQp21TN//nx4eXnhpZdeUigyy12+fBlLly4FAMyePRsHDhxwegxCWGrfvn2oXbs2/Pz8zJYZOXIk9Ho9Vq9e7cTITEtJSUFQUJBi9VnVRk9EwQCaAYgvsakGgPNFXqfgzi8DEFE0ESUQUYLSAxSOHTuGqlWrlvo/siyurq5Yu3YtdDod+vXrhxs3bigXYBEnTpyw62reKCAgAJMnT8bGjRudnmh37doFAPj+++/h6+uLV1991anHF8IaloxCr1u3Ljp06IAVK1aoOg9WRkYGMjIynHtFb0RE3gA2AJjEzBklN5vY5Y4zxcxLmTmCmSN0Op11kZbh1KlTCA0NtbuegIAAbNiwASkpKXjvvfcUiKw4ZlYs0QPApEmT4Ofnh3HjxiE/P1+ROi2xY8cOeHt7o1OnTpgyZQo2b97s0F9BQtjqxo0bSE5OtuieWHR0NE6fPo0vvvjCCZGZZmw6cnqiJyJ3FCT5L5j5G1OxASj6OyMQQKr94VkuOTkZdevWVaSuFi1aYNCgQfjwww8VHzV76dIlZGRkKJbofXx8sGDBAuzevdtpq2ft3r0bn332GXr37g13d3dMnDgRlStXlqt6cVc6cuQIAKBJkyZllh00aBBatmyJadOm4fr1644OzSRVEj0VdEpfDuA4M5vruL0ZwAhD75vWANKZ+aJiUZbh1q1bSE1NRZ06dRSrc86cOcjNzVX8RqMSN2JLGjp0KLp164Y33ngDGRklf2wp6+eff0aHDh2g0+kKh41XqlQJU6dOxZYtWxAfX7JVTwh1GTtqWHL/zsXFBYsWLcK1a9cwYsQIVSY9NCZ6Z7fRRwIYDqATER00PHoSUQwRxRjKbAOQDCAJwKcAnlcsQgucOXMGABS7ogcKRqRFR0dj6dKlig6NdkSiJyLMnTsXV69exUcffaRYvSVduHABUVFRCA0NxdGjR4tN3zBhwgTodDrMmDFD9Xn+hSjq6NGjqFChgsXT/TZv3hzvv/8+tmzZokpHB2Oir169unKVMrMqj/DwcFbKt99+ywB4z549itXJzHzp0iX28fHhjh07sl6vV6TOyZMns5eXF+fn5ytSX1H9+vVjHx8fvnbtmuJ1MzNPmTKFXV1d+dSpUya3L1y4kAHw5s2bHXJ8IWzRuXNnbtGihVX76PV6Hj16NAPg2NhYB0Vm2rPPPstVqlQxux1AAluZbzUxMtY4AZCSTTcAUKVKFbzzzjv45Zdf8PnnnytS54kTJxAaGgoXF+VP/WuvveawQVR6vR5r165Fv379zA7Ljo6ORv369TFp0iTk5OQoHoMQtrBlxDwRITY2Fo899hjGjx+PjRs3Oii6Oyndhx7QyBQIycnJqFixIvz9/RWv+7nnnkObNm0wZcoUpKWl2V2fkj1uSmrcuDEGDRqE+fPnKz6/dkJCAi5duoT+/fubLePh4YHY2FgkJydjxowZih7fVhcuXMD48eMRFRWlerc54XzXr1/HxYsXbRpI6ebmhq+++gotW7bE0KFDsXv3bgdEeCdJ9GacPn0aderUUWQllpJcXFywdOlSpKen48UXX7SrrtzcXJw5c8ZhiR4AXn31Vdy6dQvvvPOOovXu3LkTQMFQ8dJ07twZEydOxIIFC7BkyRJFY7BWVlYWOnbsiCVLliAhIQHPPPMMnn76aad2QxXqMt4Tq1+/vk37ly9fHlu2bEFQUBD69u1b2HrgSEoPlgI0kuiV7FppSlhYGCZPnozly5fj999/t7mepKQk6PV6hyb6+vXrY/jw4fj444+RmqpcD9fffvsNoaGhqFKlSpll582bh0cffRQxMTFo2LAhhg4dildeeQVr16516iRsixYtwqlTp7B9+3acOXMGs2fPxqpVqxT/EhR3r7NnzwKwr1nX398fW7duhV6vR6dOnQo7fzhCVlYWbty4ofgV/T1/MzY/P589PT152rRpitRnTmZmJgcGBnKTJk34n3/+samODRs2MAD+448/FI6uuNOnT7ObmxuPGzdOkfry8/PZz8+PR40aZfE+ubm5PH/+fO7RowfXrl2bXVxcGAAHBgY6/L+fueBmWt26dbl9+/bF3n/88ce5fPnynJKS4vAYhPrefPNNBsCZmZl217V//3728/Pj4OBgPnfunALR3en48eMMgNesWWO2DO7Hm7EXL15Ebm6u4jdiS/L29sb8+fORmJho881OY39eR17RAwVXL6NGjcKSJUtw7tw5u+s7fvw4rl27hkceecTifTw8PDBx4kRs27YNycnJyMnJwc6dO+Hq6ooOHTogLi7O7rhKc+TIEZw+fRpPPvlksffnzZuHvLw8vPHGGw49vrg7nD17FjqdzuoFfkxp1qwZduzYgevXr6Nt27YOGQlu7FpZo8YdM8jY5Z5P9MnJyQCU7UNvzuOPP44BAwZg1qxZNq0cf+jQIdSpUwcVK1Z0QHTFvfzyy3B1dcWUKVPsrmvPnj0AYNFavOa4u7ujffv22LNnD2rWrIkePXoULv3oCD/++CMAoFevXsXer1OnDp588kl8/vnnd+26u2fPnsWyZctw8uRJtUOx2/nz5xESEoKoqChVboSfOXNG0el+w8PDERcXBzc3N3Tr1k3xNntjc6vSif6eb7r57LPPGIDZvt1Ky8rK4mbNmnHFihX58OHDVu374IMPcv/+/R0U2Z3eeustBsArV660q57x48ezt7e3Yn3/L126xPXq1eOgoCC+fv26InWWNGjQIK5Zs6bJbX/88QcD4IULFzrk2PbYvXs3ly9fngFwhQoV+ODBg2qHZJcPP/yQUTDvFW/bts3pxw8JCeGBAwcqXm9SUhL7+flx06ZNbW7KNcX4N5uVlWW2DO7Hppvk5GS4uLigVq1aTjlehQoVsHnzZnh7e2PAgAHIzs62aL/s7GycOnUKjRs3dnCE/5o6dSrat2+PUaNG4ZdffrG5nsTERDRq1Eixvv9VqlTBF198gdTUVEV+cZgSHx9vdqnGiIgItGjRAp988sld1d3y2rVrGDRoEKpWrYq4uDiUK1fO7p5eatu3bx/8/f3h7++P5cuXO/XYer1e8QU8jOrWrYslS5bg4MGDhdN1KyE1NRU+Pj52T2F+B2u/GZR6KHVFP3ToUA4ODlakLmv8+OOPDIDHjx9vUXnjVeSGDRscHFlxmZmZXLduXW7atKlNo3v1ej37+PhwTEyM4rHNmjWLAfAPP/ygaL2XLl1iAPzee++ZLWP8Jbhz505Fj22PyZMns4uLS+HN6rfffpsB8O+//65yZLYLCwvjXr168eTJk9nd3Z2vXLnitGOnpKQwAF60aJFD6tfr9dyhQwf28/PjGzduKFJnVFQUN2jQoNQysOGK/p5P9K1ateJOnTopUpe1Jk2axAB4+/btZZZdvny5U5uYijImNVumJjh79qzD/lhu3brFoaGhXKdOHb5586Zi9f73v/9lAPzbb7+ZLZOdnc2VK1d2yM96W6SkpLCnpyePHDmy8L3MzEyuXLkyP/HEEypGZh9/f3+OiYnhQ4cOOb257Ndff2UA/N133znsGAkJCQyAX3rpJUXqa9OmDXfu3LnUMvdUom/atKldJ4S54Bu1cuXKDrnatER2djY/9NBD7Ofnx3v37i217OjRo9nHx8chc9yU5fbt21y7dm1u0aKF1Vf1xqS5e/duh8S2c+dOBqBo99hZs2axm5sbZ2dnl1pu6tSp7ObmxqmpqYod21YzZ85kFxcXTk5OLvb+Cy+8wK6urvdkd9D8/Hx2cXEpTIINGzbkhx9+2GnHX716NQPgP//806HHGThwIJcvX54vXrxod121atXi4cOHl1rGlkSvWhv9+fPnyy5UhrS0NFy/fl2RBUds4eXlhc2bN8PHxwedOnXC999/b7ZsXFwcHn74YYfMcVMWd3d3zJw5E3/88Qd27Nhh1b6JiYkgIjRq1MghsbVv3x7R0dH44IMPFOuuFh8fj8aNG8PLy6vUcqNHj0ZeXh6WLVumyHFtxcxYs2YNunfvjtq1axfbNmbMGOj1etVHGZuzYcMG1KxZEzVq1EBMTAxu3rxZuC09PR16vR4PPPAAAGDw4MH47bffnLYmq3Fgk6Pv373xxhu4ffu23VOaMzNSU1OVnbWyaOVqPADw1q1b7fjuY/7tt99YiXrsdeHCBW7cuDED4IEDB95xVZacnMwAeN68eSpFWDCAKSgoiCMjI626qo+KiuJ69eo5MDLm69evc7Vq1bhp06Z8+/Ztu+rKy8vjihUr8pgxYywq361bN65Ro4aiPSesdezYMQbAS5cuNbn9scce44CAAM7JyXFyZKVLTExkd3d3btasGQ8ePJiJiKOiogp/tZ46dYoB8KpVq5iZ+eTJkwyA586d65T4Ro4cyTVq1HDKsWJiYtjNzc2uXlKXL19mALxgwYJSy+FearopV64cV69e3a7udcZ276SkJJvrUEpWVhb/5z//4fLly7OHhwfPnDmzsN35lVdeYQB89uxZVWOMjY1lAPzzzz9bvE+9evU4KirKgVEV+OabbxgAv/3223bVc+TIkWLJpSzGpqmvv/7aruPa4+OPP2YAfPr0aZPbt2/fXuZoSTX06dOH/fz8OC0tjZmZ33///WLt8Hv27GEAvGXLlsJ9unbtylWrVuWMjAyHx9euXTunNRWlpaVxQEAAh4eH23zRcPDgQYs+i/dUom/QoAG7uroWu/lkrenTp7OHhwfn5eXZXIfSUlJS+KmnnmIAHBAQwDExMezl5eXU/vPm3Lp1i6tVq8YdOnSwqHxmZiYTEb/++usOjqzA448/zuXKleOTJ0/aXIfxy9/Sdtm8vDyuVauWxefEEZ566imuUqWK2V9a+fn5HBoayq1bt3ZyZOZduHCBiYhffvnlwvf0ej137tyZfX19+cqVK7x169Y7eg3Fx8czEfGkSZMcHmNQUFCZ7d1KWrdunV0XK9u2bbPofphDEj2AFQAuAzhiZnsHAOkADhoesy05cHh4OL/00kt3fONbo2/fvvzQQw/ZtK+j7dq1ix977DEmIg4LC7trbqYZB7D8+uuvZZbdvXs3A+D//ve/ToisIHn4+Phw+/btbb5pHR0dzb6+vlbtP2/ePAZQ5g11R2nUqBH37Nmz1DILFixwyjxJljIuMnPs2LFi7x85coRdXFx42rRphTdDS35xjxkzhl1cXHjXrl0Oiy83N5eJiGfPnu2wY5Sk1+u5f//+7OnpadOv92XLlln0y99Rib4dgOZlJPot1h44PDycc3JyOCwsjKtVq2ZT/1pnjzS1xc2bNxVbnUoJN2/eZJ1Ox927dy+z7KJFi5ze5LR06VIGwJ9++qlN+zdu3Ji7detm1T7p6ens4+PjlCaqkrKzs9nV1bXYlbEp6enp7O3tbdcvYCU9/vjjZsevDBkyhL29vXnGjBkmJxRLT0/nevXqsa+vLyckJDgkPuP9AXtHhVvrr7/+Yjc3N54yZYrV+77++usMoMx7MQ5rugEQ7IhEz1wwI5yHhwd369bNqiaY9PR0JiJ+7bXXLN5HFDAOxImPjy+13OjRo9nX19epX1T5+fncvn179vHxsbrbY1ZWFru4uPArr7xi9XFnzZrFROTwrnglxcfHWzyQ7vnnn2dPT0+nDjoyRa/Xc5UqVXjYsGEmtxvbmgHwAw88YLLMuXPnODg4mCtXrsz79+9XPMYdO3YwAI6Li1O87rIMGTKEK1asyOnp6VbtFxMTw/7+/mWWsyXRK9XXrw0RJRLRd0RkdikXIoomogQiSjCugNSsWTPExsZix44deO211yw+YEJCApgZLVu2tD/6+8zzzz8PPz+/MruDHThwAM2aNXPIgi7muLi44NNPP0VOTg6mTp1q1b6HDh2CXq9HeHi41cedOHEiPD098d5771m9rz0OHDgAoGBB6rKMHTsWubm5qncHTU5Oxt9//43IyEiT25s0aYKePXsCAKpWrWqyTM2aNfHLL7/A29sbvXv3LlwgRMkYAdzRXdUZJkyYgMzMTGzYsMGq/VJTU5WfzMzIkm8DlH5FXwmAt+F5TwCnLKmz6MhYvV7Po0aNYgC8bt06i7795syZwwD46tWrFpUXxRknTzI3qveff/7hcuXK2fQTVAkvv/yy1QO1jL1XbJ0rPCYmhj08PBQZ+GLNMa351dSlSxeuWrVqmYPBHGnVqlUMoNRJ/YxX1AUpxrzExET29/dnb29v/vzzzxWLccaMGap11NDr9RwcHMw9evSwar+IiAiL9oEaTTcmyp4F4F9WuZJTIGRnZ3NkZCS7u7vzpk2byvyP7dq1Kzdq1KjMcsK0nJwcDgkJ4ZCQEJNtgocPH1a1S19mZiZXq1aNW7VqZfGN1WeeeYYfeOABm5uaTp48yUTEM2fOtGl/W3To0IHbtGljcfm4uDgGwB988IEDoyrdmDFjuFKlSqX+f8nLy+MaNWrw+++/X2Z958+f54cffpgB8MiRI+0eS8FcMFo1JCTE7npsNW3aNHZ3d+dr165ZvE9AQAA/++yzZZZTJdEDqAqADM9bAvjL+Lq0h6m5bq5fv84tW7ZkIip10MDt27e5QoUKPHbs2DJPijDP2D/7rbfeumObscfE0aNHVYisgHGOHku/bJo3b85dunSx65hRUVHs6+vrlH7ezMxVq1blp59+2qp9OnfuzFWqVFF0fiBrREZGKt4//Z9//ikcb9KjR4/Cvvm2atGihdU35ZVkvPdi6c3grKwsBsBvvvlmmWUdkugBfAngIoB/AKQAeAZADIAYw/ZxAI4CSASwB0BbSw5sblKzmzdvct++fRkAT5482eRVg3EghqXNPMK83r17s6+v7x0D1yZMmMBeXl6qjlHIz8/n5s2bc3BwMOfm5pZaNjc3l93d3Xn69Ol2HdP42XLGFfONGzcYAL/zzjtW7WccEV7a7JyOYpzN1NKRx9ZasmQJu7u7c/Xq1XnHjh021aHX67lSpUqqXgjq9XquVasW9+rVy6Lyxl/QX331VZllHXZF74hHabNX5uXl8YQJExgAd+vWjf/6669i2+fOncsAnNqWqlX79+9nAHf0N27cuHGZs+g5w/fff88A+OOPPy613L59+yz+QylLu3btOCgoSJEmhNIYr/psGafQtWtX1ul0pS5Q4Qjnzp1jAPzJJ5847Bj79+/nBg0aFF7dz507l7/88ktes2YNr1y5klesWFHqoLrz5887PEZLTJ06ld3d3S0a/W8coV1WTzhmDSV6o8WLF3P58uXZy8uLX3rpJc7IyOD8/Hxu0KABt23btsz9hWUGDBjAFStWLOy2Z5zPfc6cOSpHVnBl9Mgjj3C1atVKbaow9vkvOc+QLbZs2cIAFL05aIrxpuaJEyes3tc4mG3MmDFOnRHVeG4sGXBnj+zsbH7xxRcLE37JBxHxxIkTTf63Gy8O1F5rwPjrcNmyZWWWnT9/PgOwqOus5hI9M/OZM2d4yJAhhVMKPPbYY075I7yfHD16lImIJ0yYwMzMH330EQPgI0eOqBxZAeO84pMnTzZbZtSoUXbdiC0qPz+fw8LCuG7dunzr1i276zNn5syZ7ObmZvMvhylTpjAAbtCgAa9atcrhv0CY/+2t5aglIE25evUqHzt2jE+cOMGnT5/m48ePc0xMDAPg2NhYszGq3SNPr9dzo0aNOCwsrMzP5YQJE9jb29uiz68mE71RfHw8t2vXjl1dXXncuHF31WhTLRg7dmzhVXxAQAC3atVK7ZCKMcZnbhGJsLAwq7uzlcbYPdCRA/L69+/P9evXt3l/vV7P69at40aNGjEAbtq0qU2/DqwxdOhQDgoKcugxLKHX6/nRRx9lLy+vO/6b+/Tpw6GhoSpFVtzKlStL/dwaPfbYY9y4cWOL6tR0oheOdevWLW7ZsiUDYH9/f05MTFQ7pGKys7M5LCyMdTodX7hwodi2zMxMdnFx4f/85z+KHnPw4MHs5uZW6kpV9mjQoAH369fP7nr0ej2vX7+eH3jgAfbx8bFqdlJrNWrUyOIbjI524cIFrly5Mrdq1apwxsi8vDz29/fnESNGqBxdgdzcXK5ZsyaHh4eX2sTWsGFD7tu3r0V12pLo7/nFwYUyypUrh19//RVxcXFOX8TcEl5eXli3bh1u3ryJYcOGIT8/v3Db7t27odfr0bp1a0WPuWjRItSqVQuDBg3C5cuXFa07Ly8PSUlJqF+/vt11EREGDBiAffv2ITAwEH379sWff/6pQJTF3b59G8ePH3fYIjTWql69Oj755BPEx8fj3XffBQD8/vvvSEtLKxyZqzYPDw/MmTMH+/btw+rVq02WycvLw+nTp1GvXj3HBWLtN4NSD7miF7ZYsWIFo8QanVOmTGFPT0+H9Cs/cOAAe3p6cpcuXRS96XnixAkGwJ999plidTIXTKql0+m4fv36ivfIMa77unbtWkXrtdegQYPYzc2Nf/jhB+7Xrx+XL1/e6nlmHCkvL48ffvhhdnd352+//faO7dYOToQ03QitKzpdxv/93/9xXl4eBwYGKto+X5JxRk0l+61v2rTJ4u501vrpp5+YiPipp55S9F7WmjVrypz6QA1paWkcGhpa2CPnbugtVtKNGzc4IiKCPTw87jh/xt5Xlg5OlEQv7gs5OTnctm1b9vT0LBxcZ8nsj7bS6/Xcr18/9vDw4AMHDihSp7FniKOuPGfPns0A+KOPPlKszunTp7O7u7tTevdY6/r16xwbG8vr16+/aztqXL58mf38/Lhdu3bFYhw9ejRXqlTJ4sGJkujFfePKlSvcuXNnBlBsnVJHHq9atWrcoEEDRSYUGz58OAcGBioQmWn5+fnct29fdnV1VazPe48ePSzuGSJMW7x4MQPgL774ovC90NBQq25w25Lo5WasuCf5+/vjhx9+wNWrV7F+/Xq4uDj2o+zv74+VK1fi+PHjmD59ut31HTt2DA899JACkZnm4uKCVatWITg4GIMHD4ZxWnB7HDp06K67SX+vefbZZxEeHo4XXngBmZmZSEpKwsmTJ9GlSxeHHlcSvbhnERH8/PycNl9+t27dMHHiRMTGxmL58uU216PX63H8+HGHJnoA8PHxwfr165GWloaoqCjcunXL5rquXbuGCxcu3DU9bu5Vrq6uiI2NRWpqKl599VWsXbsWANC/f3+HHtfNobULoTHvvvsu/vzzT0RHRyMjIwOTJk2y+ovm/PnzyM7ORoMGDRwU5b+aNWuGVatWYciQIRg6dCjWr18PNzfr/+wPHz4MAHJFr4DWrVtj9OjR+OCDDwAAvXv3Rq1atRx6TEn0QljBw8MDGzZswPDhwzFlyhTk5ubixRdftKqOxMREAEDDhmYXY1OUcRzAhAkTMGnSJMTGxlpdhzHRyxW9MhYsWIAHHngAqampmDt3rsOPJ4leCCtVqFABX3/9NYYNG4aZM2ciMDAQw4YNs3j/vXv3wtXVFc2aNXNglMWNHz8eZ8+exQcffIB27dph4MCBVu1/6NAh+Pn5oXr16g6K8P7i4eHhlARvJG30QtjAxcUFK1asQMeOHfHUU09h3bp1Fu+7Z88eNGrUCOXLl3dghHd6++230bp1azz33HOFa9Va6vDhw2jUqJFT1w8Wyikz0RPRCiK6TERHzGwnIlpARElEdIiIyl7lWAgNKFeuHL799lu0bdsWQ4cOxaZNm8rc59atW/jf//6HDh06ODy+ktzd3fHll1+iYsWKaNOmDZYuXVrQx7oMer0ehw8flvb5e5glV/QrATxayvYeAEIMj2gAi+wPS4h7Q4UKFbB161ZERERg4MCB+Oabb0ot/9NPPyEnJwfdu3d3UoTFBQcH48CBA+jQoQNGjx6NmJgY3L59u9R9zp49i5s3b0r7/D2szETPzLsAXCulSF8Aqw19+fcA8CWiakoFKMTdrlKlSti+fTtatGiBgQMH4pNPPkF2drbJskuWLIFOp0PHjh2dHOW/dDodtm7dipkzZ2Lp0qXo1KkTLl68aLb8wYMHAUiPm3uZEm30NQCcL/I6xfCeEPcNHx8fbN++HZ07d8bYsWPh5+eHJ554Ajt27IBerwcAbNy4EVu2bMGECRPg6emparyurq5488038dVXX2H//v0IDQ3Fa6+9hoyMjDvK7t69G56enmjatKnzAxXKsGT4LIBgAEfMbNsK4OEir38CEG6mbDSABAAJNWvWtGbksBD3hLy8PN6+fTuPGzeO/f39GQDXqVOHH3nkESYijoiIcOiqVbY4efIkR0VFMQD28PDggQMHFltBqlWrVhwZGalegKIYqDQFQgqAoCKvAwGkmvlSWcrMEcwcodPpFDi0EHcXV1dXdOvWDQsXLkRKSgrWrl2LevXqITs7GzNnzsRPP/2EcuXKqR1mMSEhIfj666+xd+9ejBkzBhs3bkSfPn2Qk5ODS5cuYe/evQ4foi8cS4l+9JsBjCOirwC0ApDOzOYb/IS4T3h6emLIkCEYMmSI2qFYpEWLFmjRogXatGmDwYMHY8SIEWjSpAmYGQMGDFA7PGGHMhM9EX0JoAMAfyJKAfAfAO4AwMyLAWwD0BNAEoBsAE87KlghhOMNGjQIKSkpmDZtGtavX49evXohLCxM7bCEHcpM9Mxc6uWIoc1orGIRCSFUN2XKFOh0OiQlJWHy5MlqhyPsJFMgCCHuQEQYMWKE2mEIhcgUCEIIoXGS6IUQQuMk0QshhMZJohdCCI2TRC+EEBoniV4IITROEr0QQmicJHohhNA4SfRCCKFxkuiFEELjJNELIYTGSaIXQgiNk0QvhBAaJ4leCCE0ThK9EEJonEWJnogeJaITRJRERC+a2N6BiNKJ6KDhMVv5UIUQQtjCkqUEXQF8DKArChYC/4OINjPzsRJFf2Xm3g6IUQghhB0suaJvCSCJmZOZ+TaArwD0dWxYQgghlGJJoq8B4HyR1ymG90pqQ0SJRPQdETU0VRERRRNRAhElXLlyxYZwhRBCWMuSRE8m3uMSr/cDqMXMTQAsBLDJVEXMvJSZI5g5QqfTWRWoEEII21iS6FMABBV5HQggtWgBZs5g5izD820A3InIX7EohRBC2MySRP8HgBAiqk1EHgAGA9hctAARVSUiMjxvaaj3qtLBCiGEsF6ZvW6YOY+IxgHYDsAVwApmPkpEMYbtiwEMADCGiPIA3AIwmJlLNu8IIYRQAamVjyMiIjghIUGVYwshxL2KiPYxc4Q1+8jIWCGE0DhJ9EIIoXGS6IUQQuMk0QshhMZJohdCCI2TRC+EEBoniV4IITROEr0QQmicJHohhNA4SfRCCKFxkuiFEELjJNELIYTGSaIXQgiNk0QvhBAaJ4leCCE0ThK9EEJonEWJnogeJaITRJRERC+a2E5EtMCw/RARNVc+VCGEELYoM9ETkSuAjwH0APAQgCFE9FCJYj0AhBge0QAWKRynEEIIG1lyRd8SQBIzJzPzbQBfAehbokxfAKu5wB4AvkRUTeFYhRBC2MCSRF8DwPkir1MM71lbBkQUTUQJRJRw5coVa2MVQghhA0sSPZl4r+SK4paUATMvZeYIZo7Q6XSWxCeEEMJOliT6FABBRV4HAki1oYwQQggVWJLo/wAQQkS1icgDwGAAm0uU2QxghKH3TWsA6cx8UeFYhRBC2MCtrALMnEdE4wBsB+AKYAUzHyWiGMP2xQC2AegJIAlANoCnHReyEEIIa5SZ6AGAmbehIJkXfW9xkecMYKyyoQkhhFCCjIwVQgiNk0QvhBAaJ4leCCE0ThK9EEJoHBXcR1XhwESZAE6ocvC7jz+ANLWDuEvIufiXnIt/ybn414PMXNGaHSzqdeMgJ5g5QsXj3zWIKEHORQE5F/+Sc/EvORf/IqIEa/eRphshhNA4SfRCCKFxaib6pSoe+24j5+Jfci7+JefiX3Iu/mX1uVDtZqwQQgjnkKYbIYTQOEn0QgihcU5L9ER0logOE9FBY/cgIvIjoh+I6JTh38rOikdNZs7FE0R0lIj0RHTfdCMzcy7mEdGfhoXmNxKRr8phOoWZczHHcB4OEtEOIqqudpyOZuo8FNk2jYiYiPzVis+ZzHwmXiWiC4b3DhJRzzLrcVYbPRGdBRDBzGlF3nsXwDVmfpuIXgRQmZlnOCUgFZk5Fw0A6AEsATCNma3uK3svMnMuugH42TBF9jsAcB9/Lioxc4bh+QQADzFzjEohOoWp82B4PwjAMgD1AYSX3K5FZj4TrwLIYub3LK1H7aabvgBWGZ6vAtBPvVDUxczHmVlGCgNg5h3MnGd4uQcFK5bdl4xJ3qACTCzReR/5EMB03N/nwCbOTPQMYAcR7SOiaMN7VYwrURn+DXBiPGoydS7uV2Wdi1EAvnNyTGoxeS6IaC4RnQfwJIDZqkXnPHecByLqA+ACMyeqG5rTmfv7GGdo0lthUZM3MzvlAaC64d8AAIkA2gG4UaLMdWfFo+bD1Lkosm0nCn6qqR7nXXAuXgKwEYYmRq0/SjsXhvdnAnhN7TjVOA8A4gH4GN4/C8Bf7ThVPBdVULDanwuAuShY9a/Uepx2Rc/MqYZ/L6Pgj7clgL+JqBoAGP697Kx41GTmXNyXzJ0LInoKQG8AT7Lhk651Fnwu1gKIcnZczmbiPLQHUBtAoqHNOhDAfiKqqlqQTmLqM8HMfzNzPjPrAXwKC/KHUxI9EVUgoorG5wC6ATiCgkXFnzIUewrAf50Rj5pKORf3HXPngogeBTADQB9mzlYzRmcp5VyEFCnWB8CfasTnLGbOwx/MHMDMwcwcDCAFQHNmvqRiqA5XymeiWpFi/WFB/nDW7JVVAGwkIuMx1zLz90T0B4B1RPQMgL8APOGkeNRk7lz0B7AQgA7AViI6yMzdVYzTGcydiyQAngB+MGzbwxrvaQLz52IDET2Igh5Z5wDcl+dB3ZBUY+4z8TkRNUVB+/1ZAKPLqkimQBBCCI1Tu3ulEEIIB5NEL4QQGieJXgghNE4SvRBCaJwkeiGE0DhJ9EIIoXGS6IUQQuP+H2YzHr8rPm3uAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "import numpy as np\n", "\n", "t = np.arange(0, (len(ppg) / fs), 1.0 / fs)\n", "plt.plot(t, ppg, color = 'black', label='PPG')\n", "plt.xlim([50, 55])" ] }, { "cell_type": "markdown", "id": "94dca660", "metadata": {}, "source": [ "### Compare this to pulse waves from the literature" ] }, { "cell_type": "markdown", "id": "2255ee94", "metadata": {}, "source": [ "- Compare the pulse waves above to the different shapes of pulse waves shown here:" ] }, { "cell_type": "markdown", "id": "ae3177b0", "metadata": {}, "source": [ "![PPG pulse waves](https://upload.wikimedia.org/wikipedia/commons/e/ed/Classes_of_photoplethysmogram_%28PPG%29_pulse_wave_shape.svg)" ] }, { "cell_type": "markdown", "id": "3f9a16af", "metadata": {}, "source": [ "Source: _Charlton PH et al., 'Assessing hemodynamics from the photoplethysmogram to gain insights into vascular age: a review from VascAgeNet', https://doi.org/10.1152/ajpheart.00392.2021 (CC BY 4.0)_" ] }, { "cell_type": "markdown", "id": "e5e21413", "metadata": {}, "source": [ "These pulse waves are the typical shapes for young (class 1) to old (class 4) subjects." ] }, { "cell_type": "markdown", "id": "1f724c93", "metadata": {}, "source": [ "

Question: How do these pulse waves compare to those extracted from the MIMIC Database? Which is most similar?

" ] }, { "cell_type": "code", "execution_count": null, "id": "6136867d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "colab": { "name": "data-exploration.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "306px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }