[ PROMPT_NODE_26898 ]
Neuropixels Analysis Quality Metrics
[ SKILL_DOCUMENTATION ]
# 质量指标参考
使用 SpikeInterface 指标和 Allen/IBL 标准进行单位质量评估的综合指南。
## 概述
质量指标评估排序单位的三个方面:
| 类别 | 问题 | 关键指标 |
|----------|----------|-------------|
| **污染** (I 型) | 脉冲是否来自多个神经元? | ISI 违规, SNR |
| **完整性** (II 型) | 是否丢失了脉冲? | 振幅截止, 存在比率 |
| **稳定性** | 单位随时间是否稳定? | 漂移指标, 振幅 CV |
## 计算质量指标
python
import spikeinterface.full as si
# 创建带有计算波形的分析器
analyzer = si.create_sorting_analyzer(sorting, recording, sparse=True)
analyzer.compute('random_spikes', max_spikes_per_unit=500)
analyzer.compute('waveforms', ms_before=1.5, ms_after=2.0)
analyzer.compute('templates')
analyzer.compute('noise_levels')
analyzer.compute('spike_amplitudes')
analyzer.compute('principal_components', n_components=5)
# 计算所有质量指标
analyzer.compute('quality_metrics')
# 或计算特定指标
analyzer.compute('quality_metrics', metric_names=[
'firing_rate', 'snr', 'isi_violations_ratio',
'presence_ratio', 'amplitude_cutoff'
])
# 获取结果
qm = analyzer.get_extension('quality_metrics').get_data()
print(qm.columns.tolist()) # 可用指标
## 指标定义与阈值
### 污染指标
#### ISI 违规比率
违反不应期的脉冲比例。所有神经元都有约 1.5ms 的不应期。
python
# 使用自定义不应期计算
analyzer.compute('quality_metrics',
metric_names=['isi_violations_ratio'],
isi_threshold_ms=1.5,
min_isi_ms=0.0)
| 值 | 解读 |
|-------|---------------|
| 0.5 | 差(可能是多单位) |
**参考:** Hill et al. (2011) J Neurosci 31:8699-8705
#### 信噪比 (SNR)
波形峰值振幅与背景噪声的比率。
python
analyzer.compute('quality_metrics', metric_names=['snr'])
| 值 | 解读 |
|-------|---------------|
| > 10 | 优秀 |
| 5 - 10 | 良好 |
| 2 - 5 | 可接受 |
| < 2 | 差(可能是噪声) |
#### 隔离距离
PCA 空间中到最近聚类的马氏距离。
python
analyzer.compute('quality_metrics',