Skip to main content

spikeinterface

Unified extracellular electrophysiology workflows for spike sorting, preprocessing, postprocessing, metrics, curation, and visualization. Use when working with Recording/Sorting objects, building SortingAnalyzer pipelines, running sorters, comparing sortings to ground truth, and applying automated/manual curation in SpikeInterface. Keywords: generate_ground_truth_recording, NumpyRecording, load_extractor, create_sorting_analyzer, quality_metrics, run_sorter, compare_sorter_to_ground_truth, apply_curation, threshold_metrics_label_units, plot_traces.

跳到安装

来源信息

仓库
HughYau/neuroforge-skills
最近来源活动
2026年2月24日 23:10
检测到的 SKILL.md 语言
英语
星标
6
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
100 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
spikeinterface
description
Unified extracellular electrophysiology workflows for spike sorting, preprocessing, postprocessing, metrics, curation, and visualization. Use when working with Recording/Sorting objects, building SortingAnalyzer pipelines, running sorters, comparing sortings to ground truth, and applying automated/manual curation in SpikeInterface. Keywords: generate_ground_truth_recording, NumpyRecording, load_extractor, create_sorting_analyzer, quality_metrics, run_sorter, compare_sorter_to_ground_truth, apply_curation, threshold_metrics_label_units, plot_traces.
# SpikeInterface SpikeInterface provides a modular API to move from raw extracellular recordings to sorted, analyzed, curated, and visualized units. ## Version Built against: `spikeinterface==0.103.3` Python: `3.13.5` > Runtime import/execution status in this build: `[UNVERIFIED: install denied in selected environment]` (see `assets/version.txt`). ## Environment Gate Before any install command, confirm environment + permission and record in `assets/version.txt`: ```text environment: <env name/path> python_executable: <path or `python`> install_permission: yes|no install_scope: none|current-env|named-env|new-env package_manager: pip|conda|mamba|uv|other coverage_profile: workflow|dictionary|hybrid ``` Current build metadata is already captured in `assets/version.txt`. ## Installation ```bash # Requires install_permission: yes pip install spikeinterface # Optional extras are task-dependent and not enforced in this skill build: # [REQUIRES: sorter-specific external binaries/containers for some spikeinterface.sorters workflows] # [REQUIRES: plotting backend dependencies for some spikeinterface.widgets backends] ``` --- ## Core I/O and Synthetic Data ```python import numpy as np import spikeinterface as si # tested against spikeinterface==0.103.3 # Build an in-memory recording and query traces traces = np.random.normal(0, 5, size=(3000, 4)).astype("float32") rec = si.NumpyRecording([traces], sampling_frequency=30000.0) print(rec.get_num_channels(), rec.get_num_segments()) # Generate toy ground truth pair recording, sorting = si.generate_ground_truth_recording(num_channels=4, num_units=6, durations=[2.0], seed=0) print(recording.get_num_channels(), sorting.get_num_units()) ``` See `references/core-io-and-synthetic.md` for signatures and pitfalls around `NumpyRecording`, binary I/O, `load_extractor`, and synthetic generators. --- ## Preprocessing and Motion ```python import spikeinterface.preprocessing as spre import spikeinterface as si # tested against spikeinterface==0.103.3 recording, _ = si.generate_ground_truth_recording(num_channels=4, durations=[2.0], seed=0) rec_bp = spre.bandpass_filter(recording, freq_min=300.0, freq_max=6000.0) print(rec_bp.get_num_channels()) # [VERSION: changed in 0.103.x — unsigned data is not auto-cast; use unsigned_to_signed() explicitly] ``` See `references/preprocessing-and-motion.md` for preprocessing pipelines, motion correction entry points, and version-sensitive behavior. --- ## SortingAnalyzer and Metrics ```python import spikeinterface as si # tested against spikeinterface==0.103.3 recording, sorting = si.generate_ground_truth_recording(num_channels=4, num_units=8, durations=[3.0], seed=0) analyzer = si.create_sorting_analyzer(sorting=sorting, recording=recording, format="memory", return_in_uV=True) analyzer.compute("random_spikes", max_spikes_per_unit=200) analyzer.compute("waveforms", ms_before=1.0, ms_after=2.0) qm = analyzer.compute("quality_metrics", metric_names=["snr", "presence_ratio"]).get_data() print(qm.shape) # [VERSION: changed in 0.103.x — prefer return_in_uV over return_scaled] ``` See `references/sorting-analyzer-and-metrics.md` for extension dependencies, signature details, and metrics workflow patterns. --- ## Running Sorters ```python import spikeinterface as si import spikeinterface.sorters as ss # tested against spikeinterface==0.103.3 recording, _ = si.generate_ground_truth_recording(num_channels=4, durations=[1.0], seed=0) print("available", ss.available_sorters()) print("installed", ss.installed_sorters()) # [REQUIRES: sorter backends and optional external installations] # sorting = ss.run_sorter("kilosort2_5", recording, folder="sorter_out", with_output=True) ``` See `references/sorters-and-execution.md` for local/container runner signatures and safe execution patterns. --- ## Comparison, Curation, and Widgets ```python import spikeinterface as si import spikeinterface.comparison as scmp import spikeinterface.curation as scur # tested against spikeinterface==0.103.3 recording, gt_sorting = si.generate_ground_truth_recording(num_channels=4, num_units=6, durations=[2.0], seed=0) comp = scmp.compare_sorter_to_ground_truth(gt_sorting, gt_sorting, exhaustive_gt=True) print(comp.count_well_detected_units(well_detected_score=0.8)) analyzer = si.create_sorting_analyzer(gt_sorting, recording, format="memory") analyzer.compute("random_spikes", max_spikes_per_unit=200) analyzer.compute("waveforms", ms_before=1.0, ms_after=2.0) analyzer.compute("templates") analyzer.compute("noise_levels") metrics = analyzer.compute("quality_metrics", metric_names=["snr", "presence_ratio"]).get_data() labels = scur.threshold_metrics_label_units(metrics, thresholds={"snr": (">=", 5)}) print(labels.columns) ``` See `references/comparison-curation-widgets.md` for comparison classes, curation model APIs, and widget function aliases. --- ## Verification (Medium+) ```bash python opensci-skill/scripts/verify-snippets.py --root spikeinterface --fail-fast ``` `[UNVERIFIED: verify against installed runtime in an environment where spikeinterface and runtime deps are available]`. ## API Dictionary (Dictionary/Hybrid) - `assets/symbol-index.md` - module-level dictionary navigation - `assets/symbol-index.jsonl` - machine-readable symbol lookup - `assets/symbol-cards/` - per-module symbol cards with signatures and source anchors ## Quick Reference | Function / Class | Purpose | |-----------------|---------| | `NumpyRecording(...)` | Create an in-memory `Recording` from NumPy arrays. | | `generate_ground_truth_recording(...)` | Produce synthetic recording/sorting pairs for testing and tutorials. | | `create_sorting_analyzer(...)` | Pair recording+sorting and orchestrate extension computations. | | `run_sorter(...)` | Execute a sorter backend (local or container depending on config). | | `compare_sorter_to_ground_truth(...)` | Score sorter output against reference sorting. | | `threshold_metrics_label_units(...)` | Apply metric thresholds to produce curation labels. | ## Module Map | Submodule | Contents | Notes | |-----------|----------|-------| | `spikeinterface.core` | Base recording/sorting classes, I/O, synthetic generation, sorting analyzer | large API surface | | `spikeinterface.preprocessing` | Filtering, scaling, bad-channel handling, motion correction, pipeline API | mixed eager export + deprecation `__getattr__` | | `spikeinterface.sorters` | Sorter registry and execution wrappers | external tool dependencies for many sorters | | `spikeinterface.metrics` | Quality/template/spiketrain metrics via analyzer extensions | top-level star exports | | `spikeinterface.comparison` | Pairwise and multi-sorter comparisons | agreement/confusion/performance tooling | | `spikeinterface.curation` | Merge/split/threshold/model-based curation helpers | model workflows use pydantic/skops integrations | | `spikeinterface.widgets` | Plotting widgets + `plot_*` aliases | backend-dependent behavior | Import style: mixed (eager star imports in several `__init__.py`, plus lazy/deprecation `__getattr__` in `extractors` and `preprocessing`). See `assets/module-map.md` for full submodule inventory. ## References - `references/core-io-and-synthetic.md` - in-memory/binary I/O and synthetic data generation. - `references/preprocessing-and-motion.md` - preprocessing wrappers, pipelines, and motion correction. - `references/sorting-analyzer-and-metrics.md` - analyzer lifecycle, extension dependencies, metrics retrieval. - `references/sorters-and-execution.md` - sorter registry, local/container execution, and result loading. - `references/comparison-curation-widgets.md` - comparison classes, curation APIs, and plotting aliases.
在 GitHub 查看