Code Monkey home page Code Monkey logo

peakwatch's Introduction

PeakWatch

PeakWatch is a project to demonstrate, evaluate, and validate the functionality of the PeakSwift package, which implements algorithms for cleaning up electrocardiogram (ECG) signals, detecting R-peaks, and evaluating signal quality. The associated application PeakWatch takes advantage of all the features PeakSwift has to offer and presents this content in a visually appealing way. Calculations are performed using Apple's HKElectrocardiogram on the device. The results, including electrocardiogram signals, detected R-peaks, transit time, and signal quality, can be exported as a JSON file for further analysis. A Jupyter notebook is provided for analysis of the data to provide insight into runtime, consistency of signal quality assessment, and accuracy of detected peaks compared to the established NeuroKit library.

Features

  • Demonstrates the functionality of PeakSwift's ECG signal processing and R-peak detection algorithms.
  • Displays ECG data in an intuitive and visually appealing format.
  • Utilizes Apple's HealthKit for on-device ECG signal analysis.
  • Allows exporting of results, including ECG signals, detected R-peaks, runtime, and signal quality, as a JSON file.
  • Includes a Jupyter notebook for in-depth data analysis and comparison with the NeuroKit library.

Screenshots

Installation

To install PeakWatch:

  1. Clone this repository: git clone https://github.com/CardioKit/PeakWatch.git
  2. Navigate to src
  3. Open the project in Xcode.
  4. Build and run on a simulator or device.

Usage

Follow these steps to use PeakWatch:

  1. Launch the app on your iOS device.
  2. Provide necessary permissions for accessing HealthKit data.
  3. Explore the ECG data, detected R-peaks, and signal quality presented by the app.
  4. Export results as a JSON file for further analysis.

Data Analysis

Use the provided Jupyter notebook to perform detailed data analysis:

  1. Navigate to the analysis folder.
  2. Open the Jupyter notebook file.
  3. Follow the instructions within the notebook to analyze runtime, signal quality assessment consistency, and peak detection accuracy.

Dependencies

PeakWatch relies on the following libraries:

Contributing

We welcome contributions to enhance PeakWatch:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Create a pull request.

License

This project is licensed under the Apache License 2.0.

peakwatch's People

Contributors

nikitachar avatar numericalmax avatar

Stargazers

 avatar  avatar  avatar

Forkers

sc0210

peakwatch's Issues

problem with package dependency

Hello, I tried your sample code but I have issue with peakswift package dependency. See the screenshot. I have an error when I want to add it to the project. I'm using latest Xcode 15.0

Capture d’écran 2023-10-19 à 12 03 17

Async algorithm execution and benchmarking

We should consider that the algorithms are executed not on the main thread to ensure non-blocking UI updates.

Furthermore, we need to consider how async programming will affect benchmarking. (e.g. execution of the first thread etc)

Share Performance

The time for the share process, including the preparation of the JSON, takes far too long.

Create a readme

Create a readme file that includes a description:

  • how to update the app when there is a new algorithm in PeakSwift

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.