NeuroKit2 Physiological Research Workflow
Build and audit reproducible NeuroKit2 pipelines for ECG, EDA, RSP, EEG and other physiological time-series analysis.
Data & AnalyticsAdvanced★ 33,030⑂ 3,248AI score 9/10Last updated: Aug 9, 2026
What it does
Guides Claude through method-aware, reproducible biosignal research using NeuroKit2 pinned at 0.2.13.
- Enforces a data contract: sampling rate, physical units, clock origin and drift, missing/saturated/flat samples, and whether event onsets are samples or seconds.
- Locks preprocessing order: preserve raw → verify time base → segment at gaps → clean per modality at native rate → detect peaks/decompose → inspect quality → log peak corrections → derive features → align to a common grid → epoch and analyze.
- Treats schemas as runtime observations: records returned columns and
infokeys together with version, method, and sampling rate instead of assuming a universal column list. - Ships six bounded CLI helpers: synthetic fixture generator, signal inspector, ECG-HRV pipeline, EDA pipeline, sample-exact epoch planner, and multimodal manifest validator. They reject URLs, symlinks and path traversal, never pickle, and require
--deidentifiedfor real data. - Interpretation guardrails: no LF/HF-as-sympathovagal-balance claims, PPG PRV ≠ ECG HRV, no VLF/ULF interpretation from short records, RSA is not context-free vagal tone.
Who it's for
- Psychophysiology, cognitive neuroscience and wearable researchers working with ECG/HRV, EDA/SCR, respiration, EOG/EEG.
- Graduate students and lab engineers who need reproducibility: pinned versions, recorded environments, auditable exclusion logs.
- Data scientists reviewing or auditing someone else's NeuroKit2 code.
Not for diagnosis, patient monitoring, or medical-device validation. Keep PHI out of prompts, logs, and fixtures.
Examples
- Pre-flight before HRV: "Inspect this 250 Hz ECG CSV, then compute time, frequency and nonlinear HRV." →
inspect_signal.pyflags non-monotonic timestamps and flat runs, thenecg_hrv_pipeline.pyruns with duration warnings for VLF/ULF metrics. - Explicit EDA decomposition: the skill clarifies that default
eda_process(method="neurokit")uses high-pass tonic/phasic separation (not cvxEDA), that cvxEDA needscvxopt, and thatamplitude_minis relative, not an absolute µS threshold. - Multimodal alignment audit: validate a strict local manifest with
validate_multimodal.pybefore callingbio_process(), avoiding index-concatenation NaNs and checking that synchronized ECG+RSP exist before trusting RSA output.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/neurokit2 folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/neurokit2/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git /tmp/scientific-agent-skills && mkdir -p ~/.claude/skills && cp -r /tmp/scientific-agent-skills/skills/neurokit2 ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and confirm you have Claude Code, Python 3.10+, and
uvinstalled. - Clone the skill repository:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Create your personal skills folder and copy just this skill:
mkdir -p ~/.claude/skills cp -r scientific-agent-skills/skills/neurokit2 ~/.claude/skills/ - Install the pinned library:
For optional features (MNE/EEG, cvxEDA, pyRQA, plotting), add only the packages you need at exact versions and commit the resultinguv pip install "neurokit2==0.2.13"uv.lock. - Restart Claude Code and run
/skillsto confirm the skill is detected. - Smoke-test with synthetic data before touching real recordings:
python ~/.claude/skills/neurokit2/scripts/generate_synthetic.py --output synthetic.csv --root . --duration 30 --sampling-rate 250 --seed 42 - For real recordings, deidentify first and always pass the
--deidentifiedflag.
View source on GitHub ↗License: MIT