[ PROMPT_NODE_26892 ]
Neuropixels Analysis Automated Curation
[ SKILL_DOCUMENTATION ]
# 自动筛选参考
使用 Bombcell、UnitRefine 及其他工具进行自动脉冲排序筛选的指南。
## 为什么使用自动筛选?
手动筛选存在以下问题:
- **缓慢**:每个记录会话需要数小时
- **主观性**:评估者之间存在差异
- **不可重现**:难以标准化
自动化工具提供一致、可重现的质量分类。
## 可用工具
| 工具 | 分类 | 语言 | 集成 |
|------|---------------|----------|-------------|
| **Bombcell** | 4 类 (单/多/噪声/非躯体) | Python/MATLAB | SpikeInterface, Phy |
| **UnitRefine** | 基于机器学习 | Python | SpikeInterface |
| **SpikeInterface QM** | 基于阈值 | Python | 原生 |
| **UnitMatch** | 跨会话追踪 | Python/MATLAB | Kilosort, Bombcell |
## Bombcell
### 概述
Bombcell 将单位分为 4 类:
1. **单躯体单位** - 良好隔离的单个神经元
2. **多单位活动 (MUA)** - 混合神经元信号
3. **噪声** - 非神经伪影
4. **非躯体** - 轴突或树突信号
### 安装
bash
# Python
pip install bombcell
# 或开发版本
git clone https://github.com/Julie-Fabre/bombcell.git
cd bombcell/py_bombcell
pip install -e .
### 基本用法 (Python)
python
import bombcell as bc
# 加载排序数据 (Kilosort 输出)
kilosort_folder = '/path/to/kilosort/output'
raw_data_path = '/path/to/recording.ap.bin'
# 运行 Bombcell
results = bc.run_bombcell(
kilosort_folder,
raw_data_path,
sample_rate=30000,
n_channels=384
)
# 获取分类
unit_labels = results['unit_labels']
# 'good' = 单单位, 'mua' = 多单位, 'noise' = 噪声
### 与 SpikeInterface 集成
python
import spikeinterface.full as si
# 脉冲排序后
sorting = si.run_sorter('kilosort4', recording, output_folder='ks4/')
# 创建分析器并计算所需扩展
analyzer = si.create_sorting_analyzer(sorting, recording, sparse=True)
analyzer.compute('waveforms')
analyzer.compute('templates')
analyzer.compute('spike_amplitudes')
# 导出为 Phy 格式 (Bombcell 可读取)
si.export_to_phy(analyzer, output_folder='phy_export/')
# 在 Phy 导出数据上运行 Bombcell
import bombcell as bc
results = bc.run_bombcell_phy('phy_export/')
### Bombcell 指标
Bombcell 计算用于分类的特定指标:
| 指标 | 描述 | 用途 |
|--------|-------------|----------|
| `peak_trough_ratio` | 波形形状 | 躯体与非躯体区分 |