https://github.com/ai4healthuol/s4ecg

https://github.com/ai4healthuol/s4ecg

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: AI4HealthUOL
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 518 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 11 months ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

S4ECG: Exploring the impact of long-range interactions for arrhythmia prediction

Welcome to the official GitHub repository for the paper "[S4ECG: Exploring the impact of long-range interactions for arrhythmia prediction]". If you consider this repository useful for you research, we would appreciate a citation of our preprint.

Table of Contents

Setup & Environment

  1. Environment: The environment details and requirements for Linux systems are provided in the environment.yml folder. Please ensure to set up the provided environment to avoid compatibility issues.

  2. Additional Package: You'll need to install the cauchy or other related packages for the S4 model. See the official repository for more details:

    https://github.com/HazyResearch/state-spaces/

Datasets

We utilize four primary datasets for our research:

  • Icentia11k: https://physionet.org/content/icentia11k-continuous-ecg/1.0/
  • LTAFDB: https://physionet.org/content/ltafdb/1.0.0/
  • AFDB: https://physionet.org/content/afdb/1.0.0/
  • MITDB: https://www.physionet.org/content/mitdb/1.0.0/

Both datasets should be appropriately placed in the main directory or as instructed by specific scripts.

Preprocessing

To preprocess the raw data:

Run the preprocess.py script: python preprocess.py icentia /path/to/your/dataset.zip

This will process the raw data from the aforementioned datasets and prepare them for classification.

Classification

To run the classification:

  1. Configuration: Modify the config files located at ./conf/data to specify the directory containing the preprocessed data.

  2. Training the model: Set the desired config file using the --config-name flag. Example for a time-series-based model on Icentia11k: python main.py --config-name=config_id_icentia.yaml

You can use other config settings by specifying different .yaml files located in the ./conf directory.

For ood test the path of trained model should be denoted as: python main.py --config-name=config_ood_ltafdb.yaml trainer.eval_only=/path/best_model.ckpt

Contribution

Feel free to submit pull requests, raise issues, or suggest enhancements to improve the project. We appreciate community contributions!

Acknowledgments

This work partly builds on the S4 layer kindly provided by https://github.com/HazyResearch/state-spaces/


For any further queries or concerns, please refer to the official publication or contact the project maintainers.

Owner

  • Name: AI4HealthUOL
  • Login: AI4HealthUOL
  • Kind: organization
  • Location: Germany

Public repositories of the AI4Health Division at Oldenburg University

GitHub Events

Total
  • Push event: 2
  • Create event: 1
Last Year
  • Push event: 2
  • Create event: 1

Dependencies

