@pikaa-ai/pikaa 0.3.23 → 0.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/assets/brand/orbit-logo-option4-whale.jpg +0 -0
  2. package/assets/brand/orbit-logo.jpg +0 -0
  3. package/assets/brand/orbit-logo.png +0 -0
  4. package/assets/brand/orbit-logo.svg +3 -0
  5. package/dist/cli.js +407 -219
  6. package/dist/index.js +7 -2
  7. package/package.json +1 -2
  8. package/skills/adaptyv/SKILL.md +0 -240
  9. package/skills/aeon/SKILL.md +0 -402
  10. package/skills/analytical-method-validation/SKILL.md +0 -299
  11. package/skills/anndata/SKILL.md +0 -431
  12. package/skills/arbor/SKILL.md +0 -152
  13. package/skills/arboreto/SKILL.md +0 -267
  14. package/skills/astropy/SKILL.md +0 -353
  15. package/skills/autoskill/SKILL.md +0 -233
  16. package/skills/benchling-integration/SKILL.md +0 -229
  17. package/skills/bgpt-paper-search/SKILL.md +0 -75
  18. package/skills/bids/SKILL.md +0 -237
  19. package/skills/biopython/SKILL.md +0 -472
  20. package/skills/bioservices/SKILL.md +0 -399
  21. package/skills/bulk-rnaseq/SKILL.md +0 -198
  22. package/skills/cellxgene-census/SKILL.md +0 -283
  23. package/skills/cirq/SKILL.md +0 -370
  24. package/skills/citation-management/SKILL.md +0 -329
  25. package/skills/clinical-decision-support/SKILL.md +0 -238
  26. package/skills/clinical-decision-support/references/README.md +0 -62
  27. package/skills/clinical-reports/SKILL.md +0 -248
  28. package/skills/clinical-reports/references/README.md +0 -34
  29. package/skills/cobrapy/SKILL.md +0 -496
  30. package/skills/consciousness-council/SKILL.md +0 -151
  31. package/skills/dask/SKILL.md +0 -482
  32. package/skills/database-lookup/SKILL.md +0 -386
  33. package/skills/datamol/SKILL.md +0 -200
  34. package/skills/deepchem/SKILL.md +0 -244
  35. package/skills/deepspot-m/SKILL.md +0 -175
  36. package/skills/deeptools/SKILL.md +0 -412
  37. package/skills/depmap/SKILL.md +0 -301
  38. package/skills/dhdna-profiler/SKILL.md +0 -184
  39. package/skills/diffdock/SKILL.md +0 -488
  40. package/skills/dnanexus-integration/SKILL.md +0 -325
  41. package/skills/docx/SKILL.md +0 -99
  42. package/skills/esm/SKILL.md +0 -334
  43. package/skills/etetoolkit/SKILL.md +0 -327
  44. package/skills/exa-search/SKILL.md +0 -102
  45. package/skills/executing-plans/SKILL.md +0 -14
  46. package/skills/experimental-design/SKILL.md +0 -234
  47. package/skills/exploratory-data-analysis/SKILL.md +0 -280
  48. package/skills/flowio/SKILL.md +0 -310
  49. package/skills/fluidsim/SKILL.md +0 -279
  50. package/skills/frontend-design/SKILL.md +0 -100
  51. package/skills/generate-image/SKILL.md +0 -304
  52. package/skills/geniml/SKILL.md +0 -310
  53. package/skills/genomic-coordinates/SKILL.md +0 -189
  54. package/skills/genomic-intelligence/SKILL.md +0 -243
  55. package/skills/geomaster/README.md +0 -105
  56. package/skills/geomaster/SKILL.md +0 -366
  57. package/skills/geopandas/SKILL.md +0 -250
  58. package/skills/get-available-resources/SKILL.md +0 -260
  59. package/skills/gget/SKILL.md +0 -153
  60. package/skills/ginkgo-cloud-lab/SKILL.md +0 -106
  61. package/skills/glycoengineering/SKILL.md +0 -339
  62. package/skills/gtars/SKILL.md +0 -282
  63. package/skills/guardian-rails/SKILL.md +0 -54
  64. package/skills/histolab/SKILL.md +0 -243
  65. package/skills/hugging-science/SKILL.md +0 -132
  66. package/skills/hypogenic/SKILL.md +0 -290
  67. package/skills/hypothesis-generation/SKILL.md +0 -264
  68. package/skills/imaging-data-commons/SKILL.md +0 -496
  69. package/skills/infographics/SKILL.md +0 -315
  70. package/skills/iso-standards-readiness/SKILL.md +0 -352
  71. package/skills/lab-hardware-cad/SKILL.md +0 -372
  72. package/skills/labarchive-integration/SKILL.md +0 -216
  73. package/skills/lamindb/SKILL.md +0 -408
  74. package/skills/latchbio-integration/SKILL.md +0 -227
  75. package/skills/latex-posters/SKILL.md +0 -369
  76. package/skills/latex-posters/references/README.md +0 -439
  77. package/skills/liteparse/SKILL.md +0 -295
  78. package/skills/literature-review/SKILL.md +0 -263
  79. package/skills/markdown-mermaid-writing/SKILL.md +0 -322
  80. package/skills/market-research-reports/SKILL.md +0 -337
  81. package/skills/markitdown/SKILL.md +0 -264
  82. package/skills/matchms/SKILL.md +0 -276
  83. package/skills/matlab/SKILL.md +0 -274
  84. package/skills/matplotlib/SKILL.md +0 -378
  85. package/skills/medchem/SKILL.md +0 -321
  86. package/skills/modal/SKILL.md +0 -468
  87. package/skills/molecular-dynamics/SKILL.md +0 -458
  88. package/skills/molfeat/SKILL.md +0 -348
  89. package/skills/ncats-arax/SKILL.md +0 -178
  90. package/skills/networkx/SKILL.md +0 -440
  91. package/skills/neurokit2/SKILL.md +0 -323
  92. package/skills/neuropixels-analysis/SKILL.md +0 -412
  93. package/skills/nextflow/SKILL.md +0 -195
  94. package/skills/omero-integration/SKILL.md +0 -222
  95. package/skills/onekgpd/SKILL.md +0 -371
  96. package/skills/ontology-term-resolution/SKILL.md +0 -147
  97. package/skills/open-notebook/SKILL.md +0 -297
  98. package/skills/openpiv/SKILL.md +0 -469
  99. package/skills/opentrons-integration/SKILL.md +0 -322
  100. package/skills/optimize-for-gpu/SKILL.md +0 -176
  101. package/skills/owasp-top10/SKILL.md +0 -48
  102. package/skills/pacsomatic/LICENSE +0 -21
  103. package/skills/pacsomatic/SKILL.md +0 -150
  104. package/skills/paper-lookup/SKILL.md +0 -263
  105. package/skills/paperclip/SKILL.md +0 -413
  106. package/skills/paperzilla/SKILL.md +0 -159
  107. package/skills/parallel-web/SKILL.md +0 -128
  108. package/skills/pathml/SKILL.md +0 -222
  109. package/skills/pathogen-variant-surveillance/SKILL.md +0 -208
  110. package/skills/pathway-enrichment/SKILL.md +0 -194
  111. package/skills/pdf/SKILL.md +0 -322
  112. package/skills/peer-review/SKILL.md +0 -288
  113. package/skills/penetration-testing/SKILL.md +0 -31
  114. package/skills/pennylane/SKILL.md +0 -240
  115. package/skills/phylogenetics/SKILL.md +0 -409
  116. package/skills/pi-agent/SKILL.md +0 -83
  117. package/skills/pkpd-modeling/SKILL.md +0 -381
  118. package/skills/polars/SKILL.md +0 -393
  119. package/skills/polars-bio/SKILL.md +0 -379
  120. package/skills/ponytail/SKILL.md +0 -31
  121. package/skills/ponytail-audit/SKILL.md +0 -18
  122. package/skills/pptx/SKILL.md +0 -246
  123. package/skills/pptx-posters/SKILL.md +0 -258
  124. package/skills/primekg/SKILL.md +0 -99
  125. package/skills/protocolsio-integration/SKILL.md +0 -236
  126. package/skills/pufferlib/SKILL.md +0 -328
  127. package/skills/pydeseq2/SKILL.md +0 -369
  128. package/skills/pydicom/SKILL.md +0 -381
  129. package/skills/pyhealth/SKILL.md +0 -124
  130. package/skills/pylabrobot/SKILL.md +0 -216
  131. package/skills/pymatgen/SKILL.md +0 -404
  132. package/skills/pymc/SKILL.md +0 -310
  133. package/skills/pymoo/SKILL.md +0 -276
  134. package/skills/pyopenms/SKILL.md +0 -179
  135. package/skills/pysam/SKILL.md +0 -330
  136. package/skills/pytdc/SKILL.md +0 -297
  137. package/skills/pytorch-lightning/SKILL.md +0 -191
  138. package/skills/pyzotero/SKILL.md +0 -137
  139. package/skills/qiskit/SKILL.md +0 -259
  140. package/skills/qutip/SKILL.md +0 -317
  141. package/skills/rdkit/SKILL.md +0 -94
  142. package/skills/relsa-severity-assessment/SKILL.md +0 -354
  143. package/skills/research-grants/SKILL.md +0 -296
  144. package/skills/research-grants/references/README.md +0 -287
  145. package/skills/research-lookup/README.md +0 -106
  146. package/skills/research-lookup/SKILL.md +0 -338
  147. package/skills/rowan/SKILL.md +0 -398
  148. package/skills/scanpy/SKILL.md +0 -303
  149. package/skills/scholar-evaluation/SKILL.md +0 -296
  150. package/skills/scientific-brainstorming/SKILL.md +0 -282
  151. package/skills/scientific-critical-thinking/SKILL.md +0 -180
  152. package/skills/scientific-schematics/SKILL.md +0 -370
  153. package/skills/scientific-slides/SKILL.md +0 -379
  154. package/skills/scientific-visualization/SKILL.md +0 -285
  155. package/skills/scientific-writing/SKILL.md +0 -356
  156. package/skills/scikit-bio/SKILL.md +0 -470
  157. package/skills/scikit-learn/SKILL.md +0 -324
  158. package/skills/scikit-survival/SKILL.md +0 -313
  159. package/skills/scvelo/SKILL.md +0 -328
  160. package/skills/scvi-tools/SKILL.md +0 -201
  161. package/skills/seaborn/SKILL.md +0 -254
  162. package/skills/security-auditor/SKILL.md +0 -37
  163. package/skills/shap/SKILL.md +0 -282
  164. package/skills/simpy/SKILL.md +0 -283
  165. package/skills/stable-baselines3/SKILL.md +0 -325
  166. package/skills/statistical-analysis/SKILL.md +0 -446
  167. package/skills/statistical-power/SKILL.md +0 -200
  168. package/skills/statsmodels/SKILL.md +0 -238
  169. package/skills/sympy/SKILL.md +0 -354
  170. package/skills/systematic-debugging/SKILL.md +0 -35
  171. package/skills/tamarind/SKILL.md +0 -285
  172. package/skills/tdd/SKILL.md +0 -26
  173. package/skills/tiledbvcf/SKILL.md +0 -456
  174. package/skills/timesfm-forecasting/SKILL.md +0 -408
  175. package/skills/timesfm-forecasting/examples/global-temperature/README.md +0 -178
  176. package/skills/torch-geometric/SKILL.md +0 -458
  177. package/skills/torchdrug/SKILL.md +0 -241
  178. package/skills/transformers/SKILL.md +0 -195
  179. package/skills/treatment-plans/SKILL.md +0 -174
  180. package/skills/treatment-plans/references/README.md +0 -19
  181. package/skills/umap-learn/SKILL.md +0 -488
  182. package/skills/uncertainty-and-units/SKILL.md +0 -384
  183. package/skills/usfiscaldata/SKILL.md +0 -171
  184. package/skills/vaex/SKILL.md +0 -204
  185. package/skills/venue-templates/SKILL.md +0 -269
  186. package/skills/verification-before-completion/SKILL.md +0 -22
  187. package/skills/waypoint-bio/SKILL.md +0 -273
  188. package/skills/what-if-oracle/SKILL.md +0 -184
  189. package/skills/writing-plans/SKILL.md +0 -15
  190. package/skills/xlsx/SKILL.md +0 -110
  191. package/skills/zarr-python/SKILL.md +0 -241
