{"id":43562601,"url":"https://github.com/neuromodulation/py_neuromodulation","last_synced_at":"2026-02-03T21:09:09.033Z","repository":{"id":38818941,"uuid":"344105342","full_name":"neuromodulation/py_neuromodulation","owner":"neuromodulation","description":"Real-time analysis of intracranial neurophysiology recordings.","archived":false,"fork":false,"pushed_at":"2025-11-04T10:40:01.000Z","size":347918,"stargazers_count":70,"open_issues_count":3,"forks_count":19,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-28T10:49:58.677Z","etag":null,"topics":["dbs","deep-brain-stimulation","ecog","electrocorticography","machine-learning","python","real-time"],"latest_commit_sha":null,"homepage":"https://neuromodulation.github.io/py_neuromodulation/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neuromodulation.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-03T11:35:28.000Z","updated_at":"2026-01-15T11:34:41.000Z","dependencies_parsed_at":"2023-02-13T00:01:27.954Z","dependency_job_id":"2277c305-57b7-4c42-9b4d-0158b948a003","html_url":"https://github.com/neuromodulation/py_neuromodulation","commit_stats":{"total_commits":729,"total_committers":11,"mean_commits":66.27272727272727,"dds":"0.34156378600823045","last_synced_commit":"19643cc4feaea821806d614b2ec8f21179615147"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/neuromodulation/py_neuromodulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuromodulation%2Fpy_neuromodulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuromodulation%2Fpy_neuromodulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuromodulation%2Fpy_neuromodulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuromodulation%2Fpy_neuromodulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neuromodulation","download_url":"https://codeload.github.com/neuromodulation/py_neuromodulation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuromodulation%2Fpy_neuromodulation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29057172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T20:13:53.544Z","status":"ssl_error","status_checked_at":"2026-02-03T20:13:40.507Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dbs","deep-brain-stimulation","ecog","electrocorticography","machine-learning","python","real-time"],"created_at":"2026-02-03T21:09:08.534Z","updated_at":"2026-02-03T21:09:09.021Z","avatar_url":"https://github.com/neuromodulation.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\npy_neuromodulation\n==================\n\nJournal of Open Source Science publication:\n\n.. image:: https://joss.theoj.org/papers/10.21105/joss.08258/status.svg\n   :target: https://doi.org/10.21105/joss.08258\n\n\n\nDocumentation: https://neuromodulation.github.io/py_neuromodulation/\n\nAnalyzing neural data can be a troublesome, trial and error prone,\nand beginner unfriendly process. *py_neuromodulation* allows using a simple\ninterface for extraction of established neurophysiological features and includes commonly applied pre -and postprocessing methods.\n\nOnly **time series data** with a corresponding **sampling frequency** are required for feature extraction.\n\nThe output will be a `pandas.DataFrame \u003chttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html\u003e`_ including different time-resolved computed features. Internally a **stream** get's initialized,\nwhich resembles an *online* data-stream that can in theory also be be used with a hardware acquisition system. \n\nThe following features are currently included:\n\n* oscillatory: fft, stft or bandpass filtered band power\n* `temporal waveform shape \u003chttps://www.sciencedirect.com/science/article/pii/S1364661316302182\u003e`_\n* `fooof \u003chttps://fooof-tools.github.io/fooof/\u003e`_\n* `mne_connectivity estimates \u003chttps://mne.tools/mne-connectivity/stable/index.html\u003e`_ \n* `Hjorth parameter \u003chttps://en.wikipedia.org/wiki/Hjorth_parameters\u003e`_\n* `non-linear dynamical estimates \u003chttps://nolds.readthedocs.io/en/latest/\u003e`_\n* various burst features\n* line length \n* and more...\n\n\nFind here the preprint of **py_neuromodulation** called *\"Invasive neurophysiology and whole brain connectomics for neural decoding in patients with brain implants\"* [1]_.\n\nThe original intention for writing this toolbox was movement decoding from invasive brain signals [2]_.\nThe application however could be any neural decoding problem.\n*py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.\n\nFind the documentation here neuromodulation.github.io/py_neuromodulation/ for example usage and parametrization.\n\nInstallation\n============\n\npy_neuromodulation requires at least python 3.12. For installation you can use pip:\n\n.. code-block::\n\n    pip install py-neuromodulation\n\nAlternatively you can also clone the pacakge and install it using `uv \u003chttps://docs.astral.sh/uv/\u003e`_:\n\n.. code-block::\n\n    uv python install 3.12\n    uv venv\n    . .venv/bin/activate\n    uv sync\n\n\nThen *py_neuromodulation* can be imported via:\n\n.. code-block::\n\n    import py_neuromodulation as nm\n\nBasic Usage\n===========\n\n.. code-block:: python\n    \n    import py_neuromodulation as nm\n    import numpy as np\n    \n    NUM_CHANNELS = 5\n    NUM_DATA = 10000\n    sfreq = 1000  # Hz\n    sampling_rate_features_hz = 3  # Hz\n\n    data = np.random.random([NUM_CHANNELS, NUM_DATA])\n\n    stream = nm.Stream(sfreq=sfreq, data=data, sampling_rate_features_hz=sampling_rate_features_hz)\n    features = stream.run()\n\nCheck the `Usage \u003chttps://neuromodulation.github.io/py_neuromodulation/usage.html\u003e`_ and `First examples \u003chttps://neuromodulation.github.io/py_neuromodulation/auto_examples/index.html\u003e`_ for further introduction.\n\nContact information\n-------------------\nFor any question or suggestion please find my contact\ninformation at `my GitHub profile \u003chttps://github.com/timonmerk\u003e`_.\n\nContributing guide\n------------------\nhttps://neuromodulation.github.io/py_neuromodulation/contributing.html\n\n\nReferences\n----------\n\n.. [1] Merk, T. et al. *Invasive neurophysiology and whole brain connectomics for neural decoding in patients with brain implants*, `https://doi.org/10.21203/rs.3.rs-3212709/v1` (2023).\n.. [2] Merk, T. et al. *Electrocorticography is superior to subthalamic local field potentials for movement decoding in Parkinson’s disease*. Elife 11, e75126, `https://doi.org/10.7554/eLife.75126` (2022).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneuromodulation%2Fpy_neuromodulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneuromodulation%2Fpy_neuromodulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneuromodulation%2Fpy_neuromodulation/lists"}