All Projects → analysiscenter → Cardio

analysiscenter / Cardio

Licence: apache-2.0
CardIO is a library for data science research of heart signals

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cardio

Pytorch Geometric Yoochoose
This is a tutorial for PyTorch Geometric on the YooChoose dataset
Stars: ✭ 198 (-9.17%)
Mutual labels:  jupyter-notebook, data-science, deep-neural-networks
My Journey In The Data Science World
📢 Ready to learn or review your knowledge!
Stars: ✭ 1,175 (+438.99%)
Mutual labels:  jupyter-notebook, data-science, deep-neural-networks
Speech Emotion Analyzer
The neural network model is capable of detecting five different male/female emotions from audio speeches. (Deep Learning, NLP, Python)
Stars: ✭ 633 (+190.37%)
Mutual labels:  jupyter-notebook, data-science, deep-neural-networks
Models
DLTK Model Zoo
Stars: ✭ 101 (-53.67%)
Mutual labels:  jupyter-notebook, data-science, deep-neural-networks
Mri Analysis Pytorch
MRI analysis using PyTorch and MedicalTorch
Stars: ✭ 55 (-74.77%)
Mutual labels:  healthcare, jupyter-notebook, data-science
Andrew Ng Notes
This is Andrew NG Coursera Handwritten Notes.
Stars: ✭ 180 (-17.43%)
Mutual labels:  jupyter-notebook, data-science, deep-neural-networks
Radio
RadIO is a library for data science research of computed tomography imaging
Stars: ✭ 198 (-9.17%)
Mutual labels:  jupyter-notebook, data-science
Traffic Sign Detection
Traffic Sign Detection. Code for the paper entitled "Evaluation of deep neural networks for traffic sign detection systems".
Stars: ✭ 200 (-8.26%)
Mutual labels:  jupyter-notebook, deep-neural-networks
Fastpages
An easy to use blogging platform, with enhanced support for Jupyter Notebooks.
Stars: ✭ 2,888 (+1224.77%)
Mutual labels:  jupyter-notebook, data-science
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (-6.42%)
Mutual labels:  jupyter-notebook, data-science
Machinelearningnotebooks
Python notebooks with ML and deep learning examples with Azure Machine Learning Python SDK | Microsoft
Stars: ✭ 2,790 (+1179.82%)
Mutual labels:  jupyter-notebook, data-science
Tensorflow Deep Learning
All course materials for the Zero to Mastery Deep Learning with TensorFlow course.
Stars: ✭ 170 (-22.02%)
Mutual labels:  jupyter-notebook, deep-neural-networks
Learnopencv
Learn OpenCV : C++ and Python Examples
Stars: ✭ 15,385 (+6957.34%)
Mutual labels:  jupyter-notebook, deep-neural-networks
Data Science Projects With Python
A Case Study Approach to Successful Data Science Projects Using Python, Pandas, and Scikit-Learn
Stars: ✭ 198 (-9.17%)
Mutual labels:  jupyter-notebook, data-science
Trump Lies
Tutorial: Web scraping in Python with Beautiful Soup
Stars: ✭ 201 (-7.8%)
Mutual labels:  jupyter-notebook, data-science
Imodels
Interpretable ML package 🔍 for concise, transparent, and accurate predictive modeling (sklearn-compatible).
Stars: ✭ 194 (-11.01%)
Mutual labels:  jupyter-notebook, data-science
Python For Data Science
A collection of Jupyter Notebooks for learning Python for Data Science.
Stars: ✭ 205 (-5.96%)
Mutual labels:  jupyter-notebook, data-science
Flaml
A fast and lightweight AutoML library.
Stars: ✭ 205 (-5.96%)
Mutual labels:  jupyter-notebook, data-science
Eli5
A library for debugging/inspecting machine learning classifiers and explaining their predictions
Stars: ✭ 2,477 (+1036.24%)
Mutual labels:  jupyter-notebook, data-science
Covid19za
Coronavirus COVID-19 (2019-nCoV) Data Repository and Dashboard for South Africa
Stars: ✭ 208 (-4.59%)
Mutual labels:  jupyter-notebook, data-science

CardIO

CardIO is designed to build end-to-end machine learning models for deep research of electrocardiograms.

Main features:

  • load and save signals in various formats: WFDB, DICOM, EDF, XML (Schiller), etc.
  • resample, crop, flip and filter signals
  • detect PQ, QT, QRS segments
  • calculate heart rate and other ECG characteristics
  • perform complex processing like fourier and wavelet transformations
  • apply custom functions to the data
  • recognize heart diseases (e.g. atrial fibrillation)
  • efficiently work with large datasets that do not even fit into memory
  • perform end-to-end ECG processing
  • build, train and test neural networks and other machine learning models

For more details see the documentation and tutorials.

About CardIO

CardIO is based on BatchFlow. You might benefit from reading its documentation. However, it is not required, especially at the beginning.

CardIO has three modules: core, models and pipelines.

core module contains EcgBatch and EcgDataset classes. EcgBatch defines how ECGs are stored and includes actions for ECG processing. These actions might be used to build multi-staged workflows that can also involve machine learning models. EcgDataset is a class that stores indices of ECGs and generates batches of type EcgBatch.

models module provides several ready to use models for important problems in ECG analysis:

  • how to detect specific features of ECG like R-peaks, P-wave, T-wave, etc
  • how to recognize heart diseases from ECG, for example, atrial fibrillation

pipelines module contains predefined workflows to

  • train a model and perform an inference to detect PQ, QT, QRS segments and calculate heart rate
  • train a model and perform an inference to find probabilities of heart diseases, in particular, atrial fibrillation

Basic usage

Here is an example of a pipeline that loads ECG signals, makes preprocessing and trains a model for 50 epochs:

train_pipeline = (
  ds.Pipeline()
    .init_model("dynamic", DirichletModel, name="dirichlet", config=model_config)
    .init_variable("loss_history", init_on_each_run=list)
    .load(components=["signal", "meta"], fmt="wfdb")
    .load(components="target", fmt="csv", src=LABELS_PATH)
    .drop_labels(["~"])
    .rename_labels({"N": "NO", "O": "NO"})
    .flip_signals()
    .random_resample_signals("normal", loc=300, scale=10)
    .random_split_signals(2048, {"A": 9, "NO": 3})
    .binarize_labels()
    .train_model("dirichlet", make_data=concatenate_ecg_batch, fetches="loss", save_to=V("loss_history"), mode="a")
    .run(batch_size=100, shuffle=True, drop_last=True, n_epochs=50)
)

Installation

CardIO module is in the beta stage. Your suggestions and improvements are very welcome.

CardIO supports python 3.5 or higher.

Installation as a python package

With pipenv:

pipenv install git+https://github.com/analysiscenter/cardio.git#egg=cardio

With pip:

pip3 install git+https://github.com/analysiscenter/cardio.git

After that just import cardio:

import cardio

Installation as a project repository

When cloning repo from GitHub use flag --recursive to make sure that batchflow submodule is also cloned.

git clone --recursive https://github.com/analysiscenter/cardio.git

Citing CardIO

Please cite CardIO in your publications if it helps your research.

DOI

Khudorozhkov R., Illarionov E., Kuvaev A., Podvyaznikov D. CardIO library for deep research of heart signals. 2017.
@misc{cardio_2017_1156085,
  author       = {R. Khudorozhkov and E. Illarionov and A. Kuvaev and D. Podvyaznikov},
  title        = {CardIO library for deep research of heart signals},
  year         = 2017,
  doi          = {10.5281/zenodo.1156085},
  url          = {https://doi.org/10.5281/zenodo.1156085}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].