@@ -1,323 +0,0 @@
1
- ---
2
- name: neurokit2
3
- description: Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.
4
- license: MIT
5
- compatibility: Python 3.10+ and uv; pinned workflows use NeuroKit2 0.2.13. Core processing needs NumPy, SciPy, pandas, scikit-learn, matplotlib, PyWavelets, requests, and setuptools; selected EEG, cvxEDA, plotting, file-format, and RQA features need separately locked optional packages.
6
- allowed-tools: Read Write Edit Bash Glob
7
- metadata:
8
- version: "1.1"
9
- skill-author: K-Dense Inc.
10
- ---
11
-
12
- # NeuroKit2
13
-
14
- ## Scope and evidence cutoff
15
-
16
- Use this skill for method-aware, reproducible biosignal research with NeuroKit2. The
17
- snapshot was checked on **2026-07-23** against:
18
-
19
- - stable PyPI **0.2.13**, released 2026-03-02;
20
- - Python metadata (`>=3.10`; classifiers 3.10–3.14) and wheel dependencies;
21
- - GitHub release notes/tags, `NEWS.rst`, source at tag `v0.2.13`;
22
- - official API pages/examples (the live site identified itself as
23
- `0.2.13.dev214`); and
24
- - pinned 0.2.13 runtime signatures and synthetic output schemas.
25
-
26
- The live documentation can be ahead of the stable wheel. Prefer the pinned runtime
27
- for reproducible work and name both versions if consulting development docs.
28
-
29
- ## Boundary
30
-
31
- NeuroKit2 is a research and educational toolbox. Do **not** present its output as:
32
-
33
- - a diagnosis, treatment recommendation, patient-monitoring decision, or alarm;
34
- - validation, certification, or regulatory evidence for a medical device; or
35
- - proof that a physiological construct is measured validly in a new sensor,
36
- protocol, environment, population, or disease group.
37
-
38
- Validate acquisition hardware, electrode/optode placement, units, sampling and clock
39
- accuracy, preprocessing, detector/decomposition method, population, task, and
40
- outcomes for the intended study. Preserve raw data and an auditable exclusion log.
41
- Use deidentified local files only; do not place PHI in prompts, logs, examples, or
42
- bundled fixtures.
43
-
44
- ## Reproducible installation
45
-
46
- ```bash
47
- uv pip install "neurokit2==0.2.13"
48
- ```
49
-
50
- For optional features, create a uv project, add only the packages actually required at
51
- reviewed exact versions, and commit/review the resulting `uv.lock` before
52
- `uv sync --locked`. NeuroKit2 exposes an upstream `full` extra, but this skill
53
- intentionally does not install that floating transitive set in an automated workflow.
54
- Optional capabilities can require MNE, cvxopt, Plotly, PyEMD, pyRQA, Pillow, OpenCV,
55
- or file readers. Record the resolved environment with the analysis. Provision any MNE
56
- data/template download as an explicit, checksummed study input. Do not install a moving
57
- development branch for a reproducible study.
58
-
59
- ## Required data contract
60
-
61
- Before processing, record:
62
-
63
- 1. signal identity and sensor/channel configuration;
64
- 2. native sampling rate in Hz and physical unit (or explicitly `arbitrary_unit`);
65
- 3. clock, timestamp origin, drift correction, and synchronization evidence;
66
- 4. polarity/orientation and acquisition-side filters/gain;
67
- 5. missing samples, discontinuities, saturation, flatlines, motion, and annotations;
68
- 6. whether event onsets are zero-based sample indices or seconds;
69
- 7. planned preprocessing order, methods, parameters, exclusions, and outputs; and
70
- 8. participant-level grouping needed to prevent leakage in later statistics.
71
-
72
- Never infer units from a column name. Do not silently treat samples as milliseconds,
73
- volts, microsiemens, or arbitrary units.
74
-
75
- ## Core workflow
76
-
77
- ### 1. Inspect before transforming
78
-
79
- ```bash
80
- python skills/neurokit2/scripts/inspect_signal.py \
81
- --input recording.csv --root . --deidentified \
82
- --columns ECG,RSP,EDA --time-column time_s \
83
- --units ECG=mV,RSP=a.u.,EDA=uS
84
- ```
85
-
86
- The inspector is bounded and emits no row values or paths. Resolve non-monotonic time,
87
- duplicate samples, gaps, non-finite values, flat runs, and sampling-rate disagreement
88
- before filtering.
89
-
90
- ### 2. Preserve preprocessing order
91
-
92
- Use this default reasoning order, adapting it to the acquisition and cited method:
93
-
94
- 1. preserve immutable raw signal and annotations;
95
- 2. verify time base, units, polarity, clipping, gaps, and artifacts;
96
- 3. segment at long gaps; only interpolate short gaps under a declared policy;
97
- 4. apply modality-specific cleaning at the native sampling rate;
98
- 5. detect peaks/onsets or decompose components;
99
- 6. inspect quality outputs and raw overlays;
100
- 7. correct peaks only with logged categories and sensitivity checks;
101
- 8. derive rates/features;
102
- 9. align continuous modalities on a declared common time grid; and
103
- 10. map event indices to that grid, epoch, baseline, and analyze.
104
-
105
- Do not resample binary markers or peak-index arrays as ordinary continuous signals.
106
- Map their timestamps to the target grid. Filtering and interpolation can create edge
107
- artifacts and false precision; retain masks for padded, missing, and rejected regions.
108
-
109
- ### 3. Treat schemas as runtime observations
110
-
111
- Return columns depend on NeuroKit2 version, function, method, signal availability, and
112
- analysis mode. Never claim that one column list is universal.
113
-
114
- ```python
115
- signals, info = nk.ecg_process(ecg, sampling_rate=250)
116
- observed_schema = {
117
- "columns": list(signals.columns),
118
- "info_keys": sorted(info),
119
- }
120
- ```
121
-
122
- Persist the observed schema with package version, method parameters, sampling rate, and
123
- quality/exclusion summary. Reference files list verified default schemas for 0.2.13,
124
- not guarantees for every method.
125
-
126
- ## Current patterns
127
-
128
- ### ECG, corrected peaks, and duration-aware HRV
129
-
130
- In stable 0.2.13, `ecg_process()` performs cleaning, R-peak detection with
131
- `correct_artifacts=True`, rate, default `averageQRS` quality, DWT delineation, and phase.
132
-
133
- ```python
134
- signals, info = nk.ecg_process(ecg, sampling_rate=250, method="neurokit")
135
- time_hrv = nk.hrv_time(info, sampling_rate=250)
136
- ```
137
-
138
- Inspect `ECG_R_Peaks_Uncorrected` and `ECG_fixpeaks_*`; a corrected series is not
139
- automatically a valid NN series. For frequency/nonlinear HRV, enforce metric-specific
140
- duration and beat-count requirements. Five minutes is the conventional short-term
141
- reference; ULF is a long-recording measure, and VLF interpretation from short records
142
- is unsafe. Do not interpret LF/HF as a direct sympathovagal balance. PPG pulse-rate
143
- variability is not interchangeable with ECG HRV.
144
-
145
- Use the bounded pipeline:
146
-
147
- ```bash
148
- python skills/neurokit2/scripts/ecg_hrv_pipeline.py \
149
- --synthetic --sampling-rate 250 --duration 300 \
150
- --domains time,frequency,nonlinear
151
- ```
152
-
153
- ### EDA with explicit decomposition
154
-
155
- The stable default `eda_process(method="neurokit")` uses high-pass tonic/phasic
156
- decomposition, not cvxEDA. Choose and report decomposition explicitly:
157
-
158
- ```python
159
- clean = nk.eda_clean(eda, sampling_rate=100, method="neurokit")
160
- components = nk.eda_phasic(clean, sampling_rate=100, method="highpass")
161
- markers, info = nk.eda_peaks(
162
- components["EDA_Phasic"],
163
- sampling_rate=100,
164
- method="neurokit",
165
- amplitude_min=0.1,
166
- )
167
- ```
168
-
169
- For `neurokit`/`kim2004`, `amplitude_min` is relative to the largest detected response;
170
- it is not an absolute microsiemens threshold. cvxEDA needs optional `cvxopt`.
171
-
172
- ```bash
173
- python skills/neurokit2/scripts/eda_pipeline.py \
174
- --synthetic --sampling-rate 100 --duration 60 \
175
- --phasic-method highpass --peak-method neurokit
176
- ```
177
-
178
- ### Events, epochs, and baseline
179
-
180
- `events_find()` reports zero-based sample onsets; duration/spacing arguments are in
181
- samples. `epochs_create()` takes epoch limits in seconds.
182
-
183
- ```python
184
- events = nk.events_find(trigger, threshold=0.5, duration_min=2)
185
- epochs = nk.epochs_create(
186
- signals,
187
- events,
188
- sampling_rate=100,
189
- epochs_start=-0.2,
190
- epochs_end=0.8,
191
- baseline_correction=False,
192
- )
193
- ```
194
-
195
- Plan sample-exact windows first:
196
-
197
- ```bash
198
- python skills/neurokit2/scripts/plan_epochs.py \
199
- --events 1000,2500,4000 --event-unit samples \
200
- --sampling-rate 100 --recording-samples 5000 \
201
- --epoch-start -0.2 --epoch-end 0.8 \
202
- --baseline-start -0.2 --baseline-end 0
203
- ```
204
-
205
- In 0.2.13 the epoch slice is end-exclusive, but the generated floating time index
206
- includes `epochs_end`. Built-in baseline correction subtracts the epoch mean from its
207
- start through `t=0`; use manual correction for a narrower prespecified baseline.
208
- Boundary epochs are padded and can contain NaN. Decide drop/pad/error before analysis.
209
-
210
- ### RSA and multimodal processing
211
-
212
- `bio_process()` assumes all inputs already share one sampling rate and alignment. It
213
- does not resample, synchronize, estimate drift, or create nested modality dictionaries;
214
- its `info` output is flat. Unequal lengths are concatenated by index and can introduce
215
- NaN. RSA is added only when synchronized ECG and RSP are present.
216
-
217
- Validate a strict local manifest before calling it:
218
-
219
- ```bash
220
- python skills/neurokit2/scripts/validate_multimodal.py \
221
- --manifest streams.json --root . --deidentified
222
- ```
223
-
224
- After independent modality QC and alignment:
225
-
226
- ```python
227
- bio_signals, bio_info = nk.bio_process(
228
- ecg=ecg_aligned,
229
- rsp=rsp_aligned,
230
- eda=eda_aligned,
231
- sampling_rate=common_rate,
232
- )
233
- rsa_summary = nk.hrv_rsa(
234
- bio_signals,
235
- bio_signals,
236
- rpeaks=bio_info,
237
- sampling_rate=common_rate,
238
- continuous=False,
239
- )
240
- ```
241
-
242
- Summary RSA is a dictionary; `continuous=True` returns a DataFrame with `RSA_P2T` and
243
- `RSA_Gates` in the verified default workflow. Co-record respiration and report its
244
- rate/depth/context; RSA is not a direct, context-free measure of vagal tone.
245
-
246
- ### Complexity returns values plus metadata
247
-
248
- Most complexity functions in 0.2.13 return `(value, info)`. The convenience function
249
- also returns two objects:
250
-
251
- ```python
252
- features, details = nk.complexity(signal) # default which="makowski2022"
253
- sampen, sampen_info = nk.entropy_sample(signal)
254
- dfa, dfa_info = nk.fractal_dfa(signal)
255
- ```
256
-
257
- The default convenience selection is not “all measures.” Complexity estimates are
258
- sensitive to length, stationarity, normalization, delay, dimension, tolerance, scale,
259
- and implementation. Predefine them and run sensitivity/surrogate analyses.
260
-
261
- ## Bundled command-line helpers
262
-
263
- All helpers reject URLs, path traversal, and symlinks; bound bytes/rows/channels; refuse
264
- overwrite unless `--force`; use lazy scientific imports so `--help` works without
265
- NeuroKit2; never use pickle; and produce deterministic JSON/CSV. Real-data commands
266
- require `--deidentified`.
267
-
268
- | Helper | Purpose |
269
- |---|---|
270
- | `scripts/generate_synthetic.py` | Dependency-free deterministic CSV fixtures |
271
- | `scripts/inspect_signal.py` | Bounded CSV/time/gap/flatline inspection |
272
- | `scripts/ecg_hrv_pipeline.py` | Pinned ECG, quality, peak-correction, HRV workflow |
273
- | `scripts/eda_pipeline.py` | Explicit cleaning, decomposition, SCR workflow |
274
- | `scripts/plan_epochs.py` | Sample-exact event, boundary, baseline planner |
275
- | `scripts/validate_multimodal.py` | Strict units/rates/clocks/alignment schema validator |
276
-
277
- Generate a fixture without exposing participant data:
278
-
279
- ```bash
280
- python skills/neurokit2/scripts/generate_synthetic.py \
281
- --output synthetic.csv --root . --duration 30 \
282
- --sampling-rate 250 --seed 42
283
- ```
284
-
285
- ## Security note
286
-
287
- No example or helper uses Python `eval()` or `exec()`. NeuroKit2 names such as
288
- `eeg_*`, `events_*`, and `*_eventrelated()` are ordinary library calls. If a static
289
- scanner reports an eval/exec pattern based on a substring, inspect the exact line and
290
- record it as a scanner false positive only after confirming no dynamic execution exists.
291
-
292
- ## References
293
-
294
- Read only the files needed for the modality or decision:
295
- All bundled Markdown paths below are under `references/`; this skill has no
296
- `templates/` or `assets/` reference paths.
297
-
298
- | File | Contents |
299
- |---|---|
300
- | `references/signal_processing.md` | Filters, gaps, resampling, peaks, PSD, schemas |
301
- | `references/epochs_events.md` | Event indexing, epoch boundaries, baselines |
302
- | `references/ecg_cardiac.md` | ECG process, quality, delineation, peak correction |
303
- | `references/hrv.md` | HRV/RSA inputs, duration, ectopy, interpretation |
304
- | `references/eda.md` | Cleaning, decomposition, SCR detection |
305
- | `references/emg.md` | EMG cleaning, amplitude, activation |
306
- | `references/eog.md` | EOG polarity, MNE default, blink features |
307
- | `references/eeg.md` | EEG/MNE helpers, power, QC, microstates |
308
- | `references/ppg.md` | PPG methods, quality semantics, PRV limitations |
309
- | `references/rsp.md` | Respiration polarity, rate, RRV/RVT/RAV |
310
- | `references/bio_module.md` | Multimodal alignment and `bio_*` schemas |
311
- | `references/complexity.md` | Tuple returns, parameter sensitivity, RQA |
312
-
313
- ## Primary sources checked 2026-07-23
314
-
315
- - [PyPI 0.2.13](https://pypi.org/project/neurokit2/)
316
- - [Official documentation](https://neuropsychology.github.io/NeuroKit/)
317
- - [API index](https://neuropsychology.github.io/NeuroKit/functions/index.html)
318
- - [GitHub releases](https://github.com/neuropsychology/NeuroKit/releases)
319
- - [Makowski et al. (2021), NeuroKit2](https://doi.org/10.3758/s13428-020-01516-y)
320
- - [Pham et al. (2021), HRV tutorial](https://doi.org/10.3390/s21123998)
321
- - [Makowski et al. (2022), complexity comparison](https://doi.org/10.3390/e24081036)
322
- - [SPR guideline index](https://sprweb.org/guidelines-papers)
323
- - [Quigley et al. (2024), HR/HRV guidelines](https://doi.org/10.1111/psyp.14604)