Name | pyskna JSON |
Version |
0.1.0.post3
JSON |
| download |
home_page | None |
Summary | This toolbox provides computation methods for skin sympathetic nerve activity (SKNA), which can be derived from electrocardiogram (ECG) signals collected under specific recording conditions. |
upload_time | 2025-08-05 23:26:13 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | MIT |
keywords |
skna
tvskna
iskna
biosignal
neuroscience
biomedical
mit
non-commercial
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pyskna
This toolbox provides computation methods for skin nerve activity (SKNA), which can be derived from electrocardiogram (ECG) signals collected under specific recording conditions.
## Installation
```bash
pip install pyskna
```
## Example
```python
import pandas as pd
from pyskna import extract_iSKNA, extract_TVSKNA
# Load EKG file
EKG = pd.read_csv("example_ekg.csv", header=None).to_numpy().reshape(-1)
# iSKNA computation
SKNA_dict = extract_iSKNA(input_ary=EKG, fs=4000, f_l=500, f_h=1000, smoothing_win_len=0.1)
# TVSKNA computation
TVSKNA_dict = extract_TVSKNA(input_ary=EKG, fs=4000, smoothing_win_len=0.1, thread_n=12)
```
See [`test.py`](./tests/test.py)
## Compatibility for extract_TVSKNA
The extract_TVSKNA function uses VFCDM binaries, which has been tested with **Python 3.11** on the following platforms:
- macOS (Apple Silicon / ARM64)
- Linux (x86_64)
- Windows (x86_64)
### Notes
- macOS x86_64 (Intel) **is expected to work**, but has not been formally tested.
- 32-bit systems are **not supported**; the VFCDM library has only been compiled for 64-bit architectures.
## Citation
The neuECG technique for computing iSKNA has been implemented based on the following paper:
### iSKNA:
Kusayama, T., Wong, J., Liu, X., He, W., Doytchinova, A., Robinson, E. A., ... & Chen, P. S. (2020).
*Simultaneous noninvasive recording of electrocardiogram and skin sympathetic nerve activity (neuECG).*
**Nature Protocols**, 15(5), 1853–1877.
### TVSKNA:
If you use TVSKNA for 4kHz sampling frequency. Please cite the following paper:
- **For 4 kHz sampling:**
Kong, Y., Baghestani, F., D'Angelo, W., Chen, I. P., & Chon, K. H. (2025).
*A New Approach to Characterize Dynamics of ECG-Derived Skin Nerve Activity via Time-Varying Spectral Analysis.*
**IEEE Transactions on Affective Computing**.
- **For 500 and 1000 Hz sampling:**
Kong, Y., Baghestani, F., D'Angelo, W., Chen, I. P., & Chon, K. H. (2025).
*A New Approach to Characterize Dynamics of ECG-Derived Skin Nerve Activity via Time-Varying Spectral Analysis.*
**IEEE Transactions on Affective Computing**.
Kong, Y., Baghestani, F., Chen, I. P., & Chon, K. H. (2025).
*Feasibility of Extracting Skin Nerve Activity from Electrocardiogram Recorded at a Low Sampling Frequency.*
**arXiv preprint**, arXiv:2508.00494. https://doi.org/10.48550/arXiv.2508.00494
### ⚠️ Patent Notice
Some functions (e.g., **`process_tvskna`**) in this library interface with the **VFCDM** algorithm covered by
U.S. Patent No. **US8858450B2**, owned by Ki Chon, Ph.D. and Kihwan Ju, Ph.D.
(Assignee: Research Foundation of the State University of New York).
By using VFCDM‑related functions (e.g., **`process_tvskna`**) in PySKNA, you agree to the
[LICENSE.md](https://github.com/ykong-phd/vfcdm-binaries/blob/main/LICENSE.md) and [PATENT_NOTICE.md](https://github.com/ykong-phd/vfcdm-binaries/blob/main/PATENT_NOTICE.md) provided in the VFCDM Binaries repository, **solely for non-commercial, academic, and research use**.
Please see the PySKNA `LICENSE.md` for more details.
Commercial use of the patented components requires a separate license.
For patent‑related inquiries, contact **ki.chon@uconn.edu**.
For all other matters, contact **youngsun.kong.phd@gmail.com**.
Raw data
{
"_id": null,
"home_page": null,
"name": "pyskna",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "SKNA, TVSKNA, iSKNA, biosignal, neuroscience, biomedical, MIT, non-commercial",
"author": null,
"author_email": "\"Youngsun Kong, Ph.D.\" <youngsun.kong.phd@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/14/73/7352ec8f1141a1de69d161c67455f1444b937b88aa2d327d128be1b88fa5/pyskna-0.1.0.post3.tar.gz",
"platform": null,
"description": "# pyskna\nThis toolbox provides computation methods for skin nerve activity (SKNA), which can be derived from electrocardiogram (ECG) signals collected under specific recording conditions.\n\n## Installation\n\n```bash\npip install pyskna\n```\n\n## Example\n\n\n\n```python\nimport pandas as pd\nfrom pyskna import extract_iSKNA, extract_TVSKNA\n\n# Load EKG file\nEKG = pd.read_csv(\"example_ekg.csv\", header=None).to_numpy().reshape(-1)\n\n# iSKNA computation\nSKNA_dict = extract_iSKNA(input_ary=EKG, fs=4000, f_l=500, f_h=1000, smoothing_win_len=0.1)\n\n# TVSKNA computation\nTVSKNA_dict = extract_TVSKNA(input_ary=EKG, fs=4000, smoothing_win_len=0.1, thread_n=12)\n\n```\nSee [`test.py`](./tests/test.py)\n\n## Compatibility for extract_TVSKNA\nThe extract_TVSKNA function uses VFCDM binaries, which has been tested with **Python 3.11** on the following platforms:\n- macOS (Apple Silicon / ARM64) \n- Linux (x86_64)\n- Windows (x86_64)\n\n### Notes\n- macOS x86_64 (Intel) **is expected to work**, but has not been formally tested.\n- 32-bit systems are **not supported**; the VFCDM library has only been compiled for 64-bit architectures.\n\n## Citation\nThe neuECG technique for computing iSKNA has been implemented based on the following paper:\n### iSKNA:\nKusayama, T., Wong, J., Liu, X., He, W., Doytchinova, A., Robinson, E. A., ... & Chen, P. S. (2020). \n*Simultaneous noninvasive recording of electrocardiogram and skin sympathetic nerve activity (neuECG).* \n**Nature Protocols**, 15(5), 1853\u20131877.\n\n### TVSKNA:\nIf you use TVSKNA for 4kHz sampling frequency. Please cite the following paper:\n\n- **For 4 kHz sampling:**\n\n Kong, Y., Baghestani, F., D'Angelo, W., Chen, I. P., & Chon, K. H. (2025). \n *A New Approach to Characterize Dynamics of ECG-Derived Skin Nerve Activity via Time-Varying Spectral Analysis.* \n **IEEE Transactions on Affective Computing**.\n\n- **For 500 and 1000 Hz sampling:**\n\n Kong, Y., Baghestani, F., D'Angelo, W., Chen, I. P., & Chon, K. H. (2025). \n *A New Approach to Characterize Dynamics of ECG-Derived Skin Nerve Activity via Time-Varying Spectral Analysis.* \n **IEEE Transactions on Affective Computing**.\n\n Kong, Y., Baghestani, F., Chen, I. P., & Chon, K. H. (2025). \n *Feasibility of Extracting Skin Nerve Activity from Electrocardiogram Recorded at a Low Sampling Frequency.* \n **arXiv preprint**, arXiv:2508.00494. https://doi.org/10.48550/arXiv.2508.00494\n\n\n\n\n### \u26a0\ufe0f Patent Notice\n\nSome functions (e.g., **`process_tvskna`**) in this library interface with the **VFCDM** algorithm covered by \nU.S. Patent No. **US8858450B2**, owned by Ki Chon, Ph.D. and Kihwan Ju, Ph.D. \n(Assignee: Research Foundation of the State University of New York).\n\nBy using VFCDM\u2011related functions (e.g., **`process_tvskna`**) in PySKNA, you agree to the \n[LICENSE.md](https://github.com/ykong-phd/vfcdm-binaries/blob/main/LICENSE.md) and [PATENT_NOTICE.md](https://github.com/ykong-phd/vfcdm-binaries/blob/main/PATENT_NOTICE.md) provided in the VFCDM Binaries repository, **solely for non-commercial, academic, and research use**.\n\n \n\nPlease see the PySKNA `LICENSE.md` for more details.\n\nCommercial use of the patented components requires a separate license. \n\nFor patent\u2011related inquiries, contact **ki.chon@uconn.edu**. \n\nFor all other matters, contact **youngsun.kong.phd@gmail.com**.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "This toolbox provides computation methods for skin sympathetic nerve activity (SKNA), which can be derived from electrocardiogram (ECG) signals collected under specific recording conditions.",
"version": "0.1.0.post3",
"project_urls": null,
"split_keywords": [
"skna",
" tvskna",
" iskna",
" biosignal",
" neuroscience",
" biomedical",
" mit",
" non-commercial"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4b26c4106ec6715199da08dc34cd4f46235c1513f456e59a66b4e87a91db61b8",
"md5": "a89303182a2efe699fcad1a913c07349",
"sha256": "a6aa6880f809f6002fdeafb8630b2b359d09d49a9051f3df5a35729fbb918447"
},
"downloads": -1,
"filename": "pyskna-0.1.0.post3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a89303182a2efe699fcad1a913c07349",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 9624,
"upload_time": "2025-08-05T23:26:12",
"upload_time_iso_8601": "2025-08-05T23:26:12.468590Z",
"url": "https://files.pythonhosted.org/packages/4b/26/c4106ec6715199da08dc34cd4f46235c1513f456e59a66b4e87a91db61b8/pyskna-0.1.0.post3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "14737352ec8f1141a1de69d161c67455f1444b937b88aa2d327d128be1b88fa5",
"md5": "eac888163c1d08ea651f6cf826ec5c83",
"sha256": "be79a720e1877a076b8db96092c4ceb3b73322058da41afdbf3fea749bef62b2"
},
"downloads": -1,
"filename": "pyskna-0.1.0.post3.tar.gz",
"has_sig": false,
"md5_digest": "eac888163c1d08ea651f6cf826ec5c83",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 9516,
"upload_time": "2025-08-05T23:26:13",
"upload_time_iso_8601": "2025-08-05T23:26:13.558732Z",
"url": "https://files.pythonhosted.org/packages/14/73/7352ec8f1141a1de69d161c67455f1444b937b88aa2d327d128be1b88fa5/pyskna-0.1.0.post3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 23:26:13",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pyskna"
}