emgflow
Github repository for the EMGFlow Python package.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found 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 (16.7%) to scientific vocabulary
Repository
Github repository for the EMGFlow Python package.
Basic Info
- Host: GitHub
- Owner: WiIIson
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://wiiison.github.io/EMGFlow-Python-Package/
- Size: 200 MB
Statistics
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 7
- Releases: 0
Metadata Files
README.md
EMGFlow 
The open workflow for EMG signal processing and feature extraction.
EMGFlow is a Python package for researchers and clinicians to engage in signal processing. EMGFlow provides a broad range of functions to meet your EMG signal processing needs, without prescribing a specific workflow. EMGFlow follows open standards of data processing, such as CSV files and Pandas data frames to allow easy integration. With functions to extract 32 different features according to your needs, EMGFlow provides a uniquely deep feature extraction.
EMGFlow also includes an easy method for producing detailed graphs of EMG signals in large quantities.
The simple navigation menu allows you to switch between which files you see as well as which layers are overlayed:

Statement Of Need
While several packages exist for processing physiological and neurological signals, support for surface electromyography (sEMG) has remained limited. Many packages lack a comprehensive set of features that can be extracted from sEMG data, leaving researchers to use a patchwork of tools. Other packages are orientated around event detection in individual recordings and use GUI-based workflow that requires greater manual intervention. While this design works well for single person recordings, it complicates the extraction of features from large datasets, such as those common to machine learning.
The EMGFlow package a portmanteau of EMG and Workflow - fills this gap. Our package provides a flexible pipeline for the extraction of a wide range of sEMG features, with a scalable design that is suited to the processing of large datasets.
Example
As a quick example, the following will create a feature file, starting with a folder of raw data: ```python import EMGFlow
Get path dictionary
pathnames = EMGFlow.makepaths()
Load sample data
EMGFlow.makesampledata(path_names)
Sampling rate
sampling_rate = 2000
Filter parameters
notchvals = [(50, 5)] bandlow = 20 bandhigh = 140 smoothwindow = 50
Columns containing data for preprocessing
cols = ['EMGzyg', 'EMGcor']
1. Apply notch filters
EMGFlow.notchfiltersignals(pathnames['Raw'], pathnames['Notch'], samplingrate, notchvals, cols)
2. Apply bandpass filter
EMGFlow.bandpassfiltersignals(pathnames['Notch'], pathnames['Bandpass'], samplingrate, bandlow, band_high, cols)
3. Apply smoothing filter
EMGFlow.smoothfiltersignals(pathnames['Bandpass'], pathnames['Smooth'], smooth_window, cols)
4. Extract features
df = EMGFlow.extractfeatures(pathnames, sampling_rate, cols) ```
Documentation
General: - EMG processing background - EMGFlow processing pipeline overview - FileAccess module API - PreprocessSignals module API - ExtractFeatures module API - OutlierFinder module API - PlotSignals module API
Examples: - Processing pipeline examples
Installation
EMGFlow can be installed from PyPI:
python
pip install EMGFlow
Once installed, the package can be loaded as follows:
python
import EMGFlow
Project dependencies can be seen here.
Contributions
Contributions and community guidelines can be seen here.
Citations
This package can be cited as follows:
bibtex
@software{Conley_EMGFlow_2024,
author = {Conley, William and Livingstone, Steven R},
month = {03},
title = {{EMGFlow Package}},
url = {https://github.com/WiIIson/EMGFlow-Python-Package},
version = {1.0.17},
year = {2024},
note = "{\tt william@cconley.ca}"
}
If you are using a different version of EMGFlow, change the version tag to the version you are using.
Owner
- Login: WiIIson
- Kind: user
- Repositories: 1
- Profile: https://github.com/WiIIson
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Conley" given-names: "William" email: "william@cconley.ca" website: http://wconley.ca - family-names: "Livingstone" given-names: "Steven" title: "EMGFlow Package" version: 1.0.16 date-released: 2024-03-11 url: "https://github.com/WiIIson/EMGFlow-Python-Package"
GitHub Events
Total
- Issues event: 9
- Watch event: 5
- Issue comment event: 12
- Push event: 218
- Create event: 1
Last Year
- Issues event: 9
- Watch event: 5
- Issue comment event: 12
- Push event: 218
- Create event: 1
Packages
- Total packages: 1
-
Total downloads:
- pypi 22 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 18
- Total maintainers: 1
pypi.org: emgflow
A general EMG processing and feature extraction package.
- Homepage: https://github.com/WiIIson/EMGFlow-Python-Package
- Documentation: https://emgflow.readthedocs.io/
- License: GNU General Public License v3 or later (GPLv3+)
-
Latest release: 1.0.16
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- matplotlib *
- nest-asyncio *
- numpy *
- opencv-python *
- pandas *
- scipy *
- shiny *
- tqdm *
- webbrowser *