[ PROMPT_NODE_26902 ]
Neuropixels Analysis Spike Sorting
[ SKILL_DOCUMENTATION ]
# 脉冲排序参考
Neuropixels 数据脉冲排序的综合指南。
## 可用排序器
| 排序器 | 需要 GPU | 速度 | 质量 | 适用场景 |
|--------|--------------|-------|---------|----------|
| **Kilosort4** | 是 (CUDA) | 快 | 优秀 | 生产环境使用 |
| **Kilosort3** | 是 (CUDA) | 快 | 很好 | 遗留兼容性 |
| **Kilosort2.5** | 是 (CUDA) | 快 | 好 | 旧工作流 |
| **SpykingCircus2** | 否 | 中 | 好 | 仅 CPU 系统 |
| **Mountainsort5** | 否 | 中 | 好 | 小型记录 |
| **Tridesclous2** | 否 | 中 | 好 | 交互式排序 |
## Kilosort4 (推荐)
### 安装
bash
pip install kilosort
### 基本用法
python
import spikeinterface.full as si
# 运行 Kilosort4
sorting = si.run_sorter(
'kilosort4',
recording,
output_folder='ks4_output',
verbose=True
)
print(f"发现 {len(sorting.unit_ids)} 个单位")
### 自定义参数
python
sorting = si.run_sorter(
'kilosort4',
recording,
output_folder='ks4_output',
# 检测
Th_universal=9, # 脉冲检测阈值
Th_learned=8, # 学习阈值
# 模板
dmin=15, # 模板间最小垂直距离 (um)
dminx=12, # 最小水平距离 (um)
nblocks=5, # 非刚性块数量
# 聚类
max_channel_distance=None, # 模板通道最大距离
# 输出
do_CAR=False, # 跳过 CAR(在预处理中完成)
skip_kilosort_preprocessing=True,
save_extra_kwargs=True
)
### Kilosort4 完整参数
python
# 获取所有可用参数
params = si.get_default_sorter_params('kilosort4')
print(params)
# 关键参数:
ks4_params = {
# 检测
'Th_universal': 9, # 脉冲检测通用阈值
'Th_learned': 8, # 学习模板阈值
'spkTh': -6, # 提取过程中的脉冲阈值
# 聚类
'dmin': 15, # 聚类间最小距离 (um)
'dminx': 12, # 最小水平距离 (um)
'nblocks': 5, # 非刚性漂移校正块
# 模板
'n_templates': 6, # 每组通用模板数量
'nt': 61, # 模板中的时间采样点数
# 性能
'batch_size': 60000, # 批处理采样点大小
'nfilt_factor': 8, # 滤波器数量因子
}
## Kilosort3
### U