Metadata-Version: 2.4
Name: uniovi-simur-wearablepermed-utils
Version: 1.19.0
Summary: Uniovi Simur WearablePerMed Utils
Home-page: https://github.com/pyscaffold/pyscaffold/
Author: 'Miguel Angel Salinas Gancedo, Alejandro Castellanos Alonso, Antonio Miguel López Rodriguez'
Author-email: 'uo34525@uniovi.es, uo265351@uniovi.es, amlopez@uniovi.es'
License: MIT
Project-URL: Documentation, https://github.com/SiMuR-UO/uniovi-simur-wearablepermed-utils
Project-URL: Source, https://github.com/SiMuR-UO/uniovi-simur-wearablepermed-utils
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
License-File: LICENSE.txt
Requires-Dist: importlib-metadata; python_version < "3.8"
Requires-Dist: build==1.3.0
Requires-Dist: cachetools==6.2.0
Requires-Dist: chardet==5.2.0
Requires-Dist: colorama==0.4.6
Requires-Dist: contourpy==1.3.3
Requires-Dist: cycler==0.12.1
Requires-Dist: distlib==0.4.0
Requires-Dist: et_xmlfile==2.0.0
Requires-Dist: filelock==3.19.1
Requires-Dist: fonttools==4.60.0
Requires-Dist: kiwisolver==1.4.9
Requires-Dist: matplotlib==3.10.6
Requires-Dist: numpy==2.3.3
Requires-Dist: openpyxl==3.1.5
Requires-Dist: packaging==25.0
Requires-Dist: pandas==2.3.2
Requires-Dist: patsy==1.0.1
Requires-Dist: pillow==11.3.0
Requires-Dist: platformdirs==4.4.0
Requires-Dist: pluggy==1.6.0
Requires-Dist: pyparsing==3.2.4
Requires-Dist: pyproject-api==1.9.1
Requires-Dist: pyproject_hooks==1.2.0
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: pytz==2025.2
Requires-Dist: scipy==1.16.2
Requires-Dist: setuptools==80.9.0
Requires-Dist: setuptools-scm==9.2.0
Requires-Dist: six==1.17.0
Requires-Dist: statsmodels==0.14.5
Requires-Dist: tox==4.30.2
Requires-Dist: tzdata==2025.2
Requires-Dist: virtualenv==20.34.0
Requires-Dist: wheel==0.45.1
Provides-Extra: testing
Requires-Dist: setuptools; extra == "testing"
Requires-Dist: pytest; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Dynamic: license-file

<!-- These are examples of badges you might want to add to your README:
     please update the URLs accordingly

[![Built Status](https://api.cirrus-ci.com/github/<USER>/uniovi-simur-wearablepermed-utils.svg?branch=main)](https://cirrus-ci.com/github/<USER>/uniovi-simur-wearablepermed-utils)
[![ReadTheDocs](https://readthedocs.org/projects/uniovi-simur-wearablepermed-utils/badge/?version=latest)](https://uniovi-simur-wearablepermed-utils.readthedocs.io/en/stable/)
[![Coveralls](https://img.shields.io/coveralls/github/<USER>/uniovi-simur-wearablepermed-utils/main.svg)](https://coveralls.io/r/<USER>/uniovi-simur-wearablepermed-utils)
[![PyPI-Server](https://img.shields.io/pypi/v/uniovi-simur-wearablepermed-utils.svg)](https://pypi.org/project/uniovi-simur-wearablepermed-utils/)
[![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/uniovi-simur-wearablepermed-utils.svg)](https://anaconda.org/conda-forge/uniovi-simur-wearablepermed-utils)
[![Monthly Downloads](https://pepy.tech/badge/uniovi-simur-wearablepermed-utils/month)](https://pepy.tech/project/uniovi-simur-wearablepermed-utils)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter)](https://twitter.com/uniovi-simur-wearablepermed-utils)
-->

[![Project generated with PyScaffold](https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold)](https://pyscaffold.org/)

## Description

> Uniovi Simur WearablePerMed Utils

## Schaffolding
Execute PyScaffold command to create the project:
```
$ putup --markdown uniovi-simur-wearablepermed-utils -p wearablepermed_utils \
     -d "Uniovi Simur WearablePerMed Utils." \
     -u https://github.com/SiMuR-UO/uniovi-simur-wearablepermed-utils.git 
```

Create a virtual environment inside for your project and active it:
```
$ python -m venv .venv
$ source .venv/bin/activate
```

Install and upgrade tox automation project manager:
```
$ pip install --upgrade tox
```

Install and upgrade project modules:
```
$ pip install -U numpy pandas scipy openpyxl matplotlib
```

## Code and Debugging

Install library modules:
```
$ pip install -r requirements.txt
```

Install module locally for debugg
```
$ pip install -e .
```

Save project requirements:
```
$ pip freeze > requirements.txt
```

## Project management

Project commands for: test, clean, build, generate documentation or publish your library in pypi repository
Don't forget update the version library from **setup.cfg** project build file:

```
$ tox
$ tox -e clean
$ tox -e build
$ tox -e docs
$ tox -e publish -- --repository pypi
```

## Testing

- Convert binary file to csv:
     ```
     $ sensor_bin_to_csv \
     --bin-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_C.BIN \
     --csv-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_C.csv
     ```

- Segment all sensor csv files for each participant and correct deviation if exists:
     For participant csv files without some deviation error
     ```
     $ csv_to_segmented_activity \
     --csv-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_M.csv \
     --excel-activity-log /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_RegistroActividades.xlsx \
     --body-segment M \
     --output /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_seg_M.npz
     ```

     For participant csv files with some deviation error
     ```
     $ csv_to_segmented_activity \
     --csv-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_M.csv \
     --excel-activity-log /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_RegistroActividades.xlsx \
     --body-segment M \
     --output /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_seg_M.npz \
     --sample-init 16088120 \
     --start-time 17:40:00
     ```

- Window segmented files for convolution model likes
     The argument **include-not-estructure-data** can be included if you want add not estructure data
     ```
     $ segmented_activity_to_stack \
     --npz-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_seg_M.npz \
     --crop-columns 1:7 \
     --window-size 250 \
     --window-overlapping-percent 50 \
     --output /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_tot_M.npz
     ```

- Extract features from windowed segmented files for random forest model likes
     ```
     $ stack_to_features \
     --stack-file /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_tot_M.npz \
     --output /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1053/PMP1053_W1_tot_M_features.npz∫
     ```

- Partial aggregation for each participant datasets
     ```
     $ aggregate_windows_features \
     --dataset-folder /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1003 \
     --ml-models ESANN,RandomForest \
     --ml-sensors thigh,hip,wrist \
     --output-folder /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input/PMP1003
     ```

- Total aggregation for all participant datasets to train models
     ```
     $ model_aggregation \
     --dataset-folder /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/input \
     --output-folder /home/miguel/git/uniovi/simur/uniovi-simur-wearablepermed-utils/data/output \
     --case-id case_sample
     ```

Pipeline:
![Example result](https://github.com/SiMuR-UO/uniovi-simur-wearablepermed-utils/blob/main/images/pretraining_pipeline.png)

<!-- pyscaffold-notes -->

## Note

This project has been set up using PyScaffold 4.6. For details and usage
information on PyScaffold see https://pyscaffold.org/.