environment.yml pypi
  • absl-py ==2.1.0
  • alembic ==1.13.1
  • aniso8601 ==9.0.1
  • antlr4-python3-runtime ==4.9.3
  • anyio ==4.3.0
  • argon2-cffi ==23.1.0
  • argon2-cffi-bindings ==21.2.0
  • arrow ==1.3.0
  • asttokens ==2.4.1
  • async-lru ==2.0.4
  • attrs ==23.2.0
  • babel ==2.14.0
  • beautifulsoup4 ==4.12.3
  • bleach ==6.1.0
  • blinker ==1.7.0
  • cachetools ==5.3.2
  • causal-conv1d ==1.2.0.post2
  • click ==8.1.7
  • cloudpickle ==3.0.0
  • comm ==0.2.1
  • contourpy ==1.2.0
  • cycler ==0.12.1
  • debugpy ==1.8.1
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • docker ==7.0.0
  • einops ==0.7.0
  • entrypoints ==0.4
  • executing ==2.0.1
  • fastjsonschema ==2.19.1
  • flask ==3.0.2
  • fonttools ==4.49.0
  • fqdn ==1.5.1
  • ftfy ==6.2.0
  • gitdb ==4.0.11
  • gitpython ==3.1.42
  • google-auth ==2.27.0
  • google-auth-oauthlib ==1.2.0
  • graphene ==3.3
  • graphql-core ==3.2.3
  • graphql-relay ==3.2.0
  • greenlet ==3.0.3
  • grpcio ==1.60.1
  • gunicorn ==21.2.0
  • h11 ==0.14.0
  • httpcore ==1.0.4
  • httpx ==0.27.0
  • huggingface-hub ==0.22.1
  • hydra-core ==1.3.2
  • imageio ==2.33.1
  • importlib-metadata ==7.0.2
  • ipykernel ==6.29.3
  • ipython ==8.22.1
  • isoduration ==20.11.0
  • itsdangerous ==2.1.2
  • jedi ==0.19.1
  • joblib ==1.3.2
  • json5 ==0.9.17
  • jsonpointer ==2.4
  • jsonschema ==4.21.1
  • jsonschema-specifications ==2023.12.1
  • jupyter-client ==8.6.0
  • jupyter-core ==5.7.1
  • jupyter-events ==0.9.0
  • jupyter-lsp ==2.2.3
  • jupyter-server ==2.12.5
  • jupyter-server-terminals ==0.5.2
  • jupyterlab ==4.1.2
  • jupyterlab-pygments ==0.3.0
  • jupyterlab-server ==2.25.3
  • keopscore ==2.2.1
  • kiwisolver ==1.4.5
  • lazy-loader ==0.3
  • mako ==1.3.2
  • mamba-ssm ==1.2.0.post1
  • markdown ==3.5.2
  • matplotlib ==3.8.3
  • matplotlib-inline ==0.1.6
  • mistune ==3.0.2
  • mlflow ==2.11.1
  • nbclient ==0.9.0
  • nbconvert ==7.16.1
  • nbformat ==5.9.2
  • nest-asyncio ==1.6.0
  • ninja ==1.11.1.1
  • notebook ==7.1.1
  • notebook-shim ==0.2.4
  • oauthlib ==3.2.2
  • omegaconf ==2.3.0
  • opt-einsum ==3.3.0
  • overrides ==7.7.0
  • pandas ==2.2.0
  • pandocfilters ==1.5.1
  • parso ==0.8.3
  • pexpect ==4.9.0
  • platformdirs ==4.2.0
  • prometheus-client ==0.20.0
  • prompt-toolkit ==3.0.43
  • protobuf ==4.23.4
  • psutil ==5.9.8
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pyarrow ==15.0.1
  • pyasn1 ==0.5.1
  • pyasn1-modules ==0.3.0
  • pybind11 ==2.11.1
  • pygments ==2.17.2
  • pykeops ==2.2.1
  • pyparsing ==3.1.2
  • python-dateutil ==2.8.2
  • python-json-logger ==2.0.7
  • pytz ==2024.1
  • pyzmq ==25.1.2
  • querystring-parser ==1.2.4
  • referencing ==0.33.0
  • regex ==2023.12.25
  • requests-oauthlib ==1.3.1
  • rfc3339-validator ==0.1.4
  • rfc3986-validator ==0.1.1
  • rpds-py ==0.18.0
  • rsa ==4.9
  • safetensors ==0.4.2
  • scikit-image ==0.22.0
  • scikit-learn ==1.4.0
  • scipy ==1.12.0
  • send2trash ==1.8.2
  • six ==1.16.0
  • smmap ==5.0.1
  • sniffio ==1.3.1
  • soupsieve ==2.5
  • sqlalchemy ==2.0.28
  • sqlparse ==0.4.4
  • stack-data ==0.6.3
  • structured-kernels ==0.1.0
  • tensorboard ==2.15.1
  • tensorboard-data-server ==0.7.2
  • terminado ==0.18.0
  • threadpoolctl ==3.2.0
  • tifffile ==2024.1.30
  • tinycss2 ==1.2.1
  • tokenizers ==0.15.2
  • tornado ==6.4
  • traitlets ==5.14.1
  • transformers ==4.39.1
  • triton ==2.2.0
  • types-python-dateutil ==2.8.19.20240106
  • tzdata ==2023.4
  • uri-template ==1.3.0
  • wcwidth ==0.2.13
  • webcolors ==1.13
  • webencodings ==0.5.1
  • websocket-client ==1.7.0
  • werkzeug ==3.0.1
  • zipp ==3.17.0