diff --git a/content/tutorial/notebooks/pulse-wave-analysis.ipynb b/content/tutorial/notebooks/pulse-wave-analysis.ipynb
index 068913b..31cf4b6 100644
--- a/content/tutorial/notebooks/pulse-wave-analysis.ipynb
+++ b/content/tutorial/notebooks/pulse-wave-analysis.ipynb
@@ -1,2028 +1,2166 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "5d037743",
- "metadata": {},
- "source": [
- "# Pulse Wave Analysis\n",
- "In this tutorial we will learn how to extract features from PPG pulse waves.\n",
- "\n",
- "The **objectives** are:\n",
- "- To use a function to detect several fiducial points on PPG pulse waves\n",
- "- To calculate pulse wave features from the fiducial points"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "cd0ac989",
- "metadata": {},
- "source": [
- "
Context: One approach to estimating BP from PPG signals consists of extracting features from PPG pulse waves, and then using these as inputs to BP estimation model. This tutorial covers the first of these steps: extracting features from PPG pulse waves.
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b38ec559",
- "metadata": {},
- "source": [
- " Resource: You can read more about pulse wave analysis in Sections 3.2.2 and 3.2.3 of
this book .
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1afcdef9",
- "metadata": {},
- "source": [
- "---\n",
- "## Setup"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "edd8e0c5",
- "metadata": {},
- "source": [
- "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "ce3cdfde",
- "metadata": {},
- "outputs": [
+ "cells": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Requirement already satisfied: wfdb==4.0.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (4.0.0)\n",
- "Requirement already satisfied: SoundFile<0.12.0,>=0.10.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (0.10.3.post1)\n",
- "Requirement already satisfied: pandas<2.0.0,>=1.0.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (1.2.4)\n",
- "Requirement already satisfied: requests<3.0.0,>=2.8.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (2.25.1)\n",
- "Requirement already satisfied: numpy<2.0.0,>=1.10.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (1.20.1)\n",
- "Requirement already satisfied: matplotlib<4.0.0,>=3.2.2 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (3.3.4)\n",
- "Requirement already satisfied: scipy<2.0.0,>=1.0.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.0.0) (1.6.2)\n",
- "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (2.4.7)\n",
- "Requirement already satisfied: pillow>=6.2.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (8.2.0)\n",
- "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.3.1)\n",
- "Requirement already satisfied: python-dateutil>=2.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (2.8.1)\n",
- "Requirement already satisfied: cycler>=0.10 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (0.10.0)\n",
- "Requirement already satisfied: six in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from cycler>=0.10->matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.15.0)\n",
- "Requirement already satisfied: pytz>=2017.3 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from pandas<2.0.0,>=1.0.0->wfdb==4.0.0) (2021.1)\n",
- "Requirement already satisfied: chardet<5,>=3.0.2 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (4.0.0)\n",
- "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (1.26.4)\n",
- "Requirement already satisfied: idna<3,>=2.5 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2.10)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2022.6.15)\n",
- "Requirement already satisfied: cffi>=1.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (1.14.5)\n",
- "Requirement already satisfied: pycparser in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from cffi>=1.0->SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (2.20)\n"
- ]
- }
- ],
- "source": [
- "import sys\n",
- "import numpy as np\n",
- "import scipy.signal as sp\n",
- "\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "!pip install wfdb==4.0.0\n",
- "import wfdb"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 54,
- "id": "ee8532b2",
- "metadata": {},
- "outputs": [],
- "source": [
- "# MIMIC info\n",
- "database_name = 'mimic4wdb/0.1.0' # The name of the MIMIC IV Waveform Database on Physionet\n",
- "\n",
- "# Segment for analysis\n",
- "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
- "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
- "\n",
- "rel_segment_no = 3 # 3 and 8 are helpful\n",
- "rel_segment_name = segment_names[rel_segment_no]\n",
- "rel_segment_dir = segment_dirs[rel_segment_no]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "61a9432c",
- "metadata": {},
- "source": [
- "---\n",
- "## Extract one minute of PPG signals from this segment"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "09d5a7e2",
- "metadata": {},
- "source": [
- "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 55,
- "id": "7dbf9e3a",
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "id": "5d037743",
+ "metadata": {
+ "id": "5d037743"
+ },
+ "source": [
+ "# Pulse Wave Analysis\n",
+ "In this tutorial we will learn how to extract features from PPG pulse waves.\n",
+ "\n",
+ "Our **objectives** are to:\n",
+ "- Detect several fiducial points on PPG pulse waves\n",
+ "- Calculate pulse wave features from the fiducial points"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Metadata loaded from segment: 82439920_0004\n",
- "20 seconds of data extracted from: 82439920_0004\n",
- "Extracted the PPG signal from column 6 of the matrix of waveform data at 62.5 Hz.\n"
- ]
- }
- ],
- "source": [
- "start_seconds = 100 # time since the start of the segment at which to begin extracting data\n",
- "no_seconds_to_load = 20\n",
- "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
- "print(\"Metadata loaded from segment: {}\".format(rel_segment_name))\n",
- "fs = round(segment_metadata.fs)\n",
- "sampfrom = fs*start_seconds\n",
- "sampto = fs*(start_seconds+no_seconds_to_load)\n",
- "segment_data = wfdb.rdrecord(record_name=rel_segment_name, sampfrom=sampfrom, sampto=sampto, pn_dir=rel_segment_dir) \n",
- "print(\"{} seconds of data extracted from: {}\".format(no_seconds_to_load, rel_segment_name))\n",
- "ppg_col = []\n",
- "for sig_no in range(0,len(segment_data.sig_name)):\n",
- " if \"Pleth\" in segment_data.sig_name[sig_no]:\n",
- " ppg_col = sig_no\n",
- "ppg = segment_data.p_signal[:,ppg_col]\n",
- "fs = segment_data.fs\n",
- "print(\"Extracted the PPG signal from column {} of the matrix of waveform data at {:.1f} Hz.\".format(ppg_col, fs))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3b79a329",
- "metadata": {},
- "source": [
- "---\n",
- "## Filter the PPG signal"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "8679f4d8",
- "metadata": {},
- "source": [
- "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 56,
- "id": "cea96b6f",
- "metadata": {},
- "outputs": [],
- "source": [
- "# package\n",
- "import scipy.signal as sp\n",
- "\n",
- "# filter cut-offs\n",
- "lpf_cutoff = 0.7 # Hz\n",
- "hpf_cutoff = 10 # Hz\n",
- "\n",
- "# create filter\n",
- "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff], btype = 'bp', analog = False, output = 'sos', fs = segment_data.fs)\n",
- "w, h = sp.sosfreqz(sos_filter, 2000, fs = fs)\n",
- "\n",
- "# filter PPG\n",
- "ppg_filt = sp.sosfiltfilt(sos_filter, ppg)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1705ff48",
- "metadata": {},
- "source": [
- "---\n",
- "## Detect beats in the PPG signal"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2b153ea5",
- "metadata": {},
- "source": [
- "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "9fe8c377",
- "metadata": {},
- "source": [
- "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "08b32565",
- "metadata": {},
- "source": [
- "- Detect beats"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 59,
- "id": "506473f0",
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "id": "cd0ac989",
+ "metadata": {
+ "id": "cd0ac989"
+ },
+ "source": [
+ "Context: One approach to estimating BP from PPG signals consists of extracting features from PPG pulse waves, and then using these as inputs to BP estimation model. This tutorial covers the first of these steps: extracting features from PPG pulse waves.
"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Detected 24 beats in the PPG signal using the d2max algorithm\n"
- ]
- }
- ],
- "source": [
- "temp_fs = 125\n",
- "alg = 'd2max'\n",
- "ibis = pulse_detect(ppg_filt,temp_fs,5,alg)\n",
- "print(\"Detected {} beats in the PPG signal using the {} algorithm\".format(len(ibis), alg))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 60,
- "id": "a959595c",
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "id": "b38ec559",
+ "metadata": {
+ "id": "b38ec559"
+ },
+ "source": [
+ "Resource: You can read more about pulse wave analysis in Sections 3.2.2 and 3.2.3 of this book .
"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, 'd2max')"
+ "cell_type": "markdown",
+ "id": "1afcdef9",
+ "metadata": {
+ "id": "1afcdef9"
+ },
+ "source": [
+ "---\n",
+ "## Setup"
]
- },
- "execution_count": 60,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
+ "cell_type": "markdown",
+ "id": "edd8e0c5",
+ "metadata": {
+ "id": "edd8e0c5"
+ },
+ "source": [
+ "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "from matplotlib import pyplot as plt\n",
- "fig, (ax1) = plt.subplots(1, 1, sharex = False, sharey = False, figsize = (8,8))\n",
- "fig.suptitle('IBIs detection') \n",
- "\n",
- "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
- "\n",
- "ax1.plot(t, ppg_filt, color = 'black')\n",
- "ax1.scatter(t[0] + ibis/fs, ppg_filt[ibis], color = 'orange', marker = 'o')\n",
- "ax1.set_ylabel('PPG [V]')\n",
- "ax1.set_title(alg)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1699442c",
- "metadata": {},
- "source": [
- "## Identify fiducial points on pulse waves"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "71c17d51",
- "metadata": {},
- "source": [
- "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "559e4f56",
- "metadata": {},
- "source": [
- "- Identify and visualise fiducial points"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 68,
- "id": "d48a919e",
- "metadata": {},
- "outputs": [
+ },
{
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "ce3cdfde",
+ "metadata": {
+ "id": "ce3cdfde",
+ "outputId": "d96772ad-77a6-46be-ea05-75e29f00585c",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
+ "Collecting wfdb==4.0.0\n",
+ " Downloading wfdb-4.0.0-py3-none-any.whl (161 kB)\n",
+ "\u001b[K |████████████████████████████████| 161 kB 7.6 MB/s \n",
+ "\u001b[?25hRequirement already satisfied: numpy<2.0.0,>=1.10.1 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.21.6)\n",
+ "Requirement already satisfied: pandas<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.3.5)\n",
+ "Requirement already satisfied: matplotlib<4.0.0,>=3.2.2 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (3.2.2)\n",
+ "Requirement already satisfied: scipy<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.4.1)\n",
+ "Requirement already satisfied: requests<3.0.0,>=2.8.1 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (2.23.0)\n",
+ "Requirement already satisfied: SoundFile<0.12.0,>=0.10.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (0.10.3.post1)\n",
+ "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (3.0.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (2.8.2)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (0.11.0)\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.4.3)\n",
+ "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (4.1.1)\n",
+ "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.0.0->wfdb==4.0.0) (2022.1)\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.15.0)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2022.6.15)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2.10)\n",
+ "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (3.0.4)\n",
+ "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (1.24.3)\n",
+ "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.7/dist-packages (from SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (1.15.0)\n",
+ "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.0->SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (2.21)\n",
+ "Installing collected packages: wfdb\n",
+ "Successfully installed wfdb-4.0.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "import sys\n",
+ "import numpy as np\n",
+ "import scipy.signal as sp\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "!pip install wfdb==4.0.0\n",
+ "import wfdb"
]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "fidp = fiducial_points(ppg_filt,ibis,fs,vis = True)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "36bdf3a9",
- "metadata": {},
- "source": [
- "- Note how the data are stored in the variable `fidp`:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 69,
- "id": "da4015c8",
- "metadata": {},
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'a2d': array([ 111, 160, 210, 259, 309, 359, 409, 458, 507, 556, 607,\n",
- " 646, 704, 755, 805, 854, 903, 953, 1003, 1052, 1101, 1150]),\n",
- " 'b2d': array([ 118, 167, 217, 266, 316, 365, 415, 464, 514, 563, 613,\n",
- " 652, 710, 762, 811, 861, 909, 959, 1009, 1058, 1107, 1157]),\n",
- " 'bmag2d': array([-1.20904914, -1.27434528, -1.18617494, -1.25106435, -1.17975974,\n",
- " -1.12447263, -1.3061457 , -1.12799448, -1.18401298, -1.36005387,\n",
- " -1.30485677, -1.26691507, -1.34436591, -1.35381951, -1.10175006,\n",
- " -1.27191046, -1.06948183, -1.23981112, -1.16142864, -1.15492695,\n",
- " -1.18547511, -1.15976755]),\n",
- " 'c2d': array([ 123, 175, 226, 272, 322, 372, 421, 471, 519, 568, 619,\n",
- " 657, 715, 767, 818, 867, 915, 964, 1015, 1067, 1113, 1162]),\n",
- " 'cmag2d': array([-0.05526044, 0.00494062, 0.00941491, 0.07592429, -0.08726073,\n",
- " -0.04180734, 0.02715034, 0.05699838, -0.04395489, 0.12223351,\n",
- " -0.06261118, -0.23006774, 0.02414888, -0.05513966, 0.01296256,\n",
- " 0.05157275, -0.0830145 , 0.05575652, -0.14305034, -0.0055691 ,\n",
- " -0.05237448, -0.09997798]),\n",
- " 'd2d': array([ 125, 175, 226, 275, 324, 373, 424, 474, 521, 572, 621,\n",
- " 659, 718, 769, 820, 870, 917, 967, 1016, 1067, 1115, 1164]),\n",
- " 'dia': array([ 140, 188, 241, 290, 338, 388, 438, 487, 536, 586, 633,\n",
- " 673, 732, 783, 834, 883, 933, 982, 1031, 1081, 1131, 1178]),\n",
- " 'dic': array([ 131, 181, 231, 280, 330, 380, 430, 479, 527, 576, 627,\n",
- " 668, 727, 775, 825, 875, 925, 974, 1024, 1074, 1122, 1170]),\n",
- " 'dmag2d': array([-0.15894175, 0.00494062, 0.00941491, -0.04033107, -0.12765008,\n",
- " -0.05821972, -0.05397396, -0.04063181, -0.13653246, -0.34360707,\n",
- " -0.0918036 , -0.3475212 , -0.19271096, -0.17903953, -0.03945182,\n",
- " -0.11730829, -0.11470973, -0.33752922, -0.15649059, -0.0055691 ,\n",
- " -0.12642557, -0.16601408]),\n",
- " 'e2d': array([ 131, 181, 231, 280, 330, 380, 430, 479, 527, 576, 627,\n",
- " 668, 727, 775, 825, 875, 925, 974, 1024, 1074, 1122, 1170]),\n",
- " 'emag2d': array([0.40770919, 0.46482957, 0.48300358, 0.37208629, 0.44709264,\n",
- " 0.42722916, 0.47149855, 0.41017449, 0.3312905 , 0.52228067,\n",
- " 0.4666926 , 0.50848338, 0.40452346, 0.43939758, 0.42720655,\n",
- " 0.51448892, 0.39003415, 0.39280966, 0.40374007, 0.40753314,\n",
- " 0.33499539, 0.40420094]),\n",
- " 'm1d': array([ 114, 163, 213, 262, 313, 362, 412, 461, 510, 560, 610,\n",
- " 650, 707, 758, 808, 857, 906, 956, 1006, 1055, 1104, 1153]),\n",
- " 'off': array([ 157, 207, 256, 307, 356, 406, 455, 504, 554, 604, 644,\n",
- " 701, 752, 802, 851, 901, 950, 1000, 1049, 1098, 1147, 1197]),\n",
- " 'ons': array([ 108, 157, 207, 256, 307, 356, 406, 455, 504, 554, 604,\n",
- " 644, 701, 752, 802, 851, 901, 950, 1000, 1049, 1098, 1147]),\n",
- " 'p1p': array([ 120, 169, 219, 268, 318, 368, 418, 467, 516, 566, 615,\n",
- " 654, 712, 764, 814, 863, 912, 961, 1011, 1061, 1109, 1159]),\n",
- " 'p2p': array([ 124, 178, 234, 273, 323, 372, 423, 472, 520, 570, 620,\n",
- " 658, 716, 768, 819, 868, 916, 966, 1015, 1077, 1114, 1163]),\n",
- " 'pks': array([ 119, 168, 218, 267, 317, 367, 416, 466, 515, 564, 614,\n",
- " 654, 711, 763, 813, 862, 911, 961, 1011, 1060, 1108, 1158]),\n",
- " 'tip': array([ 111, 160, 210, 259, 309, 359, 409, 458, 507, 556, 607,\n",
- " 646, 704, 755, 805, 854, 903, 953, 1003, 1052, 1101, 1150])}\n"
- ]
- }
- ],
- "source": [
- "from pprint import pprint\n",
- "pprint(fidp)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3ff20391",
- "metadata": {},
- "source": [
- "## Calculate pulse wave features\n",
- "We will now calculate pulse wave features from the amplitudes and timings of the fiducial points on each pulse wave."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "9e261798",
- "metadata": {},
- "source": [
- " Explanation: Pulse wave features can be derived from the differences between the amplitudes (or timings) of fiducial points, as shown below:
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c890808c",
- "metadata": {},
- "source": [
- "![pw indices](https://upload.wikimedia.org/wikipedia/commons/c/cc/Photoplethysmogram_%28PPG%29_pulse_wave_indices.svg)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a8859c02",
- "metadata": {},
- "source": [
- "Source: _Charlton PH, [Photoplethysmogram (PPG) pulse wave indices](https://commons.wikimedia.org/wiki/File:Photoplethysmogram_\\(PPG\\)_pulse_wave_indices.svg), Wikimedia Commons, CC BY 4.0_"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a90b579b",
- "metadata": {},
- "source": [
- "- `fidp` is a dictionary consisting of several arrays (one per fiducial point), with each array containing the indices of that fiducial point for all of the pulse waves. For instance, we can inspect the indices of the dicrotic notches (`dic`) using:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 70,
- "id": "ce142493",
- "metadata": {},
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "ee8532b2",
+ "metadata": {
+ "id": "ee8532b2"
+ },
+ "outputs": [],
+ "source": [
+ "# The name of the MIMIC-IV Waveform Database on PhysioNet\n",
+ "database_name = 'mimic4wdb/0.1.0'\n",
+ "\n",
+ "# Segment for analysis\n",
+ "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
+ "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
+ "\n",
+ "# 3 and 8 are helpful\n",
+ "rel_segment_no = 3\n",
+ "rel_segment_name = segment_names[rel_segment_no]\n",
+ "rel_segment_dir = segment_dirs[rel_segment_no]"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Indices of dicrotic notches:\n",
- "[ 131 181 231 280 330 380 430 479 527 576 627 668 727 775\n",
- " 825 875 925 974 1024 1074 1122 1170]\n"
- ]
- }
- ],
- "source": [
- "print(\"Indices of dicrotic notches:\")\n",
- "print(fidp[\"dic\"])"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "abe3e963",
- "metadata": {},
- "source": [
- "- We'll start off by calculating $\\Delta$T, the time delay between systolic and diastolic peaks (`pks` and `dia`):"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 71,
- "id": "bed1d512",
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "id": "61a9432c",
+ "metadata": {
+ "id": "61a9432c"
+ },
+ "source": [
+ "---\n",
+ "## Extract one minute of PPG signals from this segment"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Values of Delta T:\n",
- "[0.33614791 0.32014086 0.36816199 0.36816199 0.33614791 0.33614791\n",
- " 0.35215495 0.33614791 0.33614791 0.35215495 0.30413382 0.30413382\n",
- " 0.33614791 0.32014086 0.33614791 0.33614791 0.35215495 0.33614791\n",
- " 0.32014086 0.33614791 0.36816199 0.32014086]\n"
- ]
- }
- ],
- "source": [
- "delta_t = np.zeros(len(fidp[\"dia\"]))\n",
- "for beat_no in range(len(fidp[\"dia\"])):\n",
- " delta_t[beat_no] = (fidp[\"dia\"][beat_no]-fidp[\"pks\"][beat_no])/fs\n",
- "print(\"Values of Delta T:\")\n",
- "print(delta_t)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d7c85e24",
- "metadata": {},
- "source": [
- " Explanation: See the figure above for an illustration of how Delta T is calculated.
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "75aebd4f",
- "metadata": {},
- "source": [
- "- Now we'll calculate a second pulse wave feature, the aging index:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 72,
- "id": "75a10857",
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "id": "09d5a7e2",
+ "metadata": {
+ "id": "09d5a7e2"
+ },
+ "source": [
+ "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Values of Aging Index:\n",
- "[-0.02245078 -0.02799722 -0.02702002 -0.02655158 -0.02260101 -0.02323702\n",
- " -0.02802546 -0.02488352 -0.02136646 -0.02658707 -0.02588554 -0.01917339\n",
- " -0.02529637 -0.02495559 -0.02405006 -0.02754274 -0.02019755 -0.02162308\n",
- " -0.02025896 -0.02483208 -0.02147618 -0.02077676]\n"
- ]
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "7dbf9e3a",
+ "metadata": {
+ "id": "7dbf9e3a",
+ "outputId": "5b85a080-658b-448e-a396-0dc5e922d8ec",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Metadata loaded from segment: 82439920_0004\n",
+ "20 seconds of data extracted from: 82439920_0004\n",
+ "Extracted the PPG signal from column 6 of the matrix of waveform data at 62.5 Hz.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# time since the start of the segment at which to begin extracting data\n",
+ "start_seconds = 100\n",
+ "n_seconds_to_load = 20\n",
+ "\n",
+ "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
+ "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n",
+ "\n",
+ "fs = round(segment_metadata.fs)\n",
+ "sampfrom = fs*start_seconds\n",
+ "sampto = fs * (start_seconds + n_seconds_to_load)\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(\"{} seconds of data extracted from: {}\".format(n_seconds_to_load,\n",
+ " rel_segment_name))\n",
+ "\n",
+ "ppg_col = []\n",
+ "for sig_no in range(0, len(segment_data.sig_name)):\n",
+ " if \"Pleth\" in segment_data.sig_name[sig_no]:\n",
+ " ppg_col = sig_no\n",
+ "\n",
+ "ppg = segment_data.p_signal[:, ppg_col]\n",
+ "fs = segment_data.fs\n",
+ "\n",
+ "print(f\"Extracted the PPG signal from column {ppg_col} of the matrix of waveform data at {fs:.1f} Hz.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3b79a329",
+ "metadata": {
+ "id": "3b79a329"
+ },
+ "source": [
+ "---\n",
+ "## Filter the PPG signal"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8679f4d8",
+ "metadata": {
+ "id": "8679f4d8"
+ },
+ "source": [
+ "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "cea96b6f",
+ "metadata": {
+ "id": "cea96b6f"
+ },
+ "outputs": [],
+ "source": [
+ "# package\n",
+ "import scipy.signal as sp\n",
+ "\n",
+ "# filter cut-offs, hertz\n",
+ "lpf_cutoff = 0.7\n",
+ "hpf_cutoff = 10\n",
+ "\n",
+ "# create filter\n",
+ "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
+ " btype = 'bp',\n",
+ " analog = False,\n",
+ " output = 'sos',\n",
+ " fs = segment_data.fs)\n",
+ "\n",
+ "w, h = sp.sosfreqz(sos_filter, 2000, fs = fs)\n",
+ "\n",
+ "# filter PPG\n",
+ "ppg_filt = sp.sosfiltfilt(sos_filter, ppg)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1705ff48",
+ "metadata": {
+ "id": "1705ff48"
+ },
+ "source": [
+ "---\n",
+ "## Detect beats in the PPG signal"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2b153ea5",
+ "metadata": {
+ "id": "2b153ea5"
+ },
+ "source": [
+ "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9fe8c377",
+ "metadata": {
+ "id": "9fe8c377"
+ },
+ "source": [
+ "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial.\n",
+ "- Detect beats"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "506473f0",
+ "metadata": {
+ "id": "506473f0",
+ "outputId": "bc8869cf-76c7-4fca-c113-f186aada165b",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Detected 24 beats in the PPG signal using the d2max algorithm\n"
+ ]
+ }
+ ],
+ "source": [
+ "temp_fs = 125\n",
+ "alg = 'd2max'\n",
+ "ibis = pulse_detect(ppg_filt, temp_fs, 5, alg)\n",
+ "\n",
+ "print(f\"Detected {len(ibis)} beats in the PPG signal using the {alg} algorithm\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "a959595c",
+ "metadata": {
+ "id": "a959595c",
+ "outputId": "256e4451-a70c-45c2-c6d3-818d4db0f315",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 557
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'd2max')"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 11
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "source": [
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "fig, (ax1) = plt.subplots(1, 1,\n",
+ " sharex = False,\n",
+ " sharey = False,\n",
+ " figsize = (8,8))\n",
+ "\n",
+ "fig.suptitle('IBIs detection') \n",
+ "\n",
+ "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
+ "\n",
+ "ax1.plot(t, ppg_filt, color = 'black')\n",
+ "ax1.scatter(t[0] + ibis/fs, ppg_filt[ibis], color = 'orange', marker = 'o')\n",
+ "ax1.set_ylabel('PPG [V]')\n",
+ "ax1.set_title(alg)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1699442c",
+ "metadata": {
+ "id": "1699442c"
+ },
+ "source": [
+ "## Identify fiducial points on pulse waves"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "71c17d51",
+ "metadata": {
+ "id": "71c17d51"
+ },
+ "source": [
+ "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial.\n",
+ "- Identify and visualise fiducial points"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "d48a919e",
+ "metadata": {
+ "id": "d48a919e",
+ "outputId": "a0ea4f4f-e7cc-438d-c69a-7f5f3e6cf629",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 682
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "source": [
+ "fidp = fiducial_points(ppg_filt, ibis, fs, vis = True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "36bdf3a9",
+ "metadata": {
+ "id": "36bdf3a9"
+ },
+ "source": [
+ "- Note how the data are stored in the variable `fidp`:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "da4015c8",
+ "metadata": {
+ "id": "da4015c8",
+ "outputId": "eb7e3028-8f60-4c7c-f487-513ffe000fbe",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "{'a2d': array([ 111, 160, 210, 259, 309, 359, 409, 458, 507, 556, 607,\n",
+ " 646, 704, 755, 805, 854, 903, 953, 1003, 1052, 1101, 1150]),\n",
+ " 'b2d': array([ 118, 167, 217, 266, 316, 365, 415, 464, 514, 563, 613,\n",
+ " 652, 710, 762, 811, 861, 909, 959, 1009, 1058, 1107, 1157]),\n",
+ " 'bmag2d': array([-1.20904914, -1.27434528, -1.18617494, -1.25106435, -1.17975974,\n",
+ " -1.12447263, -1.3061457 , -1.12799448, -1.18401298, -1.36005387,\n",
+ " -1.30485677, -1.26691507, -1.34436591, -1.35381951, -1.10175006,\n",
+ " -1.27191046, -1.06948183, -1.23981112, -1.16142864, -1.15492695,\n",
+ " -1.18547511, -1.15976755]),\n",
+ " 'c2d': array([ 123, 175, 226, 272, 322, 372, 421, 471, 519, 568, 619,\n",
+ " 657, 715, 767, 818, 867, 915, 964, 1015, 1067, 1113, 1162]),\n",
+ " 'cmag2d': array([-0.05526044, 0.00494062, 0.00941491, 0.07592429, -0.08726073,\n",
+ " -0.04180734, 0.02715034, 0.05699838, -0.04395489, 0.12223351,\n",
+ " -0.06261118, -0.23006774, 0.02414888, -0.05513966, 0.01296256,\n",
+ " 0.05157275, -0.0830145 , 0.05575652, -0.14305034, -0.0055691 ,\n",
+ " -0.05237448, -0.09997798]),\n",
+ " 'd2d': array([ 125, 175, 226, 275, 324, 373, 424, 474, 521, 572, 621,\n",
+ " 659, 718, 769, 820, 870, 917, 967, 1016, 1067, 1115, 1164]),\n",
+ " 'dia': array([ 140, 188, 241, 290, 338, 388, 438, 487, 536, 586, 633,\n",
+ " 673, 732, 783, 834, 883, 933, 982, 1031, 1081, 1131, 1178]),\n",
+ " 'dic': array([ 131, 181, 231, 280, 330, 380, 430, 479, 527, 576, 627,\n",
+ " 668, 727, 775, 825, 875, 925, 974, 1024, 1074, 1122, 1170]),\n",
+ " 'dmag2d': array([-0.15894175, 0.00494062, 0.00941491, -0.04033107, -0.12765008,\n",
+ " -0.05821972, -0.05397396, -0.04063181, -0.13653246, -0.34360707,\n",
+ " -0.0918036 , -0.3475212 , -0.19271096, -0.17903953, -0.03945182,\n",
+ " -0.11730829, -0.11470973, -0.33752922, -0.15649059, -0.0055691 ,\n",
+ " -0.12642557, -0.16601408]),\n",
+ " 'e2d': array([ 131, 181, 231, 280, 330, 380, 430, 479, 527, 576, 627,\n",
+ " 668, 727, 775, 825, 875, 925, 974, 1024, 1074, 1122, 1170]),\n",
+ " 'emag2d': array([0.40770919, 0.46482957, 0.48300358, 0.37208629, 0.44709264,\n",
+ " 0.42722916, 0.47149855, 0.41017449, 0.3312905 , 0.52228067,\n",
+ " 0.4666926 , 0.50848338, 0.40452346, 0.43939758, 0.42720655,\n",
+ " 0.51448892, 0.39003415, 0.39280966, 0.40374007, 0.40753314,\n",
+ " 0.33499539, 0.40420094]),\n",
+ " 'm1d': array([ 114, 163, 213, 262, 313, 362, 412, 461, 510, 560, 610,\n",
+ " 650, 707, 758, 808, 857, 906, 956, 1006, 1055, 1104, 1153]),\n",
+ " 'off': array([ 157, 207, 256, 307, 356, 406, 455, 504, 554, 604, 644,\n",
+ " 701, 752, 802, 851, 901, 950, 1000, 1049, 1098, 1147, 1197]),\n",
+ " 'ons': array([ 108, 157, 207, 256, 307, 356, 406, 455, 504, 554, 604,\n",
+ " 644, 701, 752, 802, 851, 901, 950, 1000, 1049, 1098, 1147]),\n",
+ " 'p1p': array([ 120, 169, 219, 268, 318, 368, 418, 467, 516, 566, 615,\n",
+ " 654, 712, 764, 814, 863, 912, 961, 1011, 1061, 1109, 1159]),\n",
+ " 'p2p': array([ 124, 178, 234, 273, 323, 372, 423, 472, 520, 570, 620,\n",
+ " 658, 716, 768, 819, 868, 916, 966, 1015, 1077, 1114, 1163]),\n",
+ " 'pks': array([ 119, 168, 218, 267, 317, 367, 416, 466, 515, 564, 614,\n",
+ " 654, 711, 763, 813, 862, 911, 961, 1011, 1060, 1108, 1158]),\n",
+ " 'tip': array([ 111, 160, 210, 259, 309, 359, 409, 458, 507, 556, 607,\n",
+ " 646, 704, 755, 805, 854, 903, 953, 1003, 1052, 1101, 1150])}\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pprint import pprint\n",
+ "pprint(fidp)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3ff20391",
+ "metadata": {
+ "id": "3ff20391"
+ },
+ "source": [
+ "## Calculate pulse wave features\n",
+ "We will now calculate pulse wave features from the amplitudes and timings of the fiducial points on each pulse wave."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9e261798",
+ "metadata": {
+ "id": "9e261798"
+ },
+ "source": [
+ " Explanation: Pulse wave features can be derived from the differences between the amplitudes (or timings) of fiducial points, as shown below:
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c890808c",
+ "metadata": {
+ "id": "c890808c"
+ },
+ "source": [
+ "![pw indices](https://upload.wikimedia.org/wikipedia/commons/c/cc/Photoplethysmogram_%28PPG%29_pulse_wave_indices.svg)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a8859c02",
+ "metadata": {
+ "id": "a8859c02"
+ },
+ "source": [
+ "Source: _Charlton PH, [Photoplethysmogram (PPG) pulse wave indices](https://commons.wikimedia.org/wiki/File:Photoplethysmogram_\\(PPG\\)_pulse_wave_indices.svg), Wikimedia Commons, CC BY 4.0_"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a90b579b",
+ "metadata": {
+ "id": "a90b579b"
+ },
+ "source": [
+ "- `fidp` is a dictionary consisting of several arrays (one per fiducial point), with each array containing the indices of that fiducial point for all of the pulse waves. For instance, we can inspect the indices of the dicrotic notches (`dic`) using:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "ce142493",
+ "metadata": {
+ "id": "ce142493",
+ "outputId": "69ac0c34-cd5c-438c-b9b0-c1e53da56ac2",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Indices of dicrotic notches:\n",
+ "[ 131 181 231 280 330 380 430 479 527 576 627 668 727 775\n",
+ " 825 875 925 974 1024 1074 1122 1170]\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"Indices of dicrotic notches:\")\n",
+ "print(fidp[\"dic\"])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "abe3e963",
+ "metadata": {
+ "id": "abe3e963"
+ },
+ "source": [
+ "- We'll start off by calculating $\\Delta$T, the time delay between systolic and diastolic peaks (`pks` and `dia`):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "bed1d512",
+ "metadata": {
+ "id": "bed1d512",
+ "outputId": "3d1ccc2d-a530-4cb2-d769-c71fb61f08e3",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Values of Delta T:\n",
+ "[0.33614791 0.32014086 0.36816199 0.36816199 0.33614791 0.33614791\n",
+ " 0.35215495 0.33614791 0.33614791 0.35215495 0.30413382 0.30413382\n",
+ " 0.33614791 0.32014086 0.33614791 0.33614791 0.35215495 0.33614791\n",
+ " 0.32014086 0.33614791 0.36816199 0.32014086]\n"
+ ]
+ }
+ ],
+ "source": [
+ "delta_t = np.zeros(len(fidp[\"dia\"]))\n",
+ "for beat_no in range(len(fidp[\"dia\"])):\n",
+ " delta_t[beat_no] = (fidp[\"dia\"][beat_no]-fidp[\"pks\"][beat_no])/fs\n",
+ "print(\"Values of Delta T:\")\n",
+ "print(delta_t)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d7c85e24",
+ "metadata": {
+ "id": "d7c85e24"
+ },
+ "source": [
+ "Explanation: See the figure above for an illustration of how Delta T is calculated.
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "75aebd4f",
+ "metadata": {
+ "id": "75aebd4f"
+ },
+ "source": [
+ "- Now we'll calculate a second pulse wave feature, the aging index:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "75a10857",
+ "metadata": {
+ "id": "75a10857",
+ "outputId": "f491f4f1-0806-422b-dbf9-0a7d8af8f5c3",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Values of Aging Index:\n",
+ "[-0.02245078 -0.02799722 -0.02702002 -0.02655158 -0.02260101 -0.02323702\n",
+ " -0.02802546 -0.02488352 -0.02136646 -0.02658707 -0.02588554 -0.01917339\n",
+ " -0.02529637 -0.02495559 -0.02405006 -0.02754274 -0.02019755 -0.02162308\n",
+ " -0.02025896 -0.02483208 -0.02147618 -0.02077676]\n"
+ ]
+ }
+ ],
+ "source": [
+ "agi = np.zeros(len(fidp[\"dia\"]))\n",
+ "for beat_no in range(len(fidp[\"dia\"])):\n",
+ " agi[beat_no] = (fidp[\"bmag2d\"][beat_no]-fidp[\"cmag2d\"][beat_no]-fidp[\"dmag2d\"][beat_no]-fidp[\"emag2d\"][beat_no])/fs\n",
+ "print(\"Values of Aging Index:\")\n",
+ "print(agi)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9dc4763b",
+ "metadata": {
+ "id": "9dc4763b"
+ },
+ "source": [
+ "Question: Can you implement any more pulse wave features (e.g. 'CT')?
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c0ad49fc",
+ "metadata": {
+ "id": "c0ad49fc"
+ },
+ "source": [
+ "---\n",
+ "## Beat Detection Functions"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "99852646",
+ "metadata": {
+ "tags": [
+ "hide-input"
+ ],
+ "id": "99852646"
+ },
+ "outputs": [],
+ "source": [
+ "import scipy.signal as sp\n",
+ "import numpy as np\n",
+ "\n",
+ "def pulse_detect(x,fs,w,alg):\n",
+ " \"\"\"\n",
+ " Description: Pulse detection and correction from pulsatile signals\n",
+ " Inputs: x, array with pulsatile signal [user defined units]\n",
+ " fs, sampling rate of signal [Hz]\n",
+ " w, window length for analysis [s]\n",
+ " alg, string with the name of the algorithm to apply ['heartpy','d2max','upslopes','delineator']\n",
+ " Outputs: ibis, location of cardiac cycles as detected by the selected algorithm [number of samples]\n",
+ "\n",
+ " Algorithms: 1: HeartPy (van Gent et al, 2019, DOI: 10.1016/j.trf.2019.09.015)\n",
+ " 2: 2nd derivative maxima (Elgendi et al, 2013, DOI: 10.1371/journal.pone.0076585)\n",
+ " 3: Systolic upslopes (Arguello Prada and Serna Maldonado, 2018,\n",
+ " DOI: 10.1080/03091902.2019.1572237)\n",
+ " 4: Delineator (Li et al, 2010, DOI: 10.1109/TBME.2005.855725)\n",
+ " Fiducial points: 1: Systolic peak (pks)\n",
+ " 2: Onset, as the minimum before the systolic peak (ons)\n",
+ " 3: Onset, using the tangent intersection method (ti)\n",
+ " 4: Diastolic peak (dpk)\n",
+ " 5: Maximum slope (m1d)\n",
+ " 6: a point from second derivative PPG (a2d)\n",
+ " 7: b point from second derivative PPG (b2d)\n",
+ " 8: c point from second derivative PPG (c2d)\n",
+ " 9: d point from second derivative PPG (d2d)\n",
+ " 10: e point from second derivative PPG (e2d)\n",
+ " 11: p1 from the third derivative PPG (p1)\n",
+ " 12: p2 from the third derivative PPG (p2)\n",
+ "\n",
+ " Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
+ "\n",
+ " Version: 1.0 - June 2022\n",
+ "\n",
+ " Developed by: Elisa Mejía-Mejía\n",
+ " City, University of London\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " # Check selected algorithm\n",
+ " pos_alg = ['heartpy','d2max','upslopes','delineator']\n",
+ " if not(alg in pos_alg):\n",
+ " print('Unknown algorithm determined. Using D2max as default')\n",
+ " alg = 'd2max'\n",
+ "\n",
+ " # Pre-processing of signal\n",
+ " x_d = sp.detrend(x)\n",
+ " sos = sp.butter(10, [0.5, 10], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
+ " x_f = sp.sosfiltfilt(sos, x_d)\n",
+ "\n",
+ " # Peak detection in windows of length w\n",
+ " n_int = np.floor(len(x_f)/(w*fs))\n",
+ " for i in range(int(n_int)):\n",
+ " start = i*fs*w\n",
+ " stop = (i + 1)*fs*w - 1\n",
+ " # print('Start: ' + str(start) + ', stop: ' + str(stop) + ', fs: ' + str(fs))\n",
+ " aux = x_f[range(start,stop)]\n",
+ " if alg == 'heartpy':\n",
+ " locs = heartpy(aux,fs,40,180,5)\n",
+ " elif alg == 'd2max':\n",
+ " locs = d2max(aux,fs)\n",
+ " elif alg == 'upslopes':\n",
+ " locs = upslopes(aux)\n",
+ " elif alg == 'delineator':\n",
+ " locs = delineator(aux,fs)\n",
+ " locs = locs + start\n",
+ " if i == 0:\n",
+ " ibis = locs\n",
+ " else:\n",
+ " ibis = np.append(ibis,locs)\n",
+ " if n_int*fs*w != len(x_f):\n",
+ " start = stop + 1\n",
+ " stop = len(x_f)\n",
+ " aux = x_f[range(start,stop)]\n",
+ " if len(aux) > 20:\n",
+ " if alg == 'heartpy':\n",
+ " locs = heartpy(aux,fs,40,180,5)\n",
+ " elif alg == 'd2max':\n",
+ " locs = d2max(aux,fs)\n",
+ " elif alg == 'upslopes':\n",
+ " locs = upslopes(aux)\n",
+ " elif alg == 'delineator':\n",
+ " locs = delineator(aux,fs)\n",
+ " locs = locs + start\n",
+ " ibis = np.append(ibis,locs)\n",
+ " ind, = np.where(ibis <= len(x_f))\n",
+ " ibis = ibis[ind]\n",
+ "\n",
+ " ibis = peak_correction(x,ibis,fs,20,5,[0.5, 1.5])\n",
+ "\n",
+ " #fig = plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.plot(x_d)\n",
+ " #plt.plot(x_f)\n",
+ " #plt.scatter(ibis,x_f[ibis],marker = 'o',color = 'red')\n",
+ " #plt.scatter(ibis,x[ibis],marker = 'o',color = 'red')\n",
+ "\n",
+ " return ibis\n",
+ "\n",
+ "def peak_correction(x,locs,fs,t,stride,th_len):\n",
+ " \"\"\"\n",
+ " Correction of peaks detected from pulsatile signals\n",
+ "\n",
+ " Inputs: x, pulsatile signal [user defined units]\n",
+ " locs, location of the detected interbeat intervals [number of samples]\n",
+ " fs, sampling rate [Hz]\n",
+ " t, duration of intervals for the correction [s]\n",
+ " stride, stride between consecutive intervals for the correction [s]\n",
+ " th_len, array with the percentage of lower and higher thresholds for comparing the duration of IBIs\n",
+ " [proportions]\n",
+ " Outputs: ibis, array with the corrected points related to the start of the inter-beat intervals [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " #fig = plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.scatter(locs,x[locs],marker = 'o',color = 'red', label = 'Original')\n",
+ " #plt.title('Peak correction')\n",
+ "\n",
+ " # Correction of long and short IBIs\n",
+ " len_window = np.round(t*fs)\n",
+ " #print('Window length: ' + str(len_window))\n",
+ " first_i = 0\n",
+ " second_i = len_window - 1\n",
+ " while second_i < len(x):\n",
+ " ind1, = np.where(locs >= first_i)\n",
+ " ind2, = np.where(locs <= second_i)\n",
+ " ind = np.intersect1d(ind1, ind2)\n",
+ "\n",
+ " win = locs[ind]\n",
+ " dif = np.diff(win)\n",
+ " #print('Indices: ' + str(ind) + ', locs: ' + str(locs[ind]) + ', dif: ' + str(dif))\n",
+ "\n",
+ " th_dif = np.zeros(2)\n",
+ " th_dif[0] = th_len[0]*np.median(dif)\n",
+ " th_dif[1] = th_len[1]*np.median(dif)\n",
+ "\n",
+ " th_amp = np.zeros(2)\n",
+ " th_amp[0] = 0.75*np.median(x[win])\n",
+ " th_amp[1] = 1.25*np.median(x[win])\n",
+ " #print('Length thresholds: ' + str(th_dif) + ', amplitude thresholds: ' + str(th_amp))\n",
+ "\n",
+ " j = 0\n",
+ " while j < len(dif):\n",
+ " if dif[j] <= th_dif[0]:\n",
+ " if j == 0:\n",
+ " opt = np.append(win[j], win[j + 1])\n",
+ " else:\n",
+ " opt = np.append(win[j], win[j + 1]) - win[j - 1]\n",
+ " print('Optional: ' + str(opt))\n",
+ " dif_abs = np.abs(opt - np.median(dif))\n",
+ " min_val = np.min(dif_abs)\n",
+ " ind_min, = np.where(dif_abs == min_val)\n",
+ " print('Minimum: ' + str(min_val) + ', index: ' + str(ind_min))\n",
+ " if ind_min == 0:\n",
+ " print('Original window: ' + str(win), end = '')\n",
+ " win = np.delete(win, win[j + 1])\n",
+ " print(', modified window: ' + str(win))\n",
+ " else:\n",
+ " print('Original window: ' + str(win), end = '')\n",
+ " win = np.delete(win, win[j])\n",
+ " print(', modified window: ' + str(win))\n",
+ " dif = np.diff(win)\n",
+ " elif dif[j] >= th_dif[1]:\n",
+ " aux_x = x[win[j]:win[j + 1]]\n",
+ " locs_pks, _ = sp.find_peaks(aux_x)\n",
+ " #fig = plt.figure()\n",
+ " #plt.plot(aux_x)\n",
+ " #plt.scatter(locs_pks,aux_x[locs_pks],marker = 'o',color = 'red')\n",
+ "\n",
+ " locs_pks = locs_pks + win[j]\n",
+ " ind1, = np.where(x[locs_pks] >= th_amp[0])\n",
+ " ind2, = np.where(x[locs_pks] <= th_amp[1])\n",
+ " ind = np.intersect1d(ind1, ind2)\n",
+ " locs_pks = locs_pks[ind]\n",
+ " #print('Locations: ' + str(locs_pks))\n",
+ "\n",
+ " if len(locs_pks) != 0:\n",
+ " opt = locs_pks - win[j]\n",
+ "\n",
+ " dif_abs = np.abs(opt - np.median(dif))\n",
+ " min_val = np.min(dif_abs)\n",
+ " ind_min, = np.where(dif_abs == min_val)\n",
+ "\n",
+ " win = np.append(win, locs_pks[ind_min])\n",
+ " win = np.sort(win)\n",
+ " dif = np.diff(win)\n",
+ " j = j + 1\n",
+ " else:\n",
+ " opt = np.round(win[j] + np.median(dif))\n",
+ " if opt < win[j + 1]:\n",
+ " win = np.append(win, locs_pks[ind_min])\n",
+ " win = np.sort(win)\n",
+ " dif = np.diff(win)\n",
+ " j = j + 1\n",
+ " else:\n",
+ " j = j + 1\n",
+ " else:\n",
+ " j = j + 1\n",
+ "\n",
+ " locs = np.append(win, locs)\n",
+ " locs = np.sort(locs)\n",
+ "\n",
+ " first_i = first_i + stride*fs - 1\n",
+ " second_i = second_i + stride*fs - 1\n",
+ "\n",
+ " dif = np.diff(locs)\n",
+ " dif = np.append(0, dif)\n",
+ " ind, = np.where(dif != 0)\n",
+ " locs = locs[ind]\n",
+ "\n",
+ " #plt.scatter(locs,x[locs],marker = 'o',color = 'green', label = 'After length correction')\n",
+ "\n",
+ " # Correction of points that are not peaks\n",
+ " i = 0\n",
+ " pre_loc = 0\n",
+ " while i < len(locs):\n",
+ " if locs[i] == 0:\n",
+ " locs = np.delete(locs, locs[i])\n",
+ " elif locs[i] == len(x):\n",
+ " locs = np.delete(locs, locs[i])\n",
+ " else:\n",
+ " #print('Previous: ' + str(x[locs[i] - 1]) + ', actual: ' + str(x[locs[i]]) + ', next: ' + str(x[locs[i] + 1]))\n",
+ " cond = (x[locs[i]] >= x[locs[i] - 1]) and (x[locs[i]] >= x[locs[i] + 1])\n",
+ " #print('Condition: ' + str(cond))\n",
+ " if cond:\n",
+ " i = i + 1\n",
+ " else:\n",
+ " if locs[i] == pre_loc:\n",
+ " i = i + 1\n",
+ " else:\n",
+ " if i == 0:\n",
+ " aux = x[0:locs[i + 1] - 1]\n",
+ " aux_loc = locs[i] - 1\n",
+ " aux_start = 0\n",
+ " elif i == len(locs) - 1:\n",
+ " aux = x[locs[i - 1]:len(x) - 1]\n",
+ " aux_loc = locs[i] - locs[i - 1]\n",
+ " aux_start = locs[i - 1]\n",
+ " else:\n",
+ " aux = x[locs[i - 1]:locs[i + 1]]\n",
+ " aux_loc = locs[i] - locs[i - 1]\n",
+ " aux_start = locs[i - 1]\n",
+ " #print('i ' + str(i) + ' out of ' + str(len(locs)) + ', aux length: ' + str(len(aux)) +\n",
+ " # ', location: ' + str(aux_loc))\n",
+ " #print('Locs i - 1: ' + str(locs[i - 1]) + ', locs i: ' + str(locs[i]) + ', locs i + 1: ' + str(locs[i + 1]))\n",
+ "\n",
+ " pre = find_closest_peak(aux, aux_loc, 'backward')\n",
+ " pos = find_closest_peak(aux, aux_loc, 'forward')\n",
+ " #print('Previous: ' + str(pre) + ', next: ' + str(pos) + ', actual: ' + str(aux_loc))\n",
+ "\n",
+ " ibi_pre = np.append(pre - 1, len(aux) - pre)\n",
+ " ibi_pos = np.append(pos - 1, len(aux) - pos)\n",
+ " ibi_act = np.append(aux_loc - 1, len(aux) - aux_loc)\n",
+ " #print('Previous IBIs: ' + str(ibi_pre) + ', next IBIs: ' + str(ibi_pos) +\n",
+ " # ', actual IBIs: ' + str(ibi_act))\n",
+ "\n",
+ " dif_pre = np.abs(ibi_pre - np.mean(np.diff(locs)))\n",
+ " dif_pos = np.abs(ibi_pos - np.mean(np.diff(locs)))\n",
+ " dif_act = np.abs(ibi_act - np.mean(np.diff(locs)))\n",
+ " #print('Previous DIF: ' + str(dif_pre) + ', next DIF: ' + str(dif_pos) +\n",
+ " # ', actual DIF: ' + str(dif_act))\n",
+ "\n",
+ " avgs = [np.mean(dif_pre), np.mean(dif_pos), np.mean(dif_act)]\n",
+ " min_avg = np.min(avgs)\n",
+ " ind, = np.where(min_avg == avgs)\n",
+ " #print('Averages: ' + str(avgs) + ', min index: ' + str(ind))\n",
+ " if len(ind) != 0:\n",
+ " ind = ind[0]\n",
+ "\n",
+ " if ind == 0:\n",
+ " locs[i] = pre + aux_start - 1\n",
+ " elif ind == 1:\n",
+ " locs[i] = pos + aux_start - 1\n",
+ " elif ind == 2:\n",
+ " locs[i] = aux_loc + aux_start - 1\n",
+ " i = i + 1\n",
+ "\n",
+ " #plt.scatter(locs,x[locs],marker = 'o',color = 'yellow', label = 'After not-peak correction')\n",
+ "\n",
+ " # Correction of peaks according to amplitude\n",
+ " len_window = np.round(t*fs)\n",
+ " #print('Window length: ' + str(len_window))\n",
+ " keep = np.empty(0)\n",
+ " first_i = 0\n",
+ " second_i = len_window - 1\n",
+ " while second_i < len(x):\n",
+ " ind1, = np.where(locs >= first_i)\n",
+ " ind2, = np.where(locs <= second_i)\n",
+ " ind = np.intersect1d(ind1, ind2)\n",
+ " win = locs[ind]\n",
+ " if np.median(x[win]) > 0:\n",
+ " th_amp_low = 0.5*np.median(x[win])\n",
+ " th_amp_high = 3*np.median(x[win])\n",
+ " else:\n",
+ " th_amp_low = -3*np.median(x[win])\n",
+ " th_amp_high = 1.5*np.median(x[win])\n",
+ " ind1, = np.where(x[win] >= th_amp_low)\n",
+ " ind2, = np.where(x[win] <= th_amp_high)\n",
+ " aux_keep = np.intersect1d(ind1,ind2)\n",
+ " keep = np.append(keep, aux_keep)\n",
+ "\n",
+ " first_i = second_i + 1\n",
+ " second_i = second_i + stride*fs - 1\n",
+ "\n",
+ " if len(keep) != 0:\n",
+ " keep = np.unique(keep)\n",
+ " locs = locs[keep.astype(int)]\n",
+ "\n",
+ " #plt.scatter(locs,x[locs],marker = 'o',color = 'purple', label = 'After amplitude correction')\n",
+ " #plt.legend()\n",
+ "\n",
+ " return locs\n",
+ "\n",
+ "def find_closest_peak(x, loc, dir_search):\n",
+ " \"\"\"\n",
+ " Finds the closest peak to the initial location in x\n",
+ "\n",
+ " Inputs: x, signal of interest [user defined units]\n",
+ " loc, initial location [number of samples]\n",
+ " dir_search, direction of search ['backward','forward']\n",
+ " Outputs: pos, location of the first peak detected in specified direction [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " pos = -1\n",
+ " if dir_search == 'backward':\n",
+ " i = loc - 2\n",
+ " while i > 0:\n",
+ " if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
+ " pos = i\n",
+ " i = 0\n",
+ " else:\n",
+ " i = i - 1\n",
+ " if pos == -1:\n",
+ " pos = loc\n",
+ " elif dir_search == 'forward':\n",
+ " i = loc + 1\n",
+ " while i < len(x) - 1:\n",
+ " if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
+ " pos = i\n",
+ " i = len(x)\n",
+ " else:\n",
+ " i = i + 1\n",
+ " if pos == -1:\n",
+ " pos = loc\n",
+ "\n",
+ " return pos\n",
+ "\n",
+ "def seek_local(x, start, end):\n",
+ " val_min = x[start]\n",
+ " val_max = x[start]\n",
+ "\n",
+ " ind_min = start\n",
+ " ind_max = start\n",
+ "\n",
+ " for j in range(start, end):\n",
+ " if x[j] > val_max:\n",
+ " val_max = x[j]\n",
+ " ind_max = j\n",
+ " elif x[j] < val_min:\n",
+ " val_min = x[j]\n",
+ " ind_min = j\n",
+ "\n",
+ " return val_min, ind_min, val_max, ind_max\n",
+ "\n",
+ "def heartpy(x, fs, min_ihr, max_ihr, w):\n",
+ " \"\"\"\n",
+ " Detects inter-beat intervals using HeartPy\n",
+ " Citation: van Gent P, Farah H, van Nes N, van Arem B (2019) Heartpy: A novel heart rate algorithm\n",
+ " for the analysis of noisy signals. Transp Res Part F, vol. 66, pp. 368-378. DOI: 10.1016/j.trf.2019.09.015\n",
+ "\n",
+ " Inputs: x, pulsatile signal [user defined units]\n",
+ " fs, sampling rate [Hz]\n",
+ " min_ihr, minimum value of instantaneous heart rate to be accepted [bpm]\n",
+ " max_ihr, maximum value of instantaneous heart rate to be accepted [bpm]\n",
+ " w, length of segments for correction of peaks [s]\n",
+ " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " # Identification of peaks\n",
+ " is_roi = 0\n",
+ " n_rois = 0\n",
+ " pos_pks = np.empty(0).astype(int)\n",
+ " locs = np.empty(0).astype(int)\n",
+ "\n",
+ " len_ma = int(np.round(0.75*fs))\n",
+ " #print(len_ma)\n",
+ " sig = np.append(x[0]*np.ones(len_ma), x)\n",
+ " sig = np.append(sig, x[-1]*np.ones(len_ma))\n",
+ "\n",
+ " i = len_ma\n",
+ " while i < len(sig) - len_ma:\n",
+ " ma = np.mean(sig[i - len_ma:i + len_ma - 1])\n",
+ " #print(len(sig[i - len_ma:i + len_ma - 1]),ma)\n",
+ "\n",
+ " # If it is the beginning of a new ROI:\n",
+ " if is_roi == 0 and sig[i] >= ma:\n",
+ " is_roi = 1\n",
+ " n_rois = n_rois + 1\n",
+ " #print('New ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
+ " # If it is a peak:\n",
+ " if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
+ " pos_pks = np.append(pos_pks, int(i))\n",
+ " #print('Possible peaks: ' + str(pos_pks))\n",
+ "\n",
+ " # If it is part of a ROI which is not over:\n",
+ " elif is_roi == 1 and sig[i] > ma:\n",
+ " #print('Actual ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
+ " # If it is a peak:\n",
+ " if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
+ " pos_pks = np.append(pos_pks, int(i))\n",
+ " #print('Possible peaks: ' + str(pos_pks))\n",
+ "\n",
+ " # If the ROI is over or the end of the signal has been reached:\n",
+ " elif is_roi == 1 and (sig[i] < ma or i == (len(sig) - len_ma)):\n",
+ " #print('End of ROI ---' + str(n_rois) + ' @ ' + str(i) + '. Pos pks: ' + str(pos_pks))\n",
+ " is_roi = 0 # Lowers flag\n",
+ "\n",
+ " # If it is the end of the first ROI:\n",
+ " if n_rois == 1:\n",
+ " # If at least one peak has been found:\n",
+ " if len(pos_pks) != 0:\n",
+ " # Determines the location of the maximum peak:\n",
+ " max_pk = np.max(sig[pos_pks])\n",
+ " ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
+ " #print('First ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
+ " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
+ " # The maximum peak is added to the list:\n",
+ " locs = np.append(locs, pos_pks[ind])\n",
+ " #print('Locations: ' + str(locs))\n",
+ " # If no peak was found:\n",
+ " else:\n",
+ " # Counter for ROIs is reset to previous value:\n",
+ " n_rois = n_rois - 1\n",
+ "\n",
+ " # If it is the end of the second ROI:\n",
+ " elif n_rois == 2:\n",
+ " # If at least one peak has been found:\n",
+ " if len(pos_pks) != 0:\n",
+ " # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
+ " ihr = 60/((pos_pks - locs[-1])/fs)\n",
+ " good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
+ " #print('Second ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
+ " # ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
+ " pos_pks = pos_pks[good_ihr].astype(int)\n",
+ "\n",
+ " # If at least one peak is between HR limits:\n",
+ " if len(pos_pks) != 0:\n",
+ " # Determines the location of the maximum peak:\n",
+ " max_pk = np.max(sig[pos_pks])\n",
+ " ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
+ " #print('Second ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
+ " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
+ " # The maximum peak is added to the list:\n",
+ " locs = np.append(locs, pos_pks[ind])\n",
+ " #print('Locations: ' + str(locs))\n",
+ " # If no peak was found:\n",
+ " else:\n",
+ " # Counter for ROIs is reset to previous value:\n",
+ " n_rois = n_rois - 1\n",
+ "\n",
+ " # If it is the end of the any further ROI:\n",
+ " else:\n",
+ " # If at least one peak has been found:\n",
+ " if len(pos_pks) != 0:\n",
+ " # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
+ " ihr = 60/((pos_pks - locs[-1])/fs)\n",
+ " good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
+ " #print('Third ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
+ " # ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
+ " pos_pks = pos_pks[good_ihr].astype(int)\n",
+ "\n",
+ " # If at least one peak is between HR limits:\n",
+ " if len(pos_pks) != 0:\n",
+ " # Calculates SDNN with the possible peaks on the ROI:\n",
+ " sdnn = np.zeros(len(pos_pks))\n",
+ " for j in range(len(pos_pks)):\n",
+ " sdnn[j] = np.std(np.append(locs/fs, pos_pks[j]/fs))\n",
+ " # Determines the new peak as that one with the lowest SDNN:\n",
+ " min_pk = np.min(sdnn)\n",
+ " ind, = np.where(min_pk == np.min(sdnn))\n",
+ " #print('Third ROI: (1) Min SDNN Peak: ' + str(min_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
+ " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
+ " locs = np.append(locs, pos_pks[ind])\n",
+ " #print('Locations: ' + str(locs))\n",
+ " # If no peak was found:\n",
+ " else:\n",
+ " # Counter for ROIs is reset to previous value:\n",
+ " n_rois = n_rois - 1\n",
+ "\n",
+ " # Resets possible peaks for next ROI:\n",
+ " pos_pks = np.empty(0)\n",
+ "\n",
+ " i = i + 1;\n",
+ "\n",
+ " locs = locs - len_ma\n",
+ "\n",
+ " # Correction of peaks\n",
+ " c_locs = np.empty(0)\n",
+ " n_int = np.floor(len(x)/(w*fs))\n",
+ " for i in range(int(n_int)):\n",
+ " ind1, = np.where(locs >= i*w*fs)\n",
+ " #print('Locs >= ' + str((i)*w*fs) + ': ' + str(locs[ind1]))\n",
+ " ind2, = np.where(locs < (i + 1)*w*fs)\n",
+ " #print('Locs < ' + str((i + 1)*w*fs) + ': ' + str(locs[ind2]))\n",
+ " ind = np.intersect1d(ind1, ind2)\n",
+ " #print('Larger and lower than locs: ' + str(locs[ind]))\n",
+ " int_locs = locs[ind]\n",
+ "\n",
+ " if i == 0:\n",
+ " aux_ibis = np.diff(int_locs)\n",
+ " else:\n",
+ " ind, = np.where(locs >= i*w*fs)\n",
+ " last = locs[ind[0] - 1]\n",
+ " aux_ibis = np.diff(np.append(last, int_locs))\n",
+ " avg_ibis = np.mean(aux_ibis)\n",
+ " th = np.append((avg_ibis - 0.3*avg_ibis), (avg_ibis + 0.3*avg_ibis))\n",
+ " ind1, = np.where(aux_ibis > th[0])\n",
+ " #print('Ind1: ' + str(ind1))\n",
+ " ind2, = np.where(aux_ibis < th[1])\n",
+ " #print('Ind2: ' + str(ind2))\n",
+ " ind = np.intersect1d(ind1, ind2)\n",
+ " #print('Ind: ' + str(ind))\n",
+ "\n",
+ " c_locs = np.append(c_locs, int_locs[ind]).astype(int)\n",
+ " print(c_locs)\n",
+ "\n",
+ " #fig = plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.plot(sig)\n",
+ " #plt.scatter(locs,x[locs],marker = 'o',color = 'red')\n",
+ " #if len(c_locs) != 0:\n",
+ " #plt.scatter(c_locs,x[c_locs],marker = 'o',color = 'blue')\n",
+ "\n",
+ " if len(c_locs) != 0:\n",
+ " ibis = c_locs\n",
+ " else:\n",
+ " ibis = locs\n",
+ "\n",
+ " return ibis\n",
+ "\n",
+ "def d2max(x, fs):\n",
+ " \"\"\"\n",
+ " Detects inter-beat intervals using D2Max\n",
+ " Citation: Elgendi M, Norton I, Brearley M, Abbott D, Schuurmans D (2013) Systolic Peak Detection in Acceleration\n",
+ " Photoplethysmograms Measured from Emergency Responders in Tropical Conditions. PLoS ONE, vol. 8, no. 10,\n",
+ " pp. e76585. DOI: 10.1371/journal.pone.0076585\n",
+ "\n",
+ " Inputs: x, pulsatile signal [user defined units]\n",
+ " fs, sampling rate [Hz]\n",
+ " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " # Bandpass filter\n",
+ " if len(x) < 4098:\n",
+ " z_fill = np.zeros(4098 - len(x) + 1)\n",
+ " x_z = np.append(x, z_fill)\n",
+ " sos = sp.butter(10, [0.5, 8], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
+ " x_f = sp.sosfiltfilt(sos, x_z)\n",
+ "\n",
+ " # Signal clipping\n",
+ " ind, = np.where(x_f < 0)\n",
+ " x_c = x_f\n",
+ " x_c[ind] = 0\n",
+ "\n",
+ " # Signal squaring\n",
+ " x_s = x_c**2\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.plot(x_z)\n",
+ " #plt.plot(x_f)\n",
+ " #plt.plot(x_c)\n",
+ " #plt.plot(x_s)\n",
+ "\n",
+ " # Blocks of interest\n",
+ " w1 = (111e-3)*fs\n",
+ " w1 = int(2*np.floor(w1/2) + 1)\n",
+ " b = (1/w1)*np.ones(w1)\n",
+ " ma_pk = sp.filtfilt(b,1,x_s)\n",
+ "\n",
+ " w2 = (667e-3)*fs\n",
+ " w2 = int(2*np.floor(w2/2) + 1)\n",
+ " b = (1/w2)*np.ones(w1)\n",
+ " ma_bpm = sp.filtfilt(b,1,x_s)\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_s/np.max(x_s))\n",
+ " #plt.plot(ma_pk/np.max(ma_pk))\n",
+ " #plt.plot(ma_bpm/np.max(ma_bpm))\n",
+ "\n",
+ " # Thresholding\n",
+ " alpha = 0.02*np.mean(ma_pk)\n",
+ " th_1 = ma_bpm + alpha\n",
+ " th_2 = w1\n",
+ " boi = (ma_pk > th_1).astype(int)\n",
+ "\n",
+ " blocks_init, = np.where(np.diff(boi) > 0)\n",
+ " blocks_init = blocks_init + 1\n",
+ " blocks_end, = np.where(np.diff(boi) < 0)\n",
+ " blocks_end = blocks_end + 1\n",
+ " if blocks_init[0] > blocks_end[0]:\n",
+ " blocks_init = np.append(1, blocks_init)\n",
+ " if blocks_init[-1] > blocks_end[-1]:\n",
+ " blocks_end = np.append(blocks_end, len(x_s))\n",
+ " #print('Initial locs BOI: ' + str(blocks_init))\n",
+ " #print('Final locs BOI: ' + str(blocks_end))\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_s[range(len(x))]/np.max(x_s))\n",
+ " #plt.plot(boi[range(len(x))])\n",
+ "\n",
+ " # Search for peaks inside BOIs\n",
+ " len_blks = np.zeros(len(blocks_init))\n",
+ " ibis = np.zeros(len(blocks_init))\n",
+ " for i in range(len(blocks_init)):\n",
+ " ind, = np.where(blocks_end > blocks_init[i])\n",
+ " ind = ind[0]\n",
+ " len_blks[i] = blocks_end[ind] - blocks_init[i]\n",
+ " if len_blks[i] >= th_2:\n",
+ " aux = x[blocks_init[i]:blocks_end[ind]]\n",
+ " if len(aux) != 0:\n",
+ " max_val = np.max(aux)\n",
+ " max_ind, = np.where(max_val == aux)\n",
+ " ibis[i] = max_ind + blocks_init[i] - 1\n",
+ "\n",
+ " ind, = np.where(len_blks < th_2)\n",
+ " if len(ind) != 0:\n",
+ " for i in range(len(ind)):\n",
+ " boi[blocks_init[i]:blocks_end[i]] = 0\n",
+ " ind, = np.where(ibis == 0)\n",
+ " ibis = (np.delete(ibis, ind)).astype(int)\n",
+ "\n",
+ " #plt.plot(boi[range(len(x))])\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
+ "\n",
+ " return ibis\n",
+ "\n",
+ "def upslopes(x):\n",
+ " \"\"\"\n",
+ " Detects inter-beat intervals using Upslopes\n",
+ " Citation: Arguello Prada EJ, Serna Maldonado RD (2018) A novel and low-complexity peak detection algorithm for\n",
+ " heart rate estimation from low-amplitude photoplethysmographic (PPG) signals. J Med Eng Technol, vol. 42,\n",
+ " no. 8, pp. 569-577. DOI: 10.1080/03091902.2019.1572237\n",
+ "\n",
+ " Inputs: x, pulsatile signal [user defined units]\n",
+ " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " # Peak detection\n",
+ " th = 6\n",
+ " pks = np.empty(0)\n",
+ " pos_pk = np.empty(0)\n",
+ " pos_pk_b = 0\n",
+ " n_pos_pk = 0\n",
+ " n_up = 0\n",
+ "\n",
+ " for i in range(1, len(x)):\n",
+ " if x[i] > x[i - 1]:\n",
+ " n_up = n_up + 1\n",
+ " else:\n",
+ " if n_up > th:\n",
+ " pos_pk = np.append(pos_pk, i)\n",
+ " pos_pk_b = 1\n",
+ " n_pos_pk = n_pos_pk + 1\n",
+ " n_up_pre = n_up\n",
+ " else:\n",
+ " pos_pk = pos_pk.astype(int)\n",
+ " #print('Possible peaks: ' + str(pos_pk) + ', number of peaks: ' + str(n_pos_pk))\n",
+ " if pos_pk_b == 1:\n",
+ " if x[i - 1] > x[pos_pk[n_pos_pk - 1]]:\n",
+ " pos_pk[n_pos_pk - 1] = i - 1\n",
+ " else:\n",
+ " pks = np.append(pks, pos_pk[n_pos_pk - 1])\n",
+ " th = 0.6*n_up_pre\n",
+ " pos_pk_b = 0\n",
+ " n_up = 0\n",
+ " ibis = pks.astype(int)\n",
+ " #print(ibis)\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
+ "\n",
+ " return ibis\n",
+ "\n",
+ "def delineator(x, fs):\n",
+ " \"\"\"\n",
+ " Detects inter-beat intervals using Delineator\n",
+ " Citation: Li BN, Dong MC, Vai MI (2010) On an automatic delineator for arterial blood pressure waveforms. Biomed\n",
+ " Signal Process Control, vol. 5, no. 1, pp. 76-81. DOI: 10.1016/j.bspc.2009.06.002\n",
+ "\n",
+ " Inputs: x, pulsatile signal [user defined units]\n",
+ " fs, sampling rate [Hz]\n",
+ " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
+ "\n",
+ " Developed by: Elisa Mejía Mejía\n",
+ " City, University of London\n",
+ " Version: 1.0 - June, 2022\n",
+ "\n",
+ " \"\"\"\n",
+ "\n",
+ " # Lowpass filter\n",
+ " od = 3\n",
+ " sos = sp.butter(od, 25, btype = 'low', analog = False, output = 'sos', fs = fs)\n",
+ " x_f = sp.sosfiltfilt(sos, x)\n",
+ " x_m = 1000*x_f\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x)\n",
+ " #plt.plot(x_f)\n",
+ " #plt.plot(x_m)\n",
+ "\n",
+ " # Moving average\n",
+ " n = 5\n",
+ " b = (1/n)*np.ones(n)\n",
+ " x_ma = sp.filtfilt(b,1,x_m)\n",
+ "\n",
+ " # Compute differentials\n",
+ " dif = np.diff(x_ma)\n",
+ " dif = 100*np.append(dif[0], dif)\n",
+ " dif_ma = sp.filtfilt(b,1,dif)\n",
+ "\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_ma)\n",
+ " #plt.plot(dif_ma)\n",
+ "\n",
+ " # Average thresholds in original signal\n",
+ " x_len = len(x)\n",
+ " if x_len > 12*fs:\n",
+ " n = 10\n",
+ " elif x_len > 7*fs:\n",
+ " n = 5\n",
+ " elif x_len > 4*fs:\n",
+ " n = 2\n",
+ " else:\n",
+ " n = 1\n",
+ " #print(n)\n",
+ "\n",
+ " max_min = np.empty(0)\n",
+ " if n > 1:\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_ma)\n",
+ " n_int = np.floor(x_len/(n + 2))\n",
+ " #print('Length of intervals: ' + str(n_int))\n",
+ " for j in range(n):\n",
+ " # Searches for max and min in 1 s intervals\n",
+ " amp_min, ind_min, amp_max, ind_max = seek_local(x_ma, int(j*n_int), int(j*n_int + fs))\n",
+ " #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
+ " #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
+ " max_min = np.append(max_min, (amp_max - amp_min))\n",
+ " max_min_avg = np.mean(max_min)\n",
+ " #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
+ " else:\n",
+ " amp_min, ind_min , amp_max, ind_max = seek_local(x_ma, int(close_win), int(x_len))\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_ma)\n",
+ " #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
+ " #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
+ " max_min_avg = amp_max - amp_min\n",
+ " #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
+ "\n",
+ " max_min_lt = 0.4*max_min_avg\n",
+ "\n",
+ " # Seek pulse beats by min-max method\n",
+ " step_win = 2*fs # Window length to look for peaks/onsets\n",
+ " close_win = np.floor(0.1*fs)\n",
+ " # Value of what is considered too close\n",
+ "\n",
+ " pks = np.empty(0) # Location of peaks\n",
+ " ons = np.empty(0) # Location of onsets\n",
+ " dic = np.empty(0) # Location of dicrotic notches\n",
+ "\n",
+ " pk_index = -1 # Number of peaks found\n",
+ " on_index = -1 # Number of onsets found\n",
+ " dn_index = -1 # Number of dicrotic notches found\n",
+ "\n",
+ " i = int(close_win) # Initializes counter\n",
+ " while i < x_len: # Iterates through the signal\n",
+ " #print('i: ' + str(i))\n",
+ " amp_min = x_ma[i] # Gets the initial value for the minimum amplitude\n",
+ " amp_max = x_ma[i] # Gets the initial value for the maximum amplitude\n",
+ "\n",
+ " ind = i # Initializes the temporal location of the index\n",
+ " aux_pks = i # Initializes the temporal location of the peak\n",
+ " aux_ons = i # Initializes the temporal location of the onset\n",
+ "\n",
+ " # Iterates while ind is lower than the length of the signal\n",
+ " while ind < x_len - 1:\n",
+ " #print('Ind: ' + str(ind))\n",
+ " # Verifies if no peak has been found in 2 seconds\n",
+ " if (ind - i) > step_win:\n",
+ " #print('Peak not found in 2 s')\n",
+ " ind = i # Refreshes the temporal location of the index\n",
+ " max_min_avg = 0.6*max_min_avg # Refreshes the threshold for the amplitude\n",
+ " # Verifies if the threshold is lower than the lower limit\n",
+ " if max_min_avg <= max_min_lt:\n",
+ " max_min_avg = 2.5*max_min_lt # Refreshes the threshold\n",
+ " break\n",
+ "\n",
+ " # Verifies if the location is a candidate peak\n",
+ " if (dif_ma[ind - 1]*dif_ma[ind + 1]) <= 0:\n",
+ " #print('There is a candidate peak')\n",
+ " # Determines initial and end points of a window to search for local peaks and onsets\n",
+ " if (ind + 5) < x_len:\n",
+ " i_stop = ind + 5\n",
+ " else:\n",
+ " i_stop = x_len - 1\n",
+ " if (ind - 5) >= 0:\n",
+ " i_start = ind - 5\n",
+ " else:\n",
+ " i_start = 0\n",
+ "\n",
+ " # Checks for artifacts of saturated or signal loss\n",
+ " if (i_stop - ind) >= 5:\n",
+ " for j in range(ind, i_stop):\n",
+ " if dif_ma[j] != 0:\n",
+ " break\n",
+ " if j == i_stop:\n",
+ " #print('Artifact')\n",
+ " break\n",
+ "\n",
+ " # Candidate onset\n",
+ " #print('Looking for candidate onsets...')\n",
+ " #plt.figure()\n",
+ " #plt.plot(x_ma)\n",
+ " if dif_ma[i_start] < 0:\n",
+ " if dif_ma[i_stop] > 0:\n",
+ " aux_min, ind_min, _, _ = seek_local(x_ma, int(i_start), int(i_stop))\n",
+ " #plt.scatter(ind_min, aux_min, marker = 'o', color = 'red')\n",
+ " if np.abs(ind_min - ind) <= 2:\n",
+ " amp_min = aux_min\n",
+ " aux_ons = ind_min\n",
+ " #print('Candidate onset: ' + str([ind_min, amp_min]))\n",
+ " # Candidate peak\n",
+ " #print('Looking for candidate peaks...')\n",
+ " if dif_ma[i_start] > 0:\n",
+ " if dif_ma[i_stop] < 0:\n",
+ " _, _, aux_max, ind_max = seek_local(x_ma, int(i_start), int(i_stop))\n",
+ " #plt.scatter(ind_max, aux_max, marker = 'o', color = 'green')\n",
+ " if np.abs(ind_max - ind) <= 2:\n",
+ " amp_max = aux_max\n",
+ " aux_pks = ind_max\n",
+ " #print('Candidate peak: ' + str([ind_max, amp_max]))\n",
+ " # Verifies if the amplitude of the pulse is larger than 0.4 times the mean value:\n",
+ " #print('Pulse amplitude: ' + str(amp_max - amp_min) + ', thresholds: ' +\n",
+ " # str([0.4*max_min_avg, 2*max_min_avg]))\n",
+ " if (amp_max - amp_min) > 0.4*max_min_avg:\n",
+ " #print('Expected amplitude of pulse')\n",
+ " # Verifies if the amplitude of the pulse is lower than 2 times the mean value:\n",
+ " if (amp_max - amp_min) < 2*max_min_avg:\n",
+ " #print('Expected duration of pulse')\n",
+ " if aux_pks > aux_ons:\n",
+ " #print('Refining onsets...')\n",
+ " # Refine onsets:\n",
+ " aux_min = x_ma[aux_ons]\n",
+ " temp_ons = aux_ons\n",
+ " for j in range(aux_pks, aux_ons + 1, -1):\n",
+ " if x_ma[j] < aux_min:\n",
+ " aux_min = x_ma[j]\n",
+ " temp_ons = j\n",
+ " amp_min = aux_min\n",
+ " aux_ons = temp_ons\n",
+ "\n",
+ " # If there is at least one peak found before:\n",
+ " #print('Number of previous peaks: ' + str(pk_index + 1))\n",
+ " if pk_index >= 0:\n",
+ " #print('There were previous peaks')\n",
+ " #print('Duration of ons to peak interval: ' + str(aux_ons - pks[pk_index]) +\n",
+ " # ', threshold: ' + str([3*close_win, step_win]))\n",
+ " # If the duration of the pulse is too short:\n",
+ " if (aux_ons - pks[pk_index]) < 3*close_win:\n",
+ " #print('Too short interbeat interval')\n",
+ " ind = i\n",
+ " max_min_avg = 2.5*max_min_lt\n",
+ " break\n",
+ " # If the time difference between consecutive peaks is longer:\n",
+ " if (aux_pks - pks[pk_index]) > step_win:\n",
+ " #print('Too long interbeat interval')\n",
+ " pk_index = pk_index - 1\n",
+ " on_index = on_index - 1\n",
+ " #if dn_index > 0:\n",
+ " # dn_index = dn_index - 1\n",
+ " # If there are still peaks, add the new peak:\n",
+ " if pk_index >= 0:\n",
+ " #print('There are still previous peaks')\n",
+ " pk_index = pk_index + 1\n",
+ " on_index = on_index + 1\n",
+ " pks = np.append(pks, aux_pks)\n",
+ " ons = np.append(ons, aux_ons)\n",
+ " #print('Peaks: ' + str(pks))\n",
+ " #print('Onsets: ' + str(ons))\n",
+ "\n",
+ " tf = ons[pk_index] - ons[pk_index - 1]\n",
+ "\n",
+ " to = np.floor(fs/20)\n",
+ " tff = np.floor(0.1*tf)\n",
+ " if tff < to:\n",
+ " to = tff\n",
+ " to = pks[pk_index - 1] + to\n",
+ "\n",
+ " te = np.floor(fs/20)\n",
+ " tff = np.floor(0.5*tf)\n",
+ " if tff < te:\n",
+ " te = tff\n",
+ " te = pks[pk_index - 1] + te\n",
+ "\n",
+ " #tff = seek_dicrotic(dif_ma[to:te])\n",
+ " #if tff == 0:\n",
+ " # tff = te - pks[pk_index - 1]\n",
+ " # tff = np.floor(tff/3)\n",
+ " #dn_index = dn_index + 1\n",
+ " #dic[dn_index] = to + tff\n",
+ "\n",
+ " ind = ind + close_win\n",
+ " break\n",
+ " # If it is the first peak:\n",
+ " if pk_index < 0:\n",
+ " #print('There were no previous peaks')\n",
+ " pk_index = pk_index + 1\n",
+ " on_index = on_index + 1\n",
+ " pks = np.append(pks, aux_pks)\n",
+ " ons = np.append(ons, aux_ons)\n",
+ " #print('Peaks: ' + str(pks))\n",
+ " #print('Onsets: ' + str(ons))\n",
+ " ind = ind + close_win\n",
+ " break\n",
+ "\n",
+ " ind = ind + 1\n",
+ " i = int(ind + 1)\n",
+ "\n",
+ " if len(pks) == 0:\n",
+ " return -1\n",
+ " else:\n",
+ " x_len = len(pks)\n",
+ " temp_p = np.empty(0)\n",
+ " for i in range(x_len):\n",
+ " temp_p = np.append(temp_p, pks[i] - od)\n",
+ " ttk = temp_p[0]\n",
+ " if ttk < 0:\n",
+ " temp_p[0] = 0\n",
+ " pks = temp_p\n",
+ "\n",
+ " x_len = len(ons)\n",
+ " temp_o = np.empty(0)\n",
+ " for i in range(x_len):\n",
+ " temp_o = np.append(temp_o, ons[i] - od)\n",
+ " ttk = temp_o[0]\n",
+ " if ttk < 0:\n",
+ " temp_o[0] = 0\n",
+ " ons = temp_o\n",
+ "\n",
+ " pks = pks + 5\n",
+ " ibis = pks.astype(int)\n",
+ "\n",
+ " return ibis"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ebb59cf4",
+ "metadata": {
+ "id": "ebb59cf4"
+ },
+ "source": [
+ "Now return to the 'Detect beats in the PPG signal' step."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "79f99f24",
+ "metadata": {
+ "id": "79f99f24"
+ },
+ "source": [
+ "---\n",
+ "## Fiducial Point Functions"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "82b8e899",
+ "metadata": {
+ "tags": [
+ "hide-input"
+ ],
+ "id": "82b8e899"
+ },
+ "outputs": [],
+ "source": [
+ "def fiducial_points(x,pks,fs,vis):\n",
+ " \"\"\"\n",
+ " Description: Pulse detection and correction from pulsatile signals\n",
+ " Inputs: x, array with pulsatile signal [user defined units]\n",
+ " pks, array with the position of the peaks [number of samples]\n",
+ " fs, sampling rate of signal [Hz]\n",
+ " vis, visualisation option [True, False]\n",
+ " Outputs: fidp, dictionary with the positions of several fiducial points for the cardiac cycles [number of samples]\n",
+ " \n",
+ " Fiducial points: 1: Systolic peak (pks)\n",
+ " 2: Onset, as the minimum before the systolic peak (ons)\n",
+ " 3: Onset, using the tangent intersection method (ti) \n",
+ " 4: Diastolic peak (dpk)\n",
+ " 5: Maximum slope (m1d)\n",
+ " 6: a point from second derivative PPG (a2d)\n",
+ " 7: b point from second derivative PPG (b2d)\n",
+ " 8: c point from second derivative PPG (c2d)\n",
+ " 9: d point from second derivative PPG (d2d)\n",
+ " 10: e point from second derivative PPG (e2d)\n",
+ " 11: p1 from the third derivative PPG (p1) \n",
+ " 12: p2 from the third derivative PPG (p2)\n",
+ " \n",
+ " Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
+ " \n",
+ " Version: 1.0 - June 2022\n",
+ " \n",
+ " Developed by: Elisa Mejía-Mejía\n",
+ " City, University of London\n",
+ " \n",
+ " Edited by: Peter Charlton (see \"Added by PC\")\n",
+ " \n",
+ " \"\"\" \n",
+ " # First, second and third derivatives\n",
+ " d1x = sp.savgol_filter(x, 9, 5, deriv = 1) \n",
+ " d2x = sp.savgol_filter(x, 9, 5, deriv = 2) \n",
+ " d3x = sp.savgol_filter(x, 9, 5, deriv = 3) \n",
+ " \n",
+ " #plt.figure()\n",
+ " #plt.plot(x/np.max(x))\n",
+ " #plt.plot(d1x/np.max(d1x))\n",
+ " #plt.plot(d2x/np.max(d2x))\n",
+ " #plt.plot(d3x/np.max(d3x))\n",
+ " \n",
+ " # Search in time series: Onsets between consecutive peaks\n",
+ " ons = np.empty(0)\n",
+ " for i in range(len(pks) - 1):\n",
+ " start = pks[i]\n",
+ " stop = pks[i + 1]\n",
+ " ibi = x[start:stop]\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi, color = 'black')\n",
+ " aux_ons, = np.where(ibi == np.min(ibi))\n",
+ " ind_ons = aux_ons.astype(int)\n",
+ " ons = np.append(ons, ind_ons + start) \n",
+ " #plt.plot(ind_ons, ibi[ind_ons], marker = 'o', color = 'red') \n",
+ " ons = ons.astype(int)\n",
+ " #print('Onsets: ' + str(ons))\n",
+ " #plt.figure()\n",
+ " #plt.plot(x, color = 'black')\n",
+ " #plt.scatter(pks, x[pks], marker = 'o', color = 'red') \n",
+ " #plt.scatter(ons, x[ons], marker = 'o', color = 'blue') \n",
+ " \n",
+ " # Search in time series: Diastolic peak and dicrotic notch between consecutive onsets\n",
+ " dia = np.empty(0)\n",
+ " dic = np.empty(0)\n",
+ " for i in range(len(ons) - 1):\n",
+ " start = ons[i]\n",
+ " stop = ons[i + 1]\n",
+ " ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
+ " ind_pks = pks[ind_pks]\n",
+ " ibi_portion = x[ind_pks:stop]\n",
+ " ibi_2d_portion = d2x[ind_pks:stop]\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
+ " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
+ " aux_dic, _ = sp.find_peaks(ibi_2d_portion)\n",
+ " aux_dic = aux_dic.astype(int)\n",
+ " aux_dia, _ = sp.find_peaks(-ibi_2d_portion)\n",
+ " aux_dia = aux_dia.astype(int) \n",
+ " if len(aux_dic) != 0:\n",
+ " ind_max, = np.where(ibi_2d_portion[aux_dic] == np.max(ibi_2d_portion[aux_dic]))\n",
+ " aux_dic_max = aux_dic[ind_max]\n",
+ " if len(aux_dia) != 0:\n",
+ " nearest = aux_dia - aux_dic_max\n",
+ " aux_dic = aux_dic_max\n",
+ " dic = np.append(dic, (aux_dic + ind_pks).astype(int))\n",
+ " #plt.scatter(aux_dic, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
+ " ind_dia, = np.where(nearest > 0)\n",
+ " aux_dia = aux_dia[ind_dia]\n",
+ " nearest = nearest[ind_dia]\n",
+ " if len(nearest) != 0:\n",
+ " ind_nearest, = np.where(nearest == np.min(nearest))\n",
+ " aux_dia = aux_dia[ind_nearest]\n",
+ " dia = np.append(dia, (aux_dia + ind_pks).astype(int))\n",
+ " #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')\n",
+ " #break\n",
+ " else:\n",
+ " dic = np.append(dic, (aux_dic_max + ind_pks).astype(int))\n",
+ " #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o') \n",
+ " dia = dia.astype(int)\n",
+ " dic = dic.astype(int)\n",
+ " #plt.scatter(dia, x[dia], marker = 'o', color = 'orange')\n",
+ " #plt.scatter(dic, x[dic], marker = 'o', color = 'green')\n",
+ " \n",
+ " # Search in D1: Maximum slope point\n",
+ " m1d = np.empty(0)\n",
+ " for i in range(len(ons) - 1):\n",
+ " start = ons[i]\n",
+ " stop = ons[i + 1]\n",
+ " ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
+ " ind_pks = pks[ind_pks]\n",
+ " ibi_portion = x[start:ind_pks]\n",
+ " ibi_1d_portion = d1x[start:ind_pks]\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
+ " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
+ " aux_m1d, _ = sp.find_peaks(ibi_1d_portion)\n",
+ " aux_m1d = aux_m1d.astype(int) \n",
+ " if len(aux_m1d) != 0:\n",
+ " ind_max, = np.where(ibi_1d_portion[aux_m1d] == np.max(ibi_1d_portion[aux_m1d]))\n",
+ " aux_m1d_max = aux_m1d[ind_max]\n",
+ " if len(aux_m1d_max) > 1:\n",
+ " aux_m1d_max = aux_m1d_max[0]\n",
+ " m1d = np.append(m1d, (aux_m1d_max + start).astype(int))\n",
+ " #plt.scatter(aux_m1d, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
+ " #break \n",
+ " m1d = m1d.astype(int)\n",
+ " #plt.scatter(m1d, x[m1d], marker = 'o', color = 'purple')\n",
+ " \n",
+ " # Search in time series: Tangent intersection points\n",
+ " tip = np.empty(0)\n",
+ " for i in range(len(ons) - 1):\n",
+ " start = ons[i]\n",
+ " stop = ons[i + 1]\n",
+ " ibi_portion = x[start:stop]\n",
+ " ibi_1d_portion = d1x[start:stop]\n",
+ " ind_m1d, = np.intersect1d(np.where(m1d < stop), np.where(m1d > start))\n",
+ " ind_m1d = m1d[ind_m1d] - start\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
+ " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
+ " #plt.scatter(ind_m1d, ibi_portion[ind_m1d]/np.max(ibi_portion), marker = 'o')\n",
+ " #plt.scatter(ind_m1d, ibi_1d_portion[ind_m1d]/np.max(ibi_1d_portion), marker = 'o')\n",
+ " aux_tip = np.round(((ibi_portion[0] - ibi_portion[ind_m1d])/ibi_1d_portion[ind_m1d]) + ind_m1d)\n",
+ " aux_tip = aux_tip.astype(int)\n",
+ " tip = np.append(tip, (aux_tip + start).astype(int)) \n",
+ " #plt.scatter(aux_tip, ibi_portion[aux_tip]/np.max(ibi_portion), marker = 'o')\n",
+ " #break\n",
+ " tip = tip.astype(int)\n",
+ " #plt.scatter(tip, x[tip], marker = 'o', color = 'aqua')\n",
+ " \n",
+ " # Search in D2: A, B, C, D and E points\n",
+ " a2d = np.empty(0)\n",
+ " b2d = np.empty(0)\n",
+ " c2d = np.empty(0)\n",
+ " d2d = np.empty(0)\n",
+ " e2d = np.empty(0)\n",
+ " for i in range(len(ons) - 1):\n",
+ " start = ons[i]\n",
+ " stop = ons[i + 1]\n",
+ " ibi_portion = x[start:stop]\n",
+ " ibi_1d_portion = d1x[start:stop]\n",
+ " ibi_2d_portion = d2x[start:stop]\n",
+ " ind_m1d = np.intersect1d(np.where(m1d > start),np.where(m1d < stop))\n",
+ " ind_m1d = m1d[ind_m1d]\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
+ " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
+ " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
+ " aux_m2d_pks, _ = sp.find_peaks(ibi_2d_portion)\n",
+ " aux_m2d_ons, _ = sp.find_peaks(-ibi_2d_portion)\n",
+ " # a point:\n",
+ " ind_a, = np.where(ibi_2d_portion[aux_m2d_pks] == np.max(ibi_2d_portion[aux_m2d_pks]))\n",
+ " ind_a = aux_m2d_pks[ind_a]\n",
+ " if (ind_a < ind_m1d):\n",
+ " a2d = np.append(a2d, ind_a + start)\n",
+ " #plt.scatter(ind_a, ibi_2d_portion[ind_a]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " # b point:\n",
+ " ind_b = np.where(ibi_2d_portion[aux_m2d_ons] == np.min(ibi_2d_portion[aux_m2d_ons]))\n",
+ " ind_b = aux_m2d_ons[ind_b]\n",
+ " if (ind_b > ind_a) and (ind_b < len(ibi_2d_portion)):\n",
+ " b2d = np.append(b2d, ind_b + start)\n",
+ " #plt.scatter(ind_b, ibi_2d_portion[ind_b]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " # e point:\n",
+ " ind_e, = np.where(aux_m2d_pks > ind_m1d - start)\n",
+ " aux_m2d_pks = aux_m2d_pks[ind_e]\n",
+ " ind_e, = np.where(aux_m2d_pks < 0.6*len(ibi_2d_portion))\n",
+ " ind_e = aux_m2d_pks[ind_e]\n",
+ " if len(ind_e) >= 1:\n",
+ " if len(ind_e) >= 2:\n",
+ " ind_e = ind_e[1]\n",
+ " e2d = np.append(e2d, ind_e + start)\n",
+ " #plt.scatter(ind_e, ibi_2d_portion[ind_e]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " # c point:\n",
+ " ind_c, = np.where(aux_m2d_pks < ind_e)\n",
+ " if len(ind_c) != 0:\n",
+ " ind_c_aux = aux_m2d_pks[ind_c]\n",
+ " ind_c, = np.where(ibi_2d_portion[ind_c_aux] == np.max(ibi_2d_portion[ind_c_aux]))\n",
+ " ind_c = ind_c_aux[ind_c]\n",
+ " if len(ind_c) != 0:\n",
+ " c2d = np.append(c2d, ind_c + start)\n",
+ " #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " else:\n",
+ " aux_m1d_ons, _ = sp.find_peaks(-ibi_1d_portion)\n",
+ " ind_c, = np.where(aux_m1d_ons < ind_e)\n",
+ " ind_c_aux = aux_m1d_ons[ind_c]\n",
+ " if len(ind_c) != 0:\n",
+ " ind_c, = np.where(ind_c_aux > ind_b)\n",
+ " ind_c = ind_c_aux[ind_c]\n",
+ " if len(ind_c) > 1:\n",
+ " ind_c = ind_c[0]\n",
+ " c2d = np.append(c2d, ind_c + start)\n",
+ " #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " # d point:\n",
+ " if len(ind_c) != 0:\n",
+ " ind_d = np.intersect1d(np.where(aux_m2d_ons < ind_e), np.where(aux_m2d_ons > ind_c))\n",
+ " if len(ind_d) != 0:\n",
+ " ind_d_aux = aux_m2d_ons[ind_d]\n",
+ " ind_d, = np.where(ibi_2d_portion[ind_d_aux] == np.min(ibi_2d_portion[ind_d_aux]))\n",
+ " ind_d = ind_d_aux[ind_d]\n",
+ " if len(ind_d) != 0:\n",
+ " d2d = np.append(d2d, ind_d + start)\n",
+ " #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o') \n",
+ " else:\n",
+ " ind_d = ind_c\n",
+ " d2d = np.append(d2d, ind_d + start)\n",
+ " #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')\n",
+ " a2d = a2d.astype(int)\n",
+ " b2d = b2d.astype(int)\n",
+ " c2d = c2d.astype(int)\n",
+ " d2d = d2d.astype(int)\n",
+ " e2d = e2d.astype(int)\n",
+ " #plt.figure()\n",
+ " #plt.plot(d2x, color = 'black')\n",
+ " #plt.scatter(a2d, d2x[a2d], marker = 'o', color = 'red') \n",
+ " #plt.scatter(b2d, d2x[b2d], marker = 'o', color = 'blue')\n",
+ " #plt.scatter(c2d, d2x[c2d], marker = 'o', color = 'green')\n",
+ " #plt.scatter(d2d, d2x[d2d], marker = 'o', color = 'orange')\n",
+ " #plt.scatter(e2d, d2x[e2d], marker = 'o', color = 'purple')\n",
+ " \n",
+ " # Search in D3: P1 and P2 points\n",
+ " p1p = np.empty(0)\n",
+ " p2p = np.empty(0)\n",
+ " for i in range(len(ons) - 1):\n",
+ " start = ons[i]\n",
+ " stop = ons[i + 1]\n",
+ " ibi_portion = x[start:stop]\n",
+ " ibi_1d_portion = d1x[start:stop]\n",
+ " ibi_2d_portion = d2x[start:stop]\n",
+ " ibi_3d_portion = d3x[start:stop]\n",
+ " ind_b = np.intersect1d(np.where(b2d > start),np.where(b2d < stop))\n",
+ " ind_b = b2d[ind_b]\n",
+ " ind_c = np.intersect1d(np.where(c2d > start),np.where(c2d < stop))\n",
+ " ind_c = c2d[ind_c]\n",
+ " ind_d = np.intersect1d(np.where(d2d > start),np.where(d2d < stop))\n",
+ " ind_d = d2d[ind_d]\n",
+ " ind_dic = np.intersect1d(np.where(dic > start),np.where(dic < stop))\n",
+ " ind_dic = dic[ind_dic]\n",
+ " #plt.figure()\n",
+ " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
+ " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
+ " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
+ " #plt.plot(ibi_3d_portion/np.max(ibi_3d_portion))\n",
+ " #plt.scatter(ind_b - start, ibi_3d_portion[ind_b - start]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " #plt.scatter(ind_c - start, ibi_3d_portion[ind_c - start]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " #plt.scatter(ind_d - start, ibi_3d_portion[ind_d - start]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " #plt.scatter(ind_dic - start, ibi_3d_portion[ind_dic - start]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " aux_p3d_pks, _ = sp.find_peaks(ibi_3d_portion)\n",
+ " aux_p3d_ons, _ = sp.find_peaks(-ibi_3d_portion)\n",
+ " # P1:\n",
+ " if (len(aux_p3d_pks) != 0 and len(ind_b) != 0):\n",
+ " ind_p1, = np.where(aux_p3d_pks > ind_b - start)\n",
+ " if len(ind_p1) != 0:\n",
+ " ind_p1 = aux_p3d_pks[ind_p1[0]]\n",
+ " p1p = np.append(p1p, ind_p1 + start)\n",
+ " #plt.scatter(ind_p1, ibi_3d_portion[ind_p1]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " # P2:\n",
+ " if (len(aux_p3d_ons) != 0 and len(ind_c) != 0 and len(ind_d) != 0):\n",
+ " if ind_c == ind_d:\n",
+ " ind_p2, = np.where(aux_p3d_ons > ind_d - start)\n",
+ " ind_p2 = aux_p3d_ons[ind_p2[0]]\n",
+ " else:\n",
+ " ind_p2, = np.where(aux_p3d_ons < ind_d - start)\n",
+ " ind_p2 = aux_p3d_ons[ind_p2[-1]]\n",
+ " if len(ind_dic) != 0:\n",
+ " aux_x_pks, _ = sp.find_peaks(ibi_portion)\n",
+ " if ind_p2 > ind_dic - start:\n",
+ " ind_between = np.intersect1d(np.where(aux_x_pks < ind_p2), np.where(aux_x_pks > ind_dic - start))\n",
+ " else:\n",
+ " ind_between = np.intersect1d(np.where(aux_x_pks > ind_p2), np.where(aux_x_pks < ind_dic - start))\n",
+ " if len(ind_between) != 0:\n",
+ " ind_p2 = aux_x_pks[ind_between[0]]\n",
+ " p2p = np.append(p2p, ind_p2 + start)\n",
+ " #plt.scatter(ind_p2, ibi_3d_portion[ind_p2]/np.max(ibi_3d_portion), marker = 'o')\n",
+ " p1p = p1p.astype(int)\n",
+ " p2p = p2p.astype(int)\n",
+ " #plt.figure()\n",
+ " #plt.plot(d3x, color = 'black')\n",
+ " #plt.scatter(p1p, d3x[p1p], marker = 'o', color = 'green') \n",
+ " #plt.scatter(p2p, d3x[p2p], marker = 'o', color = 'orange')\n",
+ " \n",
+ " # Added by PC: Magnitudes of second derivative points\n",
+ " bmag2d = np.zeros(len(b2d))\n",
+ " cmag2d = np.zeros(len(b2d))\n",
+ " dmag2d = np.zeros(len(b2d))\n",
+ " emag2d = np.zeros(len(b2d))\n",
+ " for beat_no in range(0,len(d2d)):\n",
+ " bmag2d[beat_no] = d2x[b2d[beat_no]]/d2x[a2d[beat_no]]\n",
+ " cmag2d[beat_no] = d2x[c2d[beat_no]]/d2x[a2d[beat_no]]\n",
+ " dmag2d[beat_no] = d2x[d2d[beat_no]]/d2x[a2d[beat_no]] \n",
+ " emag2d[beat_no] = d2x[e2d[beat_no]]/d2x[a2d[beat_no]] \n",
+ " \n",
+ " # Added by PC: Refine the list of fiducial points to only include those corresponding to beats for which a full set of points is available\n",
+ " off = ons[1:]\n",
+ " ons = ons[:-1]\n",
+ " if pks[0] < ons[0]:\n",
+ " pks = pks[1:]\n",
+ " if pks[-1] > off[-1]:\n",
+ " pks = pks[:-1]\n",
+ " \n",
+ " # Visualise results\n",
+ " if vis == True:\n",
+ " fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1, sharex = True, sharey = False, figsize=(10,10))\n",
+ " fig.suptitle('Fiducial points') \n",
+ "\n",
+ " ax1.plot(x, color = 'black')\n",
+ " ax1.scatter(pks, x[pks.astype(int)], color = 'orange', label = 'pks')\n",
+ " ax1.scatter(ons, x[ons.astype(int)], color = 'green', label = 'ons')\n",
+ " ax1.scatter(off, x[off.astype(int)], marker = '*', color = 'green', label = 'off')\n",
+ " ax1.scatter(dia, x[dia.astype(int)], color = 'yellow', label = 'dia')\n",
+ " ax1.scatter(dic, x[dic.astype(int)], color = 'blue', label = 'dic')\n",
+ " ax1.scatter(tip, x[tip.astype(int)], color = 'purple', label = 'dic')\n",
+ " ax1.legend()\n",
+ " ax1.set_ylabel('x')\n",
+ "\n",
+ " ax2.plot(d1x, color = 'black')\n",
+ " ax2.scatter(m1d, d1x[m1d.astype(int)], color = 'orange', label = 'm1d')\n",
+ " ax2.legend()\n",
+ " ax2.set_ylabel('d1x')\n",
+ "\n",
+ " ax3.plot(d2x, color = 'black')\n",
+ " ax3.scatter(a2d, d2x[a2d.astype(int)], color = 'orange', label = 'a')\n",
+ " ax3.scatter(b2d, d2x[b2d.astype(int)], color = 'green', label = 'b')\n",
+ " ax3.scatter(c2d, d2x[c2d.astype(int)], color = 'yellow', label = 'c')\n",
+ " ax3.scatter(d2d, d2x[d2d.astype(int)], color = 'blue', label = 'd')\n",
+ " ax3.scatter(e2d, d2x[e2d.astype(int)], color = 'purple', label = 'e')\n",
+ " ax3.legend()\n",
+ " ax3.set_ylabel('d2x')\n",
+ "\n",
+ " ax4.plot(d3x, color = 'black')\n",
+ " ax4.scatter(p1p, d3x[p1p.astype(int)], color = 'orange', label = 'p1')\n",
+ " ax4.scatter(p2p, d3x[p2p.astype(int)], color = 'green', label = 'p2')\n",
+ " ax4.legend()\n",
+ " ax4.set_ylabel('d3x')\n",
+ "\n",
+ " plt.subplots_adjust(left = 0.1,\n",
+ " bottom = 0.1, \n",
+ " right = 0.9, \n",
+ " top = 0.9, \n",
+ " wspace = 0.4, \n",
+ " hspace = 0.4)\n",
+ " \n",
+ " # Creation of dictionary\n",
+ " fidp = {'pks': pks.astype(int),\n",
+ " 'ons': ons.astype(int),\n",
+ " 'off': off.astype(int), # Added by PC\n",
+ " 'tip': tip.astype(int),\n",
+ " 'dia': dia.astype(int),\n",
+ " 'dic': dic.astype(int),\n",
+ " 'm1d': m1d.astype(int),\n",
+ " 'a2d': a2d.astype(int),\n",
+ " 'b2d': b2d.astype(int),\n",
+ " 'c2d': c2d.astype(int),\n",
+ " 'd2d': d2d.astype(int),\n",
+ " 'e2d': e2d.astype(int),\n",
+ " 'bmag2d': bmag2d,\n",
+ " 'cmag2d': cmag2d,\n",
+ " 'dmag2d': dmag2d,\n",
+ " 'emag2d': emag2d,\n",
+ " 'p1p': p1p.astype(int),\n",
+ " 'p2p': p2p.astype(int)\n",
+ " }\n",
+ " \n",
+ " return fidp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7103bbf4",
+ "metadata": {
+ "id": "7103bbf4"
+ },
+ "outputs": [],
+ "source": [
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "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": {},
+ "toc_section_display": true,
+ "toc_window_display": true
+ },
+ "colab": {
+ "name": "pulse-wave-analysis.ipynb",
+ "provenance": []
}
- ],
- "source": [
- "agi = np.zeros(len(fidp[\"dia\"]))\n",
- "for beat_no in range(len(fidp[\"dia\"])):\n",
- " agi[beat_no] = (fidp[\"bmag2d\"][beat_no]-fidp[\"cmag2d\"][beat_no]-fidp[\"dmag2d\"][beat_no]-fidp[\"emag2d\"][beat_no])/fs\n",
- "print(\"Values of Aging Index:\")\n",
- "print(agi)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "9dc4763b",
- "metadata": {},
- "source": [
- " Question: Can you implement any more pulse wave features (e.g. 'CT')?
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c0ad49fc",
- "metadata": {},
- "source": [
- "---\n",
- "## Beat Detection Functions"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "99852646",
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [],
- "source": [
- "import scipy.signal as sp\n",
- "import numpy as np\n",
- "\n",
- "def pulse_detect(x,fs,w,alg):\n",
- " \"\"\"\n",
- " Description: Pulse detection and correction from pulsatile signals\n",
- " Inputs: x, array with pulsatile signal [user defined units]\n",
- " fs, sampling rate of signal [Hz]\n",
- " w, window length for analysis [s]\n",
- " alg, string with the name of the algorithm to apply ['heartpy','d2max','upslopes','delineator']\n",
- " Outputs: ibis, location of cardiac cycles as detected by the selected algorithm [number of samples]\n",
- "\n",
- " Algorithms: 1: HeartPy (van Gent et al, 2019, DOI: 10.1016/j.trf.2019.09.015)\n",
- " 2: 2nd derivative maxima (Elgendi et al, 2013, DOI: 10.1371/journal.pone.0076585)\n",
- " 3: Systolic upslopes (Arguello Prada and Serna Maldonado, 2018,\n",
- " DOI: 10.1080/03091902.2019.1572237)\n",
- " 4: Delineator (Li et al, 2010, DOI: 10.1109/TBME.2005.855725)\n",
- " Fiducial points: 1: Systolic peak (pks)\n",
- " 2: Onset, as the minimum before the systolic peak (ons)\n",
- " 3: Onset, using the tangent intersection method (ti)\n",
- " 4: Diastolic peak (dpk)\n",
- " 5: Maximum slope (m1d)\n",
- " 6: a point from second derivative PPG (a2d)\n",
- " 7: b point from second derivative PPG (b2d)\n",
- " 8: c point from second derivative PPG (c2d)\n",
- " 9: d point from second derivative PPG (d2d)\n",
- " 10: e point from second derivative PPG (e2d)\n",
- " 11: p1 from the third derivative PPG (p1)\n",
- " 12: p2 from the third derivative PPG (p2)\n",
- "\n",
- " Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
- "\n",
- " Version: 1.0 - June 2022\n",
- "\n",
- " Developed by: Elisa Mejía-Mejía\n",
- " City, University of London\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " # Check selected algorithm\n",
- " pos_alg = ['heartpy','d2max','upslopes','delineator']\n",
- " if not(alg in pos_alg):\n",
- " print('Unknown algorithm determined. Using D2max as default')\n",
- " alg = 'd2max'\n",
- "\n",
- " # Pre-processing of signal\n",
- " x_d = sp.detrend(x)\n",
- " sos = sp.butter(10, [0.5, 10], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
- " x_f = sp.sosfiltfilt(sos, x_d)\n",
- "\n",
- " # Peak detection in windows of length w\n",
- " n_int = np.floor(len(x_f)/(w*fs))\n",
- " for i in range(int(n_int)):\n",
- " start = i*fs*w\n",
- " stop = (i + 1)*fs*w - 1\n",
- " # print('Start: ' + str(start) + ', stop: ' + str(stop) + ', fs: ' + str(fs))\n",
- " aux = x_f[range(start,stop)]\n",
- " if alg == 'heartpy':\n",
- " locs = heartpy(aux,fs,40,180,5)\n",
- " elif alg == 'd2max':\n",
- " locs = d2max(aux,fs)\n",
- " elif alg == 'upslopes':\n",
- " locs = upslopes(aux)\n",
- " elif alg == 'delineator':\n",
- " locs = delineator(aux,fs)\n",
- " locs = locs + start\n",
- " if i == 0:\n",
- " ibis = locs\n",
- " else:\n",
- " ibis = np.append(ibis,locs)\n",
- " if n_int*fs*w != len(x_f):\n",
- " start = stop + 1\n",
- " stop = len(x_f)\n",
- " aux = x_f[range(start,stop)]\n",
- " if len(aux) > 20:\n",
- " if alg == 'heartpy':\n",
- " locs = heartpy(aux,fs,40,180,5)\n",
- " elif alg == 'd2max':\n",
- " locs = d2max(aux,fs)\n",
- " elif alg == 'upslopes':\n",
- " locs = upslopes(aux)\n",
- " elif alg == 'delineator':\n",
- " locs = delineator(aux,fs)\n",
- " locs = locs + start\n",
- " ibis = np.append(ibis,locs)\n",
- " ind, = np.where(ibis <= len(x_f))\n",
- " ibis = ibis[ind]\n",
- "\n",
- " ibis = peak_correction(x,ibis,fs,20,5,[0.5, 1.5])\n",
- "\n",
- " #fig = plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.plot(x_d)\n",
- " #plt.plot(x_f)\n",
- " #plt.scatter(ibis,x_f[ibis],marker = 'o',color = 'red')\n",
- " #plt.scatter(ibis,x[ibis],marker = 'o',color = 'red')\n",
- "\n",
- " return ibis\n",
- "\n",
- "def peak_correction(x,locs,fs,t,stride,th_len):\n",
- " \"\"\"\n",
- " Correction of peaks detected from pulsatile signals\n",
- "\n",
- " Inputs: x, pulsatile signal [user defined units]\n",
- " locs, location of the detected interbeat intervals [number of samples]\n",
- " fs, sampling rate [Hz]\n",
- " t, duration of intervals for the correction [s]\n",
- " stride, stride between consecutive intervals for the correction [s]\n",
- " th_len, array with the percentage of lower and higher thresholds for comparing the duration of IBIs\n",
- " [proportions]\n",
- " Outputs: ibis, array with the corrected points related to the start of the inter-beat intervals [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " #fig = plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.scatter(locs,x[locs],marker = 'o',color = 'red', label = 'Original')\n",
- " #plt.title('Peak correction')\n",
- "\n",
- " # Correction of long and short IBIs\n",
- " len_window = np.round(t*fs)\n",
- " #print('Window length: ' + str(len_window))\n",
- " first_i = 0\n",
- " second_i = len_window - 1\n",
- " while second_i < len(x):\n",
- " ind1, = np.where(locs >= first_i)\n",
- " ind2, = np.where(locs <= second_i)\n",
- " ind = np.intersect1d(ind1, ind2)\n",
- "\n",
- " win = locs[ind]\n",
- " dif = np.diff(win)\n",
- " #print('Indices: ' + str(ind) + ', locs: ' + str(locs[ind]) + ', dif: ' + str(dif))\n",
- "\n",
- " th_dif = np.zeros(2)\n",
- " th_dif[0] = th_len[0]*np.median(dif)\n",
- " th_dif[1] = th_len[1]*np.median(dif)\n",
- "\n",
- " th_amp = np.zeros(2)\n",
- " th_amp[0] = 0.75*np.median(x[win])\n",
- " th_amp[1] = 1.25*np.median(x[win])\n",
- " #print('Length thresholds: ' + str(th_dif) + ', amplitude thresholds: ' + str(th_amp))\n",
- "\n",
- " j = 0\n",
- " while j < len(dif):\n",
- " if dif[j] <= th_dif[0]:\n",
- " if j == 0:\n",
- " opt = np.append(win[j], win[j + 1])\n",
- " else:\n",
- " opt = np.append(win[j], win[j + 1]) - win[j - 1]\n",
- " print('Optional: ' + str(opt))\n",
- " dif_abs = np.abs(opt - np.median(dif))\n",
- " min_val = np.min(dif_abs)\n",
- " ind_min, = np.where(dif_abs == min_val)\n",
- " print('Minimum: ' + str(min_val) + ', index: ' + str(ind_min))\n",
- " if ind_min == 0:\n",
- " print('Original window: ' + str(win), end = '')\n",
- " win = np.delete(win, win[j + 1])\n",
- " print(', modified window: ' + str(win))\n",
- " else:\n",
- " print('Original window: ' + str(win), end = '')\n",
- " win = np.delete(win, win[j])\n",
- " print(', modified window: ' + str(win))\n",
- " dif = np.diff(win)\n",
- " elif dif[j] >= th_dif[1]:\n",
- " aux_x = x[win[j]:win[j + 1]]\n",
- " locs_pks, _ = sp.find_peaks(aux_x)\n",
- " #fig = plt.figure()\n",
- " #plt.plot(aux_x)\n",
- " #plt.scatter(locs_pks,aux_x[locs_pks],marker = 'o',color = 'red')\n",
- "\n",
- " locs_pks = locs_pks + win[j]\n",
- " ind1, = np.where(x[locs_pks] >= th_amp[0])\n",
- " ind2, = np.where(x[locs_pks] <= th_amp[1])\n",
- " ind = np.intersect1d(ind1, ind2)\n",
- " locs_pks = locs_pks[ind]\n",
- " #print('Locations: ' + str(locs_pks))\n",
- "\n",
- " if len(locs_pks) != 0:\n",
- " opt = locs_pks - win[j]\n",
- "\n",
- " dif_abs = np.abs(opt - np.median(dif))\n",
- " min_val = np.min(dif_abs)\n",
- " ind_min, = np.where(dif_abs == min_val)\n",
- "\n",
- " win = np.append(win, locs_pks[ind_min])\n",
- " win = np.sort(win)\n",
- " dif = np.diff(win)\n",
- " j = j + 1\n",
- " else:\n",
- " opt = np.round(win[j] + np.median(dif))\n",
- " if opt < win[j + 1]:\n",
- " win = np.append(win, locs_pks[ind_min])\n",
- " win = np.sort(win)\n",
- " dif = np.diff(win)\n",
- " j = j + 1\n",
- " else:\n",
- " j = j + 1\n",
- " else:\n",
- " j = j + 1\n",
- "\n",
- " locs = np.append(win, locs)\n",
- " locs = np.sort(locs)\n",
- "\n",
- " first_i = first_i + stride*fs - 1\n",
- " second_i = second_i + stride*fs - 1\n",
- "\n",
- " dif = np.diff(locs)\n",
- " dif = np.append(0, dif)\n",
- " ind, = np.where(dif != 0)\n",
- " locs = locs[ind]\n",
- "\n",
- " #plt.scatter(locs,x[locs],marker = 'o',color = 'green', label = 'After length correction')\n",
- "\n",
- " # Correction of points that are not peaks\n",
- " i = 0\n",
- " pre_loc = 0\n",
- " while i < len(locs):\n",
- " if locs[i] == 0:\n",
- " locs = np.delete(locs, locs[i])\n",
- " elif locs[i] == len(x):\n",
- " locs = np.delete(locs, locs[i])\n",
- " else:\n",
- " #print('Previous: ' + str(x[locs[i] - 1]) + ', actual: ' + str(x[locs[i]]) + ', next: ' + str(x[locs[i] + 1]))\n",
- " cond = (x[locs[i]] >= x[locs[i] - 1]) and (x[locs[i]] >= x[locs[i] + 1])\n",
- " #print('Condition: ' + str(cond))\n",
- " if cond:\n",
- " i = i + 1\n",
- " else:\n",
- " if locs[i] == pre_loc:\n",
- " i = i + 1\n",
- " else:\n",
- " if i == 0:\n",
- " aux = x[0:locs[i + 1] - 1]\n",
- " aux_loc = locs[i] - 1\n",
- " aux_start = 0\n",
- " elif i == len(locs) - 1:\n",
- " aux = x[locs[i - 1]:len(x) - 1]\n",
- " aux_loc = locs[i] - locs[i - 1]\n",
- " aux_start = locs[i - 1]\n",
- " else:\n",
- " aux = x[locs[i - 1]:locs[i + 1]]\n",
- " aux_loc = locs[i] - locs[i - 1]\n",
- " aux_start = locs[i - 1]\n",
- " #print('i ' + str(i) + ' out of ' + str(len(locs)) + ', aux length: ' + str(len(aux)) +\n",
- " # ', location: ' + str(aux_loc))\n",
- " #print('Locs i - 1: ' + str(locs[i - 1]) + ', locs i: ' + str(locs[i]) + ', locs i + 1: ' + str(locs[i + 1]))\n",
- "\n",
- " pre = find_closest_peak(aux, aux_loc, 'backward')\n",
- " pos = find_closest_peak(aux, aux_loc, 'forward')\n",
- " #print('Previous: ' + str(pre) + ', next: ' + str(pos) + ', actual: ' + str(aux_loc))\n",
- "\n",
- " ibi_pre = np.append(pre - 1, len(aux) - pre)\n",
- " ibi_pos = np.append(pos - 1, len(aux) - pos)\n",
- " ibi_act = np.append(aux_loc - 1, len(aux) - aux_loc)\n",
- " #print('Previous IBIs: ' + str(ibi_pre) + ', next IBIs: ' + str(ibi_pos) +\n",
- " # ', actual IBIs: ' + str(ibi_act))\n",
- "\n",
- " dif_pre = np.abs(ibi_pre - np.mean(np.diff(locs)))\n",
- " dif_pos = np.abs(ibi_pos - np.mean(np.diff(locs)))\n",
- " dif_act = np.abs(ibi_act - np.mean(np.diff(locs)))\n",
- " #print('Previous DIF: ' + str(dif_pre) + ', next DIF: ' + str(dif_pos) +\n",
- " # ', actual DIF: ' + str(dif_act))\n",
- "\n",
- " avgs = [np.mean(dif_pre), np.mean(dif_pos), np.mean(dif_act)]\n",
- " min_avg = np.min(avgs)\n",
- " ind, = np.where(min_avg == avgs)\n",
- " #print('Averages: ' + str(avgs) + ', min index: ' + str(ind))\n",
- " if len(ind) != 0:\n",
- " ind = ind[0]\n",
- "\n",
- " if ind == 0:\n",
- " locs[i] = pre + aux_start - 1\n",
- " elif ind == 1:\n",
- " locs[i] = pos + aux_start - 1\n",
- " elif ind == 2:\n",
- " locs[i] = aux_loc + aux_start - 1\n",
- " i = i + 1\n",
- "\n",
- " #plt.scatter(locs,x[locs],marker = 'o',color = 'yellow', label = 'After not-peak correction')\n",
- "\n",
- " # Correction of peaks according to amplitude\n",
- " len_window = np.round(t*fs)\n",
- " #print('Window length: ' + str(len_window))\n",
- " keep = np.empty(0)\n",
- " first_i = 0\n",
- " second_i = len_window - 1\n",
- " while second_i < len(x):\n",
- " ind1, = np.where(locs >= first_i)\n",
- " ind2, = np.where(locs <= second_i)\n",
- " ind = np.intersect1d(ind1, ind2)\n",
- " win = locs[ind]\n",
- " if np.median(x[win]) > 0:\n",
- " th_amp_low = 0.5*np.median(x[win])\n",
- " th_amp_high = 3*np.median(x[win])\n",
- " else:\n",
- " th_amp_low = -3*np.median(x[win])\n",
- " th_amp_high = 1.5*np.median(x[win])\n",
- " ind1, = np.where(x[win] >= th_amp_low)\n",
- " ind2, = np.where(x[win] <= th_amp_high)\n",
- " aux_keep = np.intersect1d(ind1,ind2)\n",
- " keep = np.append(keep, aux_keep)\n",
- "\n",
- " first_i = second_i + 1\n",
- " second_i = second_i + stride*fs - 1\n",
- "\n",
- " if len(keep) != 0:\n",
- " keep = np.unique(keep)\n",
- " locs = locs[keep.astype(int)]\n",
- "\n",
- " #plt.scatter(locs,x[locs],marker = 'o',color = 'purple', label = 'After amplitude correction')\n",
- " #plt.legend()\n",
- "\n",
- " return locs\n",
- "\n",
- "def find_closest_peak(x, loc, dir_search):\n",
- " \"\"\"\n",
- " Finds the closest peak to the initial location in x\n",
- "\n",
- " Inputs: x, signal of interest [user defined units]\n",
- " loc, initial location [number of samples]\n",
- " dir_search, direction of search ['backward','forward']\n",
- " Outputs: pos, location of the first peak detected in specified direction [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " pos = -1\n",
- " if dir_search == 'backward':\n",
- " i = loc - 2\n",
- " while i > 0:\n",
- " if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
- " pos = i\n",
- " i = 0\n",
- " else:\n",
- " i = i - 1\n",
- " if pos == -1:\n",
- " pos = loc\n",
- " elif dir_search == 'forward':\n",
- " i = loc + 1\n",
- " while i < len(x) - 1:\n",
- " if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
- " pos = i\n",
- " i = len(x)\n",
- " else:\n",
- " i = i + 1\n",
- " if pos == -1:\n",
- " pos = loc\n",
- "\n",
- " return pos\n",
- "\n",
- "def seek_local(x, start, end):\n",
- " val_min = x[start]\n",
- " val_max = x[start]\n",
- "\n",
- " ind_min = start\n",
- " ind_max = start\n",
- "\n",
- " for j in range(start, end):\n",
- " if x[j] > val_max:\n",
- " val_max = x[j]\n",
- " ind_max = j\n",
- " elif x[j] < val_min:\n",
- " val_min = x[j]\n",
- " ind_min = j\n",
- "\n",
- " return val_min, ind_min, val_max, ind_max\n",
- "\n",
- "def heartpy(x, fs, min_ihr, max_ihr, w):\n",
- " \"\"\"\n",
- " Detects inter-beat intervals using HeartPy\n",
- " Citation: van Gent P, Farah H, van Nes N, van Arem B (2019) Heartpy: A novel heart rate algorithm\n",
- " for the analysis of noisy signals. Transp Res Part F, vol. 66, pp. 368-378. DOI: 10.1016/j.trf.2019.09.015\n",
- "\n",
- " Inputs: x, pulsatile signal [user defined units]\n",
- " fs, sampling rate [Hz]\n",
- " min_ihr, minimum value of instantaneous heart rate to be accepted [bpm]\n",
- " max_ihr, maximum value of instantaneous heart rate to be accepted [bpm]\n",
- " w, length of segments for correction of peaks [s]\n",
- " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " # Identification of peaks\n",
- " is_roi = 0\n",
- " n_rois = 0\n",
- " pos_pks = np.empty(0).astype(int)\n",
- " locs = np.empty(0).astype(int)\n",
- "\n",
- " len_ma = int(np.round(0.75*fs))\n",
- " #print(len_ma)\n",
- " sig = np.append(x[0]*np.ones(len_ma), x)\n",
- " sig = np.append(sig, x[-1]*np.ones(len_ma))\n",
- "\n",
- " i = len_ma\n",
- " while i < len(sig) - len_ma:\n",
- " ma = np.mean(sig[i - len_ma:i + len_ma - 1])\n",
- " #print(len(sig[i - len_ma:i + len_ma - 1]),ma)\n",
- "\n",
- " # If it is the beginning of a new ROI:\n",
- " if is_roi == 0 and sig[i] >= ma:\n",
- " is_roi = 1\n",
- " n_rois = n_rois + 1\n",
- " #print('New ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
- " # If it is a peak:\n",
- " if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
- " pos_pks = np.append(pos_pks, int(i))\n",
- " #print('Possible peaks: ' + str(pos_pks))\n",
- "\n",
- " # If it is part of a ROI which is not over:\n",
- " elif is_roi == 1 and sig[i] > ma:\n",
- " #print('Actual ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
- " # If it is a peak:\n",
- " if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
- " pos_pks = np.append(pos_pks, int(i))\n",
- " #print('Possible peaks: ' + str(pos_pks))\n",
- "\n",
- " # If the ROI is over or the end of the signal has been reached:\n",
- " elif is_roi == 1 and (sig[i] < ma or i == (len(sig) - len_ma)):\n",
- " #print('End of ROI ---' + str(n_rois) + ' @ ' + str(i) + '. Pos pks: ' + str(pos_pks))\n",
- " is_roi = 0 # Lowers flag\n",
- "\n",
- " # If it is the end of the first ROI:\n",
- " if n_rois == 1:\n",
- " # If at least one peak has been found:\n",
- " if len(pos_pks) != 0:\n",
- " # Determines the location of the maximum peak:\n",
- " max_pk = np.max(sig[pos_pks])\n",
- " ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
- " #print('First ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
- " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
- " # The maximum peak is added to the list:\n",
- " locs = np.append(locs, pos_pks[ind])\n",
- " #print('Locations: ' + str(locs))\n",
- " # If no peak was found:\n",
- " else:\n",
- " # Counter for ROIs is reset to previous value:\n",
- " n_rois = n_rois - 1\n",
- "\n",
- " # If it is the end of the second ROI:\n",
- " elif n_rois == 2:\n",
- " # If at least one peak has been found:\n",
- " if len(pos_pks) != 0:\n",
- " # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
- " ihr = 60/((pos_pks - locs[-1])/fs)\n",
- " good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
- " #print('Second ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
- " # ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
- " pos_pks = pos_pks[good_ihr].astype(int)\n",
- "\n",
- " # If at least one peak is between HR limits:\n",
- " if len(pos_pks) != 0:\n",
- " # Determines the location of the maximum peak:\n",
- " max_pk = np.max(sig[pos_pks])\n",
- " ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
- " #print('Second ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
- " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
- " # The maximum peak is added to the list:\n",
- " locs = np.append(locs, pos_pks[ind])\n",
- " #print('Locations: ' + str(locs))\n",
- " # If no peak was found:\n",
- " else:\n",
- " # Counter for ROIs is reset to previous value:\n",
- " n_rois = n_rois - 1\n",
- "\n",
- " # If it is the end of the any further ROI:\n",
- " else:\n",
- " # If at least one peak has been found:\n",
- " if len(pos_pks) != 0:\n",
- " # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
- " ihr = 60/((pos_pks - locs[-1])/fs)\n",
- " good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
- " #print('Third ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
- " # ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
- " pos_pks = pos_pks[good_ihr].astype(int)\n",
- "\n",
- " # If at least one peak is between HR limits:\n",
- " if len(pos_pks) != 0:\n",
- " # Calculates SDNN with the possible peaks on the ROI:\n",
- " sdnn = np.zeros(len(pos_pks))\n",
- " for j in range(len(pos_pks)):\n",
- " sdnn[j] = np.std(np.append(locs/fs, pos_pks[j]/fs))\n",
- " # Determines the new peak as that one with the lowest SDNN:\n",
- " min_pk = np.min(sdnn)\n",
- " ind, = np.where(min_pk == np.min(sdnn))\n",
- " #print('Third ROI: (1) Min SDNN Peak: ' + str(min_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
- " # ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
- " locs = np.append(locs, pos_pks[ind])\n",
- " #print('Locations: ' + str(locs))\n",
- " # If no peak was found:\n",
- " else:\n",
- " # Counter for ROIs is reset to previous value:\n",
- " n_rois = n_rois - 1\n",
- "\n",
- " # Resets possible peaks for next ROI:\n",
- " pos_pks = np.empty(0)\n",
- "\n",
- " i = i + 1;\n",
- "\n",
- " locs = locs - len_ma\n",
- "\n",
- " # Correction of peaks\n",
- " c_locs = np.empty(0)\n",
- " n_int = np.floor(len(x)/(w*fs))\n",
- " for i in range(int(n_int)):\n",
- " ind1, = np.where(locs >= i*w*fs)\n",
- " #print('Locs >= ' + str((i)*w*fs) + ': ' + str(locs[ind1]))\n",
- " ind2, = np.where(locs < (i + 1)*w*fs)\n",
- " #print('Locs < ' + str((i + 1)*w*fs) + ': ' + str(locs[ind2]))\n",
- " ind = np.intersect1d(ind1, ind2)\n",
- " #print('Larger and lower than locs: ' + str(locs[ind]))\n",
- " int_locs = locs[ind]\n",
- "\n",
- " if i == 0:\n",
- " aux_ibis = np.diff(int_locs)\n",
- " else:\n",
- " ind, = np.where(locs >= i*w*fs)\n",
- " last = locs[ind[0] - 1]\n",
- " aux_ibis = np.diff(np.append(last, int_locs))\n",
- " avg_ibis = np.mean(aux_ibis)\n",
- " th = np.append((avg_ibis - 0.3*avg_ibis), (avg_ibis + 0.3*avg_ibis))\n",
- " ind1, = np.where(aux_ibis > th[0])\n",
- " #print('Ind1: ' + str(ind1))\n",
- " ind2, = np.where(aux_ibis < th[1])\n",
- " #print('Ind2: ' + str(ind2))\n",
- " ind = np.intersect1d(ind1, ind2)\n",
- " #print('Ind: ' + str(ind))\n",
- "\n",
- " c_locs = np.append(c_locs, int_locs[ind]).astype(int)\n",
- " print(c_locs)\n",
- "\n",
- " #fig = plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.plot(sig)\n",
- " #plt.scatter(locs,x[locs],marker = 'o',color = 'red')\n",
- " #if len(c_locs) != 0:\n",
- " #plt.scatter(c_locs,x[c_locs],marker = 'o',color = 'blue')\n",
- "\n",
- " if len(c_locs) != 0:\n",
- " ibis = c_locs\n",
- " else:\n",
- " ibis = locs\n",
- "\n",
- " return ibis\n",
- "\n",
- "def d2max(x, fs):\n",
- " \"\"\"\n",
- " Detects inter-beat intervals using D2Max\n",
- " Citation: Elgendi M, Norton I, Brearley M, Abbott D, Schuurmans D (2013) Systolic Peak Detection in Acceleration\n",
- " Photoplethysmograms Measured from Emergency Responders in Tropical Conditions. PLoS ONE, vol. 8, no. 10,\n",
- " pp. e76585. DOI: 10.1371/journal.pone.0076585\n",
- "\n",
- " Inputs: x, pulsatile signal [user defined units]\n",
- " fs, sampling rate [Hz]\n",
- " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " # Bandpass filter\n",
- " if len(x) < 4098:\n",
- " z_fill = np.zeros(4098 - len(x) + 1)\n",
- " x_z = np.append(x, z_fill)\n",
- " sos = sp.butter(10, [0.5, 8], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
- " x_f = sp.sosfiltfilt(sos, x_z)\n",
- "\n",
- " # Signal clipping\n",
- " ind, = np.where(x_f < 0)\n",
- " x_c = x_f\n",
- " x_c[ind] = 0\n",
- "\n",
- " # Signal squaring\n",
- " x_s = x_c**2\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.plot(x_z)\n",
- " #plt.plot(x_f)\n",
- " #plt.plot(x_c)\n",
- " #plt.plot(x_s)\n",
- "\n",
- " # Blocks of interest\n",
- " w1 = (111e-3)*fs\n",
- " w1 = int(2*np.floor(w1/2) + 1)\n",
- " b = (1/w1)*np.ones(w1)\n",
- " ma_pk = sp.filtfilt(b,1,x_s)\n",
- "\n",
- " w2 = (667e-3)*fs\n",
- " w2 = int(2*np.floor(w2/2) + 1)\n",
- " b = (1/w2)*np.ones(w1)\n",
- " ma_bpm = sp.filtfilt(b,1,x_s)\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x_s/np.max(x_s))\n",
- " #plt.plot(ma_pk/np.max(ma_pk))\n",
- " #plt.plot(ma_bpm/np.max(ma_bpm))\n",
- "\n",
- " # Thresholding\n",
- " alpha = 0.02*np.mean(ma_pk)\n",
- " th_1 = ma_bpm + alpha\n",
- " th_2 = w1\n",
- " boi = (ma_pk > th_1).astype(int)\n",
- "\n",
- " blocks_init, = np.where(np.diff(boi) > 0)\n",
- " blocks_init = blocks_init + 1\n",
- " blocks_end, = np.where(np.diff(boi) < 0)\n",
- " blocks_end = blocks_end + 1\n",
- " if blocks_init[0] > blocks_end[0]:\n",
- " blocks_init = np.append(1, blocks_init)\n",
- " if blocks_init[-1] > blocks_end[-1]:\n",
- " blocks_end = np.append(blocks_end, len(x_s))\n",
- " #print('Initial locs BOI: ' + str(blocks_init))\n",
- " #print('Final locs BOI: ' + str(blocks_end))\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x_s[range(len(x))]/np.max(x_s))\n",
- " #plt.plot(boi[range(len(x))])\n",
- "\n",
- " # Search for peaks inside BOIs\n",
- " len_blks = np.zeros(len(blocks_init))\n",
- " ibis = np.zeros(len(blocks_init))\n",
- " for i in range(len(blocks_init)):\n",
- " ind, = np.where(blocks_end > blocks_init[i])\n",
- " ind = ind[0]\n",
- " len_blks[i] = blocks_end[ind] - blocks_init[i]\n",
- " if len_blks[i] >= th_2:\n",
- " aux = x[blocks_init[i]:blocks_end[ind]]\n",
- " if len(aux) != 0:\n",
- " max_val = np.max(aux)\n",
- " max_ind, = np.where(max_val == aux)\n",
- " ibis[i] = max_ind + blocks_init[i] - 1\n",
- "\n",
- " ind, = np.where(len_blks < th_2)\n",
- " if len(ind) != 0:\n",
- " for i in range(len(ind)):\n",
- " boi[blocks_init[i]:blocks_end[i]] = 0\n",
- " ind, = np.where(ibis == 0)\n",
- " ibis = (np.delete(ibis, ind)).astype(int)\n",
- "\n",
- " #plt.plot(boi[range(len(x))])\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
- "\n",
- " return ibis\n",
- "\n",
- "def upslopes(x):\n",
- " \"\"\"\n",
- " Detects inter-beat intervals using Upslopes\n",
- " Citation: Arguello Prada EJ, Serna Maldonado RD (2018) A novel and low-complexity peak detection algorithm for\n",
- " heart rate estimation from low-amplitude photoplethysmographic (PPG) signals. J Med Eng Technol, vol. 42,\n",
- " no. 8, pp. 569-577. DOI: 10.1080/03091902.2019.1572237\n",
- "\n",
- " Inputs: x, pulsatile signal [user defined units]\n",
- " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " # Peak detection\n",
- " th = 6\n",
- " pks = np.empty(0)\n",
- " pos_pk = np.empty(0)\n",
- " pos_pk_b = 0\n",
- " n_pos_pk = 0\n",
- " n_up = 0\n",
- "\n",
- " for i in range(1, len(x)):\n",
- " if x[i] > x[i - 1]:\n",
- " n_up = n_up + 1\n",
- " else:\n",
- " if n_up > th:\n",
- " pos_pk = np.append(pos_pk, i)\n",
- " pos_pk_b = 1\n",
- " n_pos_pk = n_pos_pk + 1\n",
- " n_up_pre = n_up\n",
- " else:\n",
- " pos_pk = pos_pk.astype(int)\n",
- " #print('Possible peaks: ' + str(pos_pk) + ', number of peaks: ' + str(n_pos_pk))\n",
- " if pos_pk_b == 1:\n",
- " if x[i - 1] > x[pos_pk[n_pos_pk - 1]]:\n",
- " pos_pk[n_pos_pk - 1] = i - 1\n",
- " else:\n",
- " pks = np.append(pks, pos_pk[n_pos_pk - 1])\n",
- " th = 0.6*n_up_pre\n",
- " pos_pk_b = 0\n",
- " n_up = 0\n",
- " ibis = pks.astype(int)\n",
- " #print(ibis)\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
- "\n",
- " return ibis\n",
- "\n",
- "def delineator(x, fs):\n",
- " \"\"\"\n",
- " Detects inter-beat intervals using Delineator\n",
- " Citation: Li BN, Dong MC, Vai MI (2010) On an automatic delineator for arterial blood pressure waveforms. Biomed\n",
- " Signal Process Control, vol. 5, no. 1, pp. 76-81. DOI: 10.1016/j.bspc.2009.06.002\n",
- "\n",
- " Inputs: x, pulsatile signal [user defined units]\n",
- " fs, sampling rate [Hz]\n",
- " Outputs: ibis, position of the starting points of inter-beat intervals [number of samples]\n",
- "\n",
- " Developed by: Elisa Mejía Mejía\n",
- " City, University of London\n",
- " Version: 1.0 - June, 2022\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " # Lowpass filter\n",
- " od = 3\n",
- " sos = sp.butter(od, 25, btype = 'low', analog = False, output = 'sos', fs = fs)\n",
- " x_f = sp.sosfiltfilt(sos, x)\n",
- " x_m = 1000*x_f\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x)\n",
- " #plt.plot(x_f)\n",
- " #plt.plot(x_m)\n",
- "\n",
- " # Moving average\n",
- " n = 5\n",
- " b = (1/n)*np.ones(n)\n",
- " x_ma = sp.filtfilt(b,1,x_m)\n",
- "\n",
- " # Compute differentials\n",
- " dif = np.diff(x_ma)\n",
- " dif = 100*np.append(dif[0], dif)\n",
- " dif_ma = sp.filtfilt(b,1,dif)\n",
- "\n",
- " #plt.figure()\n",
- " #plt.plot(x_ma)\n",
- " #plt.plot(dif_ma)\n",
- "\n",
- " # Average thresholds in original signal\n",
- " x_len = len(x)\n",
- " if x_len > 12*fs:\n",
- " n = 10\n",
- " elif x_len > 7*fs:\n",
- " n = 5\n",
- " elif x_len > 4*fs:\n",
- " n = 2\n",
- " else:\n",
- " n = 1\n",
- " #print(n)\n",
- "\n",
- " max_min = np.empty(0)\n",
- " if n > 1:\n",
- " #plt.figure()\n",
- " #plt.plot(x_ma)\n",
- " n_int = np.floor(x_len/(n + 2))\n",
- " #print('Length of intervals: ' + str(n_int))\n",
- " for j in range(n):\n",
- " # Searches for max and min in 1 s intervals\n",
- " amp_min, ind_min, amp_max, ind_max = seek_local(x_ma, int(j*n_int), int(j*n_int + fs))\n",
- " #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
- " #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
- " max_min = np.append(max_min, (amp_max - amp_min))\n",
- " max_min_avg = np.mean(max_min)\n",
- " #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
- " else:\n",
- " amp_min, ind_min , amp_max, ind_max = seek_local(x_ma, int(close_win), int(x_len))\n",
- " #plt.figure()\n",
- " #plt.plot(x_ma)\n",
- " #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
- " #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
- " max_min_avg = amp_max - amp_min\n",
- " #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
- "\n",
- " max_min_lt = 0.4*max_min_avg\n",
- "\n",
- " # Seek pulse beats by min-max method\n",
- " step_win = 2*fs # Window length to look for peaks/onsets\n",
- " close_win = np.floor(0.1*fs)\n",
- " # Value of what is considered too close\n",
- "\n",
- " pks = np.empty(0) # Location of peaks\n",
- " ons = np.empty(0) # Location of onsets\n",
- " dic = np.empty(0) # Location of dicrotic notches\n",
- "\n",
- " pk_index = -1 # Number of peaks found\n",
- " on_index = -1 # Number of onsets found\n",
- " dn_index = -1 # Number of dicrotic notches found\n",
- "\n",
- " i = int(close_win) # Initializes counter\n",
- " while i < x_len: # Iterates through the signal\n",
- " #print('i: ' + str(i))\n",
- " amp_min = x_ma[i] # Gets the initial value for the minimum amplitude\n",
- " amp_max = x_ma[i] # Gets the initial value for the maximum amplitude\n",
- "\n",
- " ind = i # Initializes the temporal location of the index\n",
- " aux_pks = i # Initializes the temporal location of the peak\n",
- " aux_ons = i # Initializes the temporal location of the onset\n",
- "\n",
- " # Iterates while ind is lower than the length of the signal\n",
- " while ind < x_len - 1:\n",
- " #print('Ind: ' + str(ind))\n",
- " # Verifies if no peak has been found in 2 seconds\n",
- " if (ind - i) > step_win:\n",
- " #print('Peak not found in 2 s')\n",
- " ind = i # Refreshes the temporal location of the index\n",
- " max_min_avg = 0.6*max_min_avg # Refreshes the threshold for the amplitude\n",
- " # Verifies if the threshold is lower than the lower limit\n",
- " if max_min_avg <= max_min_lt:\n",
- " max_min_avg = 2.5*max_min_lt # Refreshes the threshold\n",
- " break\n",
- "\n",
- " # Verifies if the location is a candidate peak\n",
- " if (dif_ma[ind - 1]*dif_ma[ind + 1]) <= 0:\n",
- " #print('There is a candidate peak')\n",
- " # Determines initial and end points of a window to search for local peaks and onsets\n",
- " if (ind + 5) < x_len:\n",
- " i_stop = ind + 5\n",
- " else:\n",
- " i_stop = x_len - 1\n",
- " if (ind - 5) >= 0:\n",
- " i_start = ind - 5\n",
- " else:\n",
- " i_start = 0\n",
- "\n",
- " # Checks for artifacts of saturated or signal loss\n",
- " if (i_stop - ind) >= 5:\n",
- " for j in range(ind, i_stop):\n",
- " if dif_ma[j] != 0:\n",
- " break\n",
- " if j == i_stop:\n",
- " #print('Artifact')\n",
- " break\n",
- "\n",
- " # Candidate onset\n",
- " #print('Looking for candidate onsets...')\n",
- " #plt.figure()\n",
- " #plt.plot(x_ma)\n",
- " if dif_ma[i_start] < 0:\n",
- " if dif_ma[i_stop] > 0:\n",
- " aux_min, ind_min, _, _ = seek_local(x_ma, int(i_start), int(i_stop))\n",
- " #plt.scatter(ind_min, aux_min, marker = 'o', color = 'red')\n",
- " if np.abs(ind_min - ind) <= 2:\n",
- " amp_min = aux_min\n",
- " aux_ons = ind_min\n",
- " #print('Candidate onset: ' + str([ind_min, amp_min]))\n",
- " # Candidate peak\n",
- " #print('Looking for candidate peaks...')\n",
- " if dif_ma[i_start] > 0:\n",
- " if dif_ma[i_stop] < 0:\n",
- " _, _, aux_max, ind_max = seek_local(x_ma, int(i_start), int(i_stop))\n",
- " #plt.scatter(ind_max, aux_max, marker = 'o', color = 'green')\n",
- " if np.abs(ind_max - ind) <= 2:\n",
- " amp_max = aux_max\n",
- " aux_pks = ind_max\n",
- " #print('Candidate peak: ' + str([ind_max, amp_max]))\n",
- " # Verifies if the amplitude of the pulse is larger than 0.4 times the mean value:\n",
- " #print('Pulse amplitude: ' + str(amp_max - amp_min) + ', thresholds: ' +\n",
- " # str([0.4*max_min_avg, 2*max_min_avg]))\n",
- " if (amp_max - amp_min) > 0.4*max_min_avg:\n",
- " #print('Expected amplitude of pulse')\n",
- " # Verifies if the amplitude of the pulse is lower than 2 times the mean value:\n",
- " if (amp_max - amp_min) < 2*max_min_avg:\n",
- " #print('Expected duration of pulse')\n",
- " if aux_pks > aux_ons:\n",
- " #print('Refining onsets...')\n",
- " # Refine onsets:\n",
- " aux_min = x_ma[aux_ons]\n",
- " temp_ons = aux_ons\n",
- " for j in range(aux_pks, aux_ons + 1, -1):\n",
- " if x_ma[j] < aux_min:\n",
- " aux_min = x_ma[j]\n",
- " temp_ons = j\n",
- " amp_min = aux_min\n",
- " aux_ons = temp_ons\n",
- "\n",
- " # If there is at least one peak found before:\n",
- " #print('Number of previous peaks: ' + str(pk_index + 1))\n",
- " if pk_index >= 0:\n",
- " #print('There were previous peaks')\n",
- " #print('Duration of ons to peak interval: ' + str(aux_ons - pks[pk_index]) +\n",
- " # ', threshold: ' + str([3*close_win, step_win]))\n",
- " # If the duration of the pulse is too short:\n",
- " if (aux_ons - pks[pk_index]) < 3*close_win:\n",
- " #print('Too short interbeat interval')\n",
- " ind = i\n",
- " max_min_avg = 2.5*max_min_lt\n",
- " break\n",
- " # If the time difference between consecutive peaks is longer:\n",
- " if (aux_pks - pks[pk_index]) > step_win:\n",
- " #print('Too long interbeat interval')\n",
- " pk_index = pk_index - 1\n",
- " on_index = on_index - 1\n",
- " #if dn_index > 0:\n",
- " # dn_index = dn_index - 1\n",
- " # If there are still peaks, add the new peak:\n",
- " if pk_index >= 0:\n",
- " #print('There are still previous peaks')\n",
- " pk_index = pk_index + 1\n",
- " on_index = on_index + 1\n",
- " pks = np.append(pks, aux_pks)\n",
- " ons = np.append(ons, aux_ons)\n",
- " #print('Peaks: ' + str(pks))\n",
- " #print('Onsets: ' + str(ons))\n",
- "\n",
- " tf = ons[pk_index] - ons[pk_index - 1]\n",
- "\n",
- " to = np.floor(fs/20)\n",
- " tff = np.floor(0.1*tf)\n",
- " if tff < to:\n",
- " to = tff\n",
- " to = pks[pk_index - 1] + to\n",
- "\n",
- " te = np.floor(fs/20)\n",
- " tff = np.floor(0.5*tf)\n",
- " if tff < te:\n",
- " te = tff\n",
- " te = pks[pk_index - 1] + te\n",
- "\n",
- " #tff = seek_dicrotic(dif_ma[to:te])\n",
- " #if tff == 0:\n",
- " # tff = te - pks[pk_index - 1]\n",
- " # tff = np.floor(tff/3)\n",
- " #dn_index = dn_index + 1\n",
- " #dic[dn_index] = to + tff\n",
- "\n",
- " ind = ind + close_win\n",
- " break\n",
- " # If it is the first peak:\n",
- " if pk_index < 0:\n",
- " #print('There were no previous peaks')\n",
- " pk_index = pk_index + 1\n",
- " on_index = on_index + 1\n",
- " pks = np.append(pks, aux_pks)\n",
- " ons = np.append(ons, aux_ons)\n",
- " #print('Peaks: ' + str(pks))\n",
- " #print('Onsets: ' + str(ons))\n",
- " ind = ind + close_win\n",
- " break\n",
- "\n",
- " ind = ind + 1\n",
- " i = int(ind + 1)\n",
- "\n",
- " if len(pks) == 0:\n",
- " return -1\n",
- " else:\n",
- " x_len = len(pks)\n",
- " temp_p = np.empty(0)\n",
- " for i in range(x_len):\n",
- " temp_p = np.append(temp_p, pks[i] - od)\n",
- " ttk = temp_p[0]\n",
- " if ttk < 0:\n",
- " temp_p[0] = 0\n",
- " pks = temp_p\n",
- "\n",
- " x_len = len(ons)\n",
- " temp_o = np.empty(0)\n",
- " for i in range(x_len):\n",
- " temp_o = np.append(temp_o, ons[i] - od)\n",
- " ttk = temp_o[0]\n",
- " if ttk < 0:\n",
- " temp_o[0] = 0\n",
- " ons = temp_o\n",
- "\n",
- " pks = pks + 5\n",
- " ibis = pks.astype(int)\n",
- "\n",
- " return ibis"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ebb59cf4",
- "metadata": {},
- "source": [
- "Now return to the 'Detect beats in the PPG signal' step."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "79f99f24",
- "metadata": {},
- "source": [
- "---\n",
- "## Fiducial Point Functions"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 67,
- "id": "82b8e899",
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [],
- "source": [
- "def fiducial_points(x,pks,fs,vis):\n",
- " \"\"\"\n",
- " Description: Pulse detection and correction from pulsatile signals\n",
- " Inputs: x, array with pulsatile signal [user defined units]\n",
- " pks, array with the position of the peaks [number of samples]\n",
- " fs, sampling rate of signal [Hz]\n",
- " vis, visualisation option [True, False]\n",
- " Outputs: fidp, dictionary with the positions of several fiducial points for the cardiac cycles [number of samples]\n",
- " \n",
- " Fiducial points: 1: Systolic peak (pks)\n",
- " 2: Onset, as the minimum before the systolic peak (ons)\n",
- " 3: Onset, using the tangent intersection method (ti) \n",
- " 4: Diastolic peak (dpk)\n",
- " 5: Maximum slope (m1d)\n",
- " 6: a point from second derivative PPG (a2d)\n",
- " 7: b point from second derivative PPG (b2d)\n",
- " 8: c point from second derivative PPG (c2d)\n",
- " 9: d point from second derivative PPG (d2d)\n",
- " 10: e point from second derivative PPG (e2d)\n",
- " 11: p1 from the third derivative PPG (p1) \n",
- " 12: p2 from the third derivative PPG (p2)\n",
- " \n",
- " Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
- " \n",
- " Version: 1.0 - June 2022\n",
- " \n",
- " Developed by: Elisa Mejía-Mejía\n",
- " City, University of London\n",
- " \n",
- " Edited by: Peter Charlton (see \"Added by PC\")\n",
- " \n",
- " \"\"\" \n",
- " # First, second and third derivatives\n",
- " d1x = sp.savgol_filter(x, 9, 5, deriv = 1) \n",
- " d2x = sp.savgol_filter(x, 9, 5, deriv = 2) \n",
- " d3x = sp.savgol_filter(x, 9, 5, deriv = 3) \n",
- " \n",
- " #plt.figure()\n",
- " #plt.plot(x/np.max(x))\n",
- " #plt.plot(d1x/np.max(d1x))\n",
- " #plt.plot(d2x/np.max(d2x))\n",
- " #plt.plot(d3x/np.max(d3x))\n",
- " \n",
- " # Search in time series: Onsets between consecutive peaks\n",
- " ons = np.empty(0)\n",
- " for i in range(len(pks) - 1):\n",
- " start = pks[i]\n",
- " stop = pks[i + 1]\n",
- " ibi = x[start:stop]\n",
- " #plt.figure()\n",
- " #plt.plot(ibi, color = 'black')\n",
- " aux_ons, = np.where(ibi == np.min(ibi))\n",
- " ind_ons = aux_ons.astype(int)\n",
- " ons = np.append(ons, ind_ons + start) \n",
- " #plt.plot(ind_ons, ibi[ind_ons], marker = 'o', color = 'red') \n",
- " ons = ons.astype(int)\n",
- " #print('Onsets: ' + str(ons))\n",
- " #plt.figure()\n",
- " #plt.plot(x, color = 'black')\n",
- " #plt.scatter(pks, x[pks], marker = 'o', color = 'red') \n",
- " #plt.scatter(ons, x[ons], marker = 'o', color = 'blue') \n",
- " \n",
- " # Search in time series: Diastolic peak and dicrotic notch between consecutive onsets\n",
- " dia = np.empty(0)\n",
- " dic = np.empty(0)\n",
- " for i in range(len(ons) - 1):\n",
- " start = ons[i]\n",
- " stop = ons[i + 1]\n",
- " ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
- " ind_pks = pks[ind_pks]\n",
- " ibi_portion = x[ind_pks:stop]\n",
- " ibi_2d_portion = d2x[ind_pks:stop]\n",
- " #plt.figure()\n",
- " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
- " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
- " aux_dic, _ = sp.find_peaks(ibi_2d_portion)\n",
- " aux_dic = aux_dic.astype(int)\n",
- " aux_dia, _ = sp.find_peaks(-ibi_2d_portion)\n",
- " aux_dia = aux_dia.astype(int) \n",
- " if len(aux_dic) != 0:\n",
- " ind_max, = np.where(ibi_2d_portion[aux_dic] == np.max(ibi_2d_portion[aux_dic]))\n",
- " aux_dic_max = aux_dic[ind_max]\n",
- " if len(aux_dia) != 0:\n",
- " nearest = aux_dia - aux_dic_max\n",
- " aux_dic = aux_dic_max\n",
- " dic = np.append(dic, (aux_dic + ind_pks).astype(int))\n",
- " #plt.scatter(aux_dic, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
- " ind_dia, = np.where(nearest > 0)\n",
- " aux_dia = aux_dia[ind_dia]\n",
- " nearest = nearest[ind_dia]\n",
- " if len(nearest) != 0:\n",
- " ind_nearest, = np.where(nearest == np.min(nearest))\n",
- " aux_dia = aux_dia[ind_nearest]\n",
- " dia = np.append(dia, (aux_dia + ind_pks).astype(int))\n",
- " #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')\n",
- " #break\n",
- " else:\n",
- " dic = np.append(dic, (aux_dic_max + ind_pks).astype(int))\n",
- " #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o') \n",
- " dia = dia.astype(int)\n",
- " dic = dic.astype(int)\n",
- " #plt.scatter(dia, x[dia], marker = 'o', color = 'orange')\n",
- " #plt.scatter(dic, x[dic], marker = 'o', color = 'green')\n",
- " \n",
- " # Search in D1: Maximum slope point\n",
- " m1d = np.empty(0)\n",
- " for i in range(len(ons) - 1):\n",
- " start = ons[i]\n",
- " stop = ons[i + 1]\n",
- " ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
- " ind_pks = pks[ind_pks]\n",
- " ibi_portion = x[start:ind_pks]\n",
- " ibi_1d_portion = d1x[start:ind_pks]\n",
- " #plt.figure()\n",
- " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
- " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
- " aux_m1d, _ = sp.find_peaks(ibi_1d_portion)\n",
- " aux_m1d = aux_m1d.astype(int) \n",
- " if len(aux_m1d) != 0:\n",
- " ind_max, = np.where(ibi_1d_portion[aux_m1d] == np.max(ibi_1d_portion[aux_m1d]))\n",
- " aux_m1d_max = aux_m1d[ind_max]\n",
- " if len(aux_m1d_max) > 1:\n",
- " aux_m1d_max = aux_m1d_max[0]\n",
- " m1d = np.append(m1d, (aux_m1d_max + start).astype(int))\n",
- " #plt.scatter(aux_m1d, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
- " #break \n",
- " m1d = m1d.astype(int)\n",
- " #plt.scatter(m1d, x[m1d], marker = 'o', color = 'purple')\n",
- " \n",
- " # Search in time series: Tangent intersection points\n",
- " tip = np.empty(0)\n",
- " for i in range(len(ons) - 1):\n",
- " start = ons[i]\n",
- " stop = ons[i + 1]\n",
- " ibi_portion = x[start:stop]\n",
- " ibi_1d_portion = d1x[start:stop]\n",
- " ind_m1d, = np.intersect1d(np.where(m1d < stop), np.where(m1d > start))\n",
- " ind_m1d = m1d[ind_m1d] - start\n",
- " #plt.figure()\n",
- " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
- " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
- " #plt.scatter(ind_m1d, ibi_portion[ind_m1d]/np.max(ibi_portion), marker = 'o')\n",
- " #plt.scatter(ind_m1d, ibi_1d_portion[ind_m1d]/np.max(ibi_1d_portion), marker = 'o')\n",
- " aux_tip = np.round(((ibi_portion[0] - ibi_portion[ind_m1d])/ibi_1d_portion[ind_m1d]) + ind_m1d)\n",
- " aux_tip = aux_tip.astype(int)\n",
- " tip = np.append(tip, (aux_tip + start).astype(int)) \n",
- " #plt.scatter(aux_tip, ibi_portion[aux_tip]/np.max(ibi_portion), marker = 'o')\n",
- " #break\n",
- " tip = tip.astype(int)\n",
- " #plt.scatter(tip, x[tip], marker = 'o', color = 'aqua')\n",
- " \n",
- " # Search in D2: A, B, C, D and E points\n",
- " a2d = np.empty(0)\n",
- " b2d = np.empty(0)\n",
- " c2d = np.empty(0)\n",
- " d2d = np.empty(0)\n",
- " e2d = np.empty(0)\n",
- " for i in range(len(ons) - 1):\n",
- " start = ons[i]\n",
- " stop = ons[i + 1]\n",
- " ibi_portion = x[start:stop]\n",
- " ibi_1d_portion = d1x[start:stop]\n",
- " ibi_2d_portion = d2x[start:stop]\n",
- " ind_m1d = np.intersect1d(np.where(m1d > start),np.where(m1d < stop))\n",
- " ind_m1d = m1d[ind_m1d]\n",
- " #plt.figure()\n",
- " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
- " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
- " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
- " aux_m2d_pks, _ = sp.find_peaks(ibi_2d_portion)\n",
- " aux_m2d_ons, _ = sp.find_peaks(-ibi_2d_portion)\n",
- " # a point:\n",
- " ind_a, = np.where(ibi_2d_portion[aux_m2d_pks] == np.max(ibi_2d_portion[aux_m2d_pks]))\n",
- " ind_a = aux_m2d_pks[ind_a]\n",
- " if (ind_a < ind_m1d):\n",
- " a2d = np.append(a2d, ind_a + start)\n",
- " #plt.scatter(ind_a, ibi_2d_portion[ind_a]/np.max(ibi_2d_portion), marker = 'o')\n",
- " # b point:\n",
- " ind_b = np.where(ibi_2d_portion[aux_m2d_ons] == np.min(ibi_2d_portion[aux_m2d_ons]))\n",
- " ind_b = aux_m2d_ons[ind_b]\n",
- " if (ind_b > ind_a) and (ind_b < len(ibi_2d_portion)):\n",
- " b2d = np.append(b2d, ind_b + start)\n",
- " #plt.scatter(ind_b, ibi_2d_portion[ind_b]/np.max(ibi_2d_portion), marker = 'o')\n",
- " # e point:\n",
- " ind_e, = np.where(aux_m2d_pks > ind_m1d - start)\n",
- " aux_m2d_pks = aux_m2d_pks[ind_e]\n",
- " ind_e, = np.where(aux_m2d_pks < 0.6*len(ibi_2d_portion))\n",
- " ind_e = aux_m2d_pks[ind_e]\n",
- " if len(ind_e) >= 1:\n",
- " if len(ind_e) >= 2:\n",
- " ind_e = ind_e[1]\n",
- " e2d = np.append(e2d, ind_e + start)\n",
- " #plt.scatter(ind_e, ibi_2d_portion[ind_e]/np.max(ibi_2d_portion), marker = 'o')\n",
- " # c point:\n",
- " ind_c, = np.where(aux_m2d_pks < ind_e)\n",
- " if len(ind_c) != 0:\n",
- " ind_c_aux = aux_m2d_pks[ind_c]\n",
- " ind_c, = np.where(ibi_2d_portion[ind_c_aux] == np.max(ibi_2d_portion[ind_c_aux]))\n",
- " ind_c = ind_c_aux[ind_c]\n",
- " if len(ind_c) != 0:\n",
- " c2d = np.append(c2d, ind_c + start)\n",
- " #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
- " else:\n",
- " aux_m1d_ons, _ = sp.find_peaks(-ibi_1d_portion)\n",
- " ind_c, = np.where(aux_m1d_ons < ind_e)\n",
- " ind_c_aux = aux_m1d_ons[ind_c]\n",
- " if len(ind_c) != 0:\n",
- " ind_c, = np.where(ind_c_aux > ind_b)\n",
- " ind_c = ind_c_aux[ind_c]\n",
- " if len(ind_c) > 1:\n",
- " ind_c = ind_c[0]\n",
- " c2d = np.append(c2d, ind_c + start)\n",
- " #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
- " # d point:\n",
- " if len(ind_c) != 0:\n",
- " ind_d = np.intersect1d(np.where(aux_m2d_ons < ind_e), np.where(aux_m2d_ons > ind_c))\n",
- " if len(ind_d) != 0:\n",
- " ind_d_aux = aux_m2d_ons[ind_d]\n",
- " ind_d, = np.where(ibi_2d_portion[ind_d_aux] == np.min(ibi_2d_portion[ind_d_aux]))\n",
- " ind_d = ind_d_aux[ind_d]\n",
- " if len(ind_d) != 0:\n",
- " d2d = np.append(d2d, ind_d + start)\n",
- " #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o') \n",
- " else:\n",
- " ind_d = ind_c\n",
- " d2d = np.append(d2d, ind_d + start)\n",
- " #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')\n",
- " a2d = a2d.astype(int)\n",
- " b2d = b2d.astype(int)\n",
- " c2d = c2d.astype(int)\n",
- " d2d = d2d.astype(int)\n",
- " e2d = e2d.astype(int)\n",
- " #plt.figure()\n",
- " #plt.plot(d2x, color = 'black')\n",
- " #plt.scatter(a2d, d2x[a2d], marker = 'o', color = 'red') \n",
- " #plt.scatter(b2d, d2x[b2d], marker = 'o', color = 'blue')\n",
- " #plt.scatter(c2d, d2x[c2d], marker = 'o', color = 'green')\n",
- " #plt.scatter(d2d, d2x[d2d], marker = 'o', color = 'orange')\n",
- " #plt.scatter(e2d, d2x[e2d], marker = 'o', color = 'purple')\n",
- " \n",
- " # Search in D3: P1 and P2 points\n",
- " p1p = np.empty(0)\n",
- " p2p = np.empty(0)\n",
- " for i in range(len(ons) - 1):\n",
- " start = ons[i]\n",
- " stop = ons[i + 1]\n",
- " ibi_portion = x[start:stop]\n",
- " ibi_1d_portion = d1x[start:stop]\n",
- " ibi_2d_portion = d2x[start:stop]\n",
- " ibi_3d_portion = d3x[start:stop]\n",
- " ind_b = np.intersect1d(np.where(b2d > start),np.where(b2d < stop))\n",
- " ind_b = b2d[ind_b]\n",
- " ind_c = np.intersect1d(np.where(c2d > start),np.where(c2d < stop))\n",
- " ind_c = c2d[ind_c]\n",
- " ind_d = np.intersect1d(np.where(d2d > start),np.where(d2d < stop))\n",
- " ind_d = d2d[ind_d]\n",
- " ind_dic = np.intersect1d(np.where(dic > start),np.where(dic < stop))\n",
- " ind_dic = dic[ind_dic]\n",
- " #plt.figure()\n",
- " #plt.plot(ibi_portion/np.max(ibi_portion))\n",
- " #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
- " #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
- " #plt.plot(ibi_3d_portion/np.max(ibi_3d_portion))\n",
- " #plt.scatter(ind_b - start, ibi_3d_portion[ind_b - start]/np.max(ibi_3d_portion), marker = 'o')\n",
- " #plt.scatter(ind_c - start, ibi_3d_portion[ind_c - start]/np.max(ibi_3d_portion), marker = 'o')\n",
- " #plt.scatter(ind_d - start, ibi_3d_portion[ind_d - start]/np.max(ibi_3d_portion), marker = 'o')\n",
- " #plt.scatter(ind_dic - start, ibi_3d_portion[ind_dic - start]/np.max(ibi_3d_portion), marker = 'o')\n",
- " aux_p3d_pks, _ = sp.find_peaks(ibi_3d_portion)\n",
- " aux_p3d_ons, _ = sp.find_peaks(-ibi_3d_portion)\n",
- " # P1:\n",
- " if (len(aux_p3d_pks) != 0 and len(ind_b) != 0):\n",
- " ind_p1, = np.where(aux_p3d_pks > ind_b - start)\n",
- " if len(ind_p1) != 0:\n",
- " ind_p1 = aux_p3d_pks[ind_p1[0]]\n",
- " p1p = np.append(p1p, ind_p1 + start)\n",
- " #plt.scatter(ind_p1, ibi_3d_portion[ind_p1]/np.max(ibi_3d_portion), marker = 'o')\n",
- " # P2:\n",
- " if (len(aux_p3d_ons) != 0 and len(ind_c) != 0 and len(ind_d) != 0):\n",
- " if ind_c == ind_d:\n",
- " ind_p2, = np.where(aux_p3d_ons > ind_d - start)\n",
- " ind_p2 = aux_p3d_ons[ind_p2[0]]\n",
- " else:\n",
- " ind_p2, = np.where(aux_p3d_ons < ind_d - start)\n",
- " ind_p2 = aux_p3d_ons[ind_p2[-1]]\n",
- " if len(ind_dic) != 0:\n",
- " aux_x_pks, _ = sp.find_peaks(ibi_portion)\n",
- " if ind_p2 > ind_dic - start:\n",
- " ind_between = np.intersect1d(np.where(aux_x_pks < ind_p2), np.where(aux_x_pks > ind_dic - start))\n",
- " else:\n",
- " ind_between = np.intersect1d(np.where(aux_x_pks > ind_p2), np.where(aux_x_pks < ind_dic - start))\n",
- " if len(ind_between) != 0:\n",
- " ind_p2 = aux_x_pks[ind_between[0]]\n",
- " p2p = np.append(p2p, ind_p2 + start)\n",
- " #plt.scatter(ind_p2, ibi_3d_portion[ind_p2]/np.max(ibi_3d_portion), marker = 'o')\n",
- " p1p = p1p.astype(int)\n",
- " p2p = p2p.astype(int)\n",
- " #plt.figure()\n",
- " #plt.plot(d3x, color = 'black')\n",
- " #plt.scatter(p1p, d3x[p1p], marker = 'o', color = 'green') \n",
- " #plt.scatter(p2p, d3x[p2p], marker = 'o', color = 'orange')\n",
- " \n",
- " # Added by PC: Magnitudes of second derivative points\n",
- " bmag2d = np.zeros(len(b2d))\n",
- " cmag2d = np.zeros(len(b2d))\n",
- " dmag2d = np.zeros(len(b2d))\n",
- " emag2d = np.zeros(len(b2d))\n",
- " for beat_no in range(0,len(d2d)):\n",
- " bmag2d[beat_no] = d2x[b2d[beat_no]]/d2x[a2d[beat_no]]\n",
- " cmag2d[beat_no] = d2x[c2d[beat_no]]/d2x[a2d[beat_no]]\n",
- " dmag2d[beat_no] = d2x[d2d[beat_no]]/d2x[a2d[beat_no]] \n",
- " emag2d[beat_no] = d2x[e2d[beat_no]]/d2x[a2d[beat_no]] \n",
- " \n",
- " # Added by PC: Refine the list of fiducial points to only include those corresponding to beats for which a full set of points is available\n",
- " off = ons[1:]\n",
- " ons = ons[:-1]\n",
- " if pks[0] < ons[0]:\n",
- " pks = pks[1:]\n",
- " if pks[-1] > off[-1]:\n",
- " pks = pks[:-1]\n",
- " \n",
- " # Visualise results\n",
- " if vis == True:\n",
- " fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1, sharex = True, sharey = False, figsize=(10,10))\n",
- " fig.suptitle('Fiducial points') \n",
- "\n",
- " ax1.plot(x, color = 'black')\n",
- " ax1.scatter(pks, x[pks.astype(int)], color = 'orange', label = 'pks')\n",
- " ax1.scatter(ons, x[ons.astype(int)], color = 'green', label = 'ons')\n",
- " ax1.scatter(off, x[off.astype(int)], marker = '*', color = 'green', label = 'off')\n",
- " ax1.scatter(dia, x[dia.astype(int)], color = 'yellow', label = 'dia')\n",
- " ax1.scatter(dic, x[dic.astype(int)], color = 'blue', label = 'dic')\n",
- " ax1.scatter(tip, x[tip.astype(int)], color = 'purple', label = 'dic')\n",
- " ax1.legend()\n",
- " ax1.set_ylabel('x')\n",
- "\n",
- " ax2.plot(d1x, color = 'black')\n",
- " ax2.scatter(m1d, d1x[m1d.astype(int)], color = 'orange', label = 'm1d')\n",
- " ax2.legend()\n",
- " ax2.set_ylabel('d1x')\n",
- "\n",
- " ax3.plot(d2x, color = 'black')\n",
- " ax3.scatter(a2d, d2x[a2d.astype(int)], color = 'orange', label = 'a')\n",
- " ax3.scatter(b2d, d2x[b2d.astype(int)], color = 'green', label = 'b')\n",
- " ax3.scatter(c2d, d2x[c2d.astype(int)], color = 'yellow', label = 'c')\n",
- " ax3.scatter(d2d, d2x[d2d.astype(int)], color = 'blue', label = 'd')\n",
- " ax3.scatter(e2d, d2x[e2d.astype(int)], color = 'purple', label = 'e')\n",
- " ax3.legend()\n",
- " ax3.set_ylabel('d2x')\n",
- "\n",
- " ax4.plot(d3x, color = 'black')\n",
- " ax4.scatter(p1p, d3x[p1p.astype(int)], color = 'orange', label = 'p1')\n",
- " ax4.scatter(p2p, d3x[p2p.astype(int)], color = 'green', label = 'p2')\n",
- " ax4.legend()\n",
- " ax4.set_ylabel('d3x')\n",
- "\n",
- " plt.subplots_adjust(left = 0.1,\n",
- " bottom = 0.1, \n",
- " right = 0.9, \n",
- " top = 0.9, \n",
- " wspace = 0.4, \n",
- " hspace = 0.4)\n",
- " \n",
- " # Creation of dictionary\n",
- " fidp = {'pks': pks.astype(int),\n",
- " 'ons': ons.astype(int),\n",
- " 'off': off.astype(int), # Added by PC\n",
- " 'tip': tip.astype(int),\n",
- " 'dia': dia.astype(int),\n",
- " 'dic': dic.astype(int),\n",
- " 'm1d': m1d.astype(int),\n",
- " 'a2d': a2d.astype(int),\n",
- " 'b2d': b2d.astype(int),\n",
- " 'c2d': c2d.astype(int),\n",
- " 'd2d': d2d.astype(int),\n",
- " 'e2d': e2d.astype(int),\n",
- " 'bmag2d': bmag2d,\n",
- " 'cmag2d': cmag2d,\n",
- " 'dmag2d': dmag2d,\n",
- " 'emag2d': emag2d,\n",
- " 'p1p': p1p.astype(int),\n",
- " 'p2p': p2p.astype(int)\n",
- " }\n",
- " \n",
- " return fidp"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "7103bbf4",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "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": {},
- "toc_section_display": true,
- "toc_window_display": true
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
\ No newline at end of file