
Product
Socket Now Protects the Chrome Extension Ecosystem
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
This is a mirror of the ECG GUDB http://researchdata.gla.ac.uk/716/ and provides transparent online access via a python API.
DOI: https://doi.org/10.5281/zenodo.10925419
It contains ECGs from 25 subjects. Each subject was recorded performing 5 different tasks for two minutes:
The following channels were recorded with two Attys (https://www.attys.tech/) running synchronously:
The cheststrap ECG allowed R peak detection even while jogging at a very high precision (+/- one sample). The sampling rate was 250Hz at a resolution of 24 bits. The database contains the unfiltered, DC-coupled signals as originally recorded. In order to be able to link the ECG artefacts to the behaviour of the subject all but one subject gave permission to be filmed and the videos are also part of the database.
Simply install via pip or pip3::
pip install ecg_gudb_database pip3 install ecg_gudb_database
Check out usage_example.py
on github which plots the ECG and the heartrate of one subject.
The module is called ecg_gudb_database
::
from ecg_gudb_database import GUDb
The constructor loads the ECG data of one subject/experiment from github::
ecg_class = GUDb(subject_number, experiment)
where subject_number
is from 0..24 and experiment
is 'sitting', 'maths', 'walking', 'hand_bike' or 'jogging'.
The array ecg_class.experiments
is an array of all experiments so that one can loop through the different experiments.
Optionally, in case you decide later to download the whole dataset from http://researchdata.gla.ac.uk/716/ then specify the absolute path to the dataset with the optional parameter url without the "file:" specifier::
ecg_class = GUDb(subject_number, experiment, url = "/home/bp1/dataset_dataset_716/experiment_data/")
The data is available as numpy arrays. The sampling rate is 250Hz for all experiments (ecg_class.fs
).
We have recorded Einthoven and from a chest strap.
Einthoven::
ecg_class.einthoven_I, ecg_class.einthoven_I_filt
ecg_class.einthoven_II, ecg_class.einthoven_II_filt
ecg_class.einthoven_III, ecg_class.einthoven_III_filt
Chest strap::
ecg_class.cs_V2_V1, ecg_class.cs_V2_V1_filt
where the filtered versions have 50Hz mains and DC removed.
The two boolean variables ecg_class.anno_cs_exists
and ecg_class.anno_cables_exists
tell the user if annotations exist. If yes they can be obtained::
if ecg_class.anno_cs_exists:
chest_strap_anno = ecg_class.anno_cs
else:
print('No chest strap annotations')
if ecg_class.anno_cables_exists:
cables_anno = ecg_class.anno_cables
else:
print("No cables annotations")
The accelerometer was worn on a standard belt around the subject's waist::
ecg_class.acc_x
ecg_class.acc_y
ecg_class.acc_z
Where the participant has consented, there is a video for each of the tasks. Here is an example: https://berndporr.github.io/ECG-GUDB/ The video and ECG data have been synchronised so they start and end at the same time. The full dataset with the videos can be requested here:
FAQs
API for a high precision ECG Database with annotated R peaks (GUDB)
We found that ecg-gudb-database demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.