[ PROMPT_NODE_26900 ]
neuropixels-analysis
[ SKILL_DOCUMENTATION ]
# Neuropixels 数据分析
## 概述
用于分析 Neuropixels 高密度神经记录的综合工具包,采用 SpikeInterface、Allen 研究所和国际脑实验室 (IBL) 的当前最佳实践。支持从原始数据到可发表的策展单位的全流程工作流。
## 何时使用此技能
当出现以下情况时应使用此技能:
- 处理 Neuropixels 记录 (.ap.bin, .lf.bin, .meta 文件)
- 从 SpikeGLX、Open Ephys 或 NWB 格式加载数据
- 预处理神经记录(滤波、CAR、坏通道检测)
- 检测和校正记录中的运动/漂移
- 运行脉冲排序 (Kilosort4, SpykingCircus2, Mountainsort5)
- 计算质量指标 (SNR, ISI 违规, 存在比率)
- 使用 Allen/IBL 标准进行单位策展
- 创建神经数据可视化
- 将结果导出到 Phy 或 NWB
## 支持的硬件与格式
| 探针 | 电极 | 通道 | 备注 |
|-------|-----------|----------|-------|
| Neuropixels 1.0 | 960 | 384 | 需要 phase_shift 校正 |
| Neuropixels 2.0 (单柄) | 1280 | 384 | 更密集的几何结构 |
| Neuropixels 2.0 (4柄) | 5120 | 384 | 多区域记录 |
| 格式 | 扩展名 | 读取器 |
|--------|-----------|--------|
| SpikeGLX | `.ap.bin`, `.lf.bin`, `.meta` | `si.read_spikeglx()` |
| Open Ephys | `.continuous`, `.oebin` | `si.read_openephys()` |
| NWB | `.nwb` | `si.read_nwb()` |
## 快速入门
### 基本导入与设置
python
import spikeinterface.full as si
import neuropixels_analysis as npa
# 配置并行处理
job_kwargs = dict(n_jobs=-1, chunk_duration='1s', progress_bar=True)
### 加载数据
python
# SpikeGLX (最常用)
recording = si.read_spikeglx('/path/to/data', stream_id='imec0.ap')
# Open Ephys (许多实验室常用)
recording = si.read_openephys('/path/to/Record_Node_101/')
# 检查可用流
streams, ids = si.get_neo_streams('spikeglx', '/path/to/data')
print(streams) # ['imec0.ap', 'imec0.lf', 'nidq']
# 测试数据子集
recording = recording.frame_slice(0, int(60 * recording.get_sampling_frequency()))
### 完整工作流(单命令)
python
# 运行完整分析工作流
results = npa.run_pipeline(
recording,
output_dir='output/',
sorter='kilosort4',
curation_method='allen',
)
# 访问结果
sorting = results['sorting']
metrics = results['metrics']
labels = results['labels']
## 标准分析工作流
### 1. 预处理
python
#