Metadata-Version: 2.4
Name: ECGProcess
Version: 1.1.0
Summary: A python module to process and standardise ECG data
Author-email: "A. Floriaan Schmidt" <floriaanschmidt@gmail.com>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://gitlab.com/SchmidtAF/ECGProcess
Project-URL: Documentation, https://SchmidtAF.gitlab.io/ECGProcess/
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: <3.14,>=3.11
Description-Content-Type: text/markdown
License-File: LICENCE.txt
Requires-Dist: lxml>=5
Requires-Dist: xmltodict>=0.14
Requires-Dist: pandas>=2.1.1
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.7
Requires-Dist: tensorflow>=2.16
Requires-Dist: pydicom>=2
Requires-Dist: matplotlib>=3.9
Provides-Extra: dev
Requires-Dist: pytest>=6; extra == "dev"
Requires-Dist: pytest-mock>=3.0; extra == "dev"
Requires-Dist: pytest-dependency>=0.5; extra == "dev"
Requires-Dist: codespell; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: bump2version>=1; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: sphinx-bootstrap-theme; extra == "dev"
Requires-Dist: furo; extra == "dev"
Requires-Dist: myst-parser; extra == "dev"
Requires-Dist: nbsphinx; extra == "dev"
Requires-Dist: nbsphinx-link; extra == "dev"
Requires-Dist: sphinx-argparse; extra == "dev"
Requires-Dist: numpydoc; extra == "dev"
Requires-Dist: docutils<0.21; extra == "dev"
Requires-Dist: notebook; extra == "dev"
Requires-Dist: jupyter; extra == "dev"
Dynamic: license-file

![Schematic](https://ecgprocess-schmidtaf-f9abe0f74d20c469a1e6cca62c7f636ef6bf6b9ffe.gitlab.io/_static/ECGProcessSchematic.png)

# An ECG processing module
__version__: `1.1.0`


This repository host a mixture of function dealing with processing 
electrocardiogram (ECG) data, and preparing these data for analysis.
The processing functions are intended for user defined parametrisation 
(using user supplied configuration files `cnf`) about the data which 
should be extracted, covering signal data such as waveforms or
median beats, as well as metadata relevant for downstream QC or as
tabular information. 

The module implements a basic application programming interface, mapping
ECG data from distinct file types (e.g. XML or DICOM) to class attributes
providing a fixed interface for downstream analysis and interrogation. 

The documentation for ECGProcess can be found [here](https://SchmidtAF.gitlab.io/ECGProcess/). 


## Installation 
At present, the repository is undergoing development and no packages exist yet 
on PyPy or in Conda.
Therefore it is recommended that it is installed in either of the two ways
listed below.
First, clone this repository and then `cd` to the root of the repository.

```sh
git clone git@gitlab.com:SchmidtAF/ECGProcess.git
cd ECGProcess
```

### Installation using conda dependencies
A conda environment is provided in a `yaml` file in the directory 
`./resources/conda/envs/`.
A new conda environment called `ecgprocess` can be built using the command:

```sh
# From the root of the repository
conda env create --file ./resources/conda/envs/conda_create.yaml
```

To add to an existing environment use:

```sh
# From the root of the repository
conda env update --file ./resources/conda/envs/conda_update.yaml
```

Next the package can be installed: 

```sh
python -m pip install .
```

Or for an editable (developer) install run the command below from the root of 
the repository.
The difference with this is that you can just to a `git pull` to 
update repository, or switch branches without re-installing:

```sh
python -m pip install -e .

```
### Installation not using any conda dependencies
If you are not using conda in any way then install the dependencies via `pip` 
and install repository as an editable install also via pip:

Install dependencies:

```sh
python -m pip install --upgrade -r requirements.txt
```

Then to install repository you can either do:

```sh
python -m pip install .
```

Or for an editable (developer) install run the command below from the root of
the repository.
The difference with this is that you can just to a `git pull` to update
repository, or switch branches without re-installing:

```sh
python -m pip install -e .
```

## Next steps...
After installation you might wish to try the `pytest` to confirm 
everything is in working order. 

```sh
# From the root of the repository
pytest tests
```

## Usage

Please have a look at the examples in 
[resources](https://gitlab.com/SchmidtAF/ECGProcess/-/tree/master/resources/examples)
for some possible recipes. 

