Openseize
Openseize: A digital signal processing package for large EEG datasets in Python - Published in JOSS (2023)
Science Score: 98.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
Found 3 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
Digital Signal Processing for Big EEGs
Basic Info
- Host: GitHub
- Owner: mscaudill
- License: bsd-3-clause
- Language: Python
- Default Branch: master
- Homepage: https://mscaudill.github.io/openseize/
- Size: 28.6 MB
Statistics
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 0
- Releases: 4
Topics
Metadata Files
README.md
Digital Signal Processing for Big EEGs
Key Features | Installation | Dependencies | Documentation | Attribution | Contributions | Issues | License | Acknowledgements
- Source Code: https://github.com/mscaudill/openseize
- White Paper: 10.21105/joss.05126
Key Features
Recent innovations in EEG recording technologies make it possible to perform high channel count recordings at high sampling frequencies spanning many days. This results in big EEG data sets that are often not addressable to virtual memory. Worse yet, current digital signal processing (DSP) packages that rely on Matlab© or Scipy's DSP routines require the data to be a contiguous in-memory array. Openseize is a fully iterative DSP Python package that can scale to the largest of EEG data sets. It accomplishes this by storing DSP operations, such as filtering, as on-the-fly iterables that "produce" DSP results one fragment of the data at a time. Additionally, Openseize is built using time-tested software design principles that support extensions while maintaining a simple interface. Finally, Openseize's documentation features in-depth discussions of iterative DSP processing and its implementation.
Installation
For each installation guide below, we strongly recommend creating a
virtual environment. This environment will isolate external dependencies
that may conflict with packages you already have installed on your system.
Python comes installed with a virtual environment manager called venv.
Additionally, there are environment managers like conda that can check
for package conflicts when the environment is created or updated. For more
information please see:
Python Virtual Environment
Create your virtual environment, Here we name it
my_venv.Shell $ python3 -m venv my_venvActivate your 'myvenv' environment ```Shell $ source myvenv/bin/activate ```
Install openseize into your virtual environment
Shell (my_venv)$ pip install openseize
Conda
The conda environment manager is more advanced than venv. When a conda
environment is updated, conda simultaneously looks at all the packages
to be installed to reduce package conflicts. Having said that, conda and
pip, the tool used to install Openseize from pypi, do not always work
well together. The developers of conda recommend installing all possible
packages from conda repositories before installing non-conda packages using
pip. To ensure this order of installs, Openseize's source code includes an
environment configuration file (yml) that will build an openseize conda
environment. Once built you can then use pip to install the openseize
package into this environment. Here are the steps:
Download the openseize environment configuration yaml
Create a conda openseize environment.
Shell $ conda env create --file environment.ymlActivate the
openseizeenvironment.Shell $ conda activate openseizeInstall openseize from pypi into your openseize environment.
Shell (openseize)$ pip install openseize
From Source
If you would like to develop Openseize further, you'll need the source code and all development dependencies. Here are the steps:
Create a virtual environment with latest pip version.
Shell $ python3 -m venv env $ source env/bin/activate $ pip install --upgrade pipGet the source code
Shell $ git clone https://github.com/mscaudill/openseize.gitCD into the directory containing the pyproject.toml and create an editable install with
pipShell $ pip install -e .[dev]
Dependencies
Openseize requires Python ≥ 3.8 and has the following dependencies:
| package | pypi | conda |
|---|---|---|
| requests | https://pypi.org/project/requests/ | ✓ |
| wget | https://pypi.org/project/wget/ | ✓ |
| numpy | https://pypi.org/project/numpy/ | ✓ |
| scipy | https://pypi.org/project/scipy/ | ✓ |
| matplotlib | https://pypi.org/project/matplotlib/ | ✓ |
| ipython | https://pypi.org/project/ipython/ | ✓ |
| notebook | https://pypi.org/project/jupyter/ | ✓ |
| pytest | https://pypi.org/project/pytest/ | ✓ |
| psutil | https://pypi.org/project/psutil/ | ✓ |
Documentation
Openseize documentation site has a quickstart guide, extensive tutorials and reference pages for all publicly available modules, classes and functions.
Attribution
Please see the Cite this repository under the About section or the citation file.
And if you really like Openseize, you can star the repository ⭐!
Contributions
Contributions are what makes open-source fun and we would love for you to contribute. Please check out our contribution guide to get started.
Issues
Openseize provides custom issue templates for filing bugs, requesting feature enhancements, suggesting documentation changes, or just asking questions. Ready to discuss? File an issue here.
License
Openseize is licensed under the terms of the 3-Clause BSD License.
Acknowledgements
This work is generously supported through the Ting Tsung and Wei Fong Chao Foundation and the National Institute of Neurological Disorders and Stroke (Grant 2R01 NS100738-05A1).
Owner
- Name: Matt Caudill
- Login: mscaudill
- Kind: user
- Location: Houston, TX
- Company: Baylor College of Medicine & Texas Childerns NRI
- Repositories: 3
- Profile: https://github.com/mscaudill
JOSS Publication
Openseize: A digital signal processing package for large EEG datasets in Python
Authors
Tags
EEG neuroscience signal processing local field potentials time series analysisCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Caudill
given-names: Matthew S.
orcid: "https://orcid.org/0000-0002-3656-9261"
doi: 10.5281/zenodo.7760376
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Caudill
given-names: Matthew S.
orcid: "https://orcid.org/0000-0002-3656-9261"
date-published: 2023-04-05
doi: 10.21105/joss.05126
issn: 2475-9066
issue: 84
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 5126
title: "Openseize: A digital signal processing package for large EEG
datasets in Python"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.05126"
volume: 8
title: "Openseize: A digital signal processing package for large EEG
datasets in Python"
GitHub Events
Total
- Watch event: 2
- Member event: 1
- Push event: 5
Last Year
- Watch event: 2
- Member event: 1
- Push event: 5
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| mscaudill | m****l@g****m | 675 |
| joshb99559 | j****9@g****m | 3 |
| szorowi1 | s****1@g****m | 1 |
| LeahMcIntyre | l****0@g****m | 1 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 1
- Average time to close issues: 5 days
- Average time to close pull requests: 3 days
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- szorowi1 (1)
- AJQuinn (1)
Pull Request Authors
- szorowi1 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 38 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 4
- Total maintainers: 1
pypi.org: openseize
Digital Signal Processing for Big EEG Datasets
- Homepage: https://github.com/mscaudill/openseize
- Documentation: https://openseize.readthedocs.io/
- License: BSD License
-
Latest release: 1.2.0
published almost 3 years ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v2 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- ipython *
- matplotlib *
- notebook *
- numpy *
- psutil *
- requests *
- scipy *
- wget *
- ipython *
- matplotlib *
- notebook *
- numpy *
- psutil *
- requests *
- scipy *
- wget *
