diff --git a/README.md b/README.md index 8af7230..f682a1d 100644 --- a/README.md +++ b/README.md @@ -1,103 +1,111 @@ # Event based gQRS -In this repository is possible to find the source code for the event-based gQRS algorithm for R peak detection in ECG signals. +This is the official repository for the publication: Silvio Zanoli, Tomas Teijeiro, Fabio Montagna and David Atienza: "An Event-Based System for Low-Power ECG QRS +Detection" + +In this repository is possible to find the source code for the event-based gQRS algorithm for QRS complex detection in ECG signals. + The python demonstrative version, C version implemented on the PULP platform, Mr.Wolf, and the tools necessaries to extract and re-sample the data can be found here. ## Getting Started ### Prerequisites ### Python version: - Jupyter-notebook - Python 3.6.x - Numpy - Pandas - Matplotlib - wfdb - tqdm ### C version: - gCC - [PULP platform SDK and toolchain](https://github.com/pulp-platform/pulp-sdk) ## Installing and Running - Create a data folder on the root direcotry of this project, this will be the directory of your RAW data and the output directory. - Insert your dataset in the MIT-BIH database format (.dat and .hea files) in a subfolder, for example, "dataRaw". - The database used for developing and testing this algorithm can be found at [MIT-BIH Arrythmia Database](https://physionet.org/content/mitdb/1.0.0/) - Move in the "data_parsing" folder and lunch ECG_lvlCrossing.py ``` python3 ECG_lvlCrossing.py -i ../data/dataRaw -o ../data/dataOut --threshold 100 ``` This script will extract and resample with a threshold "--threshold" all the file in the MIT-BIH format found in the direcotry passed by the "-i" argument and output the results in the folder passed with "-o" (Note: is possible also to pass the path of a single file as input.) ### Python version: - Run the jupiter notebook contained in the "python_gQRS" folder. ### C version: Important note: This is not a plain C-99 project. this project was developed for the PULP platform "Mr. Wolf" - Move in the "data_parsing" folder and lunch "makeDataHeader.py" ``` python3 makeDataHeader.py -s ../data/dataOut/selectedFile ``` This will create automatically the header containing the data from file "selectedFile" to be used by the C code - Move to the "C_gQRS" folder - follow the steps at [PULP platform SDK and toolchain](https://github.com/pulp-platform/pulp-sdk). - Execute: ``` make clean all run ``` This will start to run the simulation for the selected file multiple time, measuring several parameters of the simulation and returning an overview of the score-results and the performance-results ## Built With * [Anaconda](https://www.anaconda.com/) - The iPython framework used * [PULP SDK](https://github.com/pulp-platform/pulp-sdk) - SDK for the PULP platform ## Authors * **Silvio Zanoli** - [ESL Lab](https://www.epfl.ch/labs/esl/) * **Tomas Teijeiro** - [ESL Lab](https://www.epfl.ch/labs/esl/) * **Fabio Montagna** - [University of Bologna](https://www.unibo.it/en) ## License This project is licensed under the GPL License - see the LICENSE.txt file for details ## Acknowledgments Thanks to: * Prof. Dr. David Atienza Alonso * The Human Brain Project (HBP) SGA2 (GA No. 785907) +* The DeepHealth Project (GA No. 825111) + +* The SNF through the ML-Edge Project (GA No. 182009) + * The [ESL Lab](https://www.epfl.ch/labs/esl/)