用途
neuropixels-analysis 是一套用于分析 Neuropixels 高密度神经记录的综合工具包,采用 SpikeInterface、Allen Institute 和 International Brain Laboratory(IBL)的当前最佳实践,支持从原始数据到可发表级别整理单元(units)的完整工作流。
该技能适用于以下场景:处理 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(单 shank)为 1280 电极、384 通道,几何更密集;Neuropixels 2.0(4-shank)为 5120 电极、384 通道,可进行多区域记录。
格式方面,SpikeGLX 使用 .ap.bin、.lf.bin、.meta 扩展名,通过 si.read_spikeglx() 读取;Open Ephys 使用 .continuous、.oebin,通过 si.read_openephys() 读取;NWB 使用 .nwb,通过 si.read_nwb() 读取。
使用方式
基本设置示例:
import spikeinterface.full as si
import neuropixels_analysis as npa
# 配置并行处理
job_kwargs = dict(n_jobs=-1, chunk_duration='1s', progress_bar=True)
加载数据示例:
# 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()))
一键完整流程示例:
results = npa.run_pipeline(
recording,
output_dir='output/',
sorter='kilosort4',
curation_method='allen',
)
sorting = results['sorting']
metrics = results['metrics']
labels = results['labels']
标准分析工作流包含以下阶段:
-
预处理。推荐链路为高通滤波(freq_min=400)、phase_shift(Neuropixels 1.0 必需)、坏通道检测与移除、共参考(operator='median'),也可使用封装函数 npa.preprocess(recording)。
-
检查与校正漂移。使用 npa.estimate_motion(rec, preset='kilosort_like') 估计运动,通过 npa.plot_drift 输出漂移图;若运动最大值超过 10 微米,则使用 npa.correct_motion(rec, preset='nonrigid_accurate') 校正。
-
脉冲分选。推荐 Kilosort4(需要 GPU):si.run_sorter('kilosort4', rec, folder='ks4_output');CPU 替代方案包括 tridesclous2、spykingcircus2、mountainsort5;可用 si.installed_sorters() 查看已安装的分选器。
-
后处理。创建 analyzer 并计算扩展:random_spikes、waveforms、templates、spike_amplitudes、correlograms、unit_locations、quality_metrics,示例参数为 max_spikes_per_unit=500、ms_before=1.0、ms_after=2.0、window_ms=50.0、bin_ms=1.0、method='monopolar_triangulation'。
-
整理。可使用 Allen Institute 标准(保守)查询指标,或使用 npa.curate(metrics, method='allen')(支持 'allen'、'ibl'、'strict')进行自动整理。
-
AI 辅助整理(针对不确定单元)。在 Claude Code 中运行时可直接分析波形图并给出整理决策,无需 API 设置;程序化 API 访问需使用 anthropic 客户端,调用 npa.analyze_unit_visually(analyzer, unit_id, api_client=client),例如针对 snr 在 3 到 8 之间的不确定单元。
-
生成分析报告。使用 npa.generate_analysis_report(results, 'output/') 生成包含可视化、汇总统计、图表和单元表格的 HTML 报告,或用 npa.print_analysis_summary(results) 打印格式化摘要。
-
导出结果。可导出到 Phy 进行人工审查(si.export_to_phy,含 compute_pc_features 与 compute_amplitudes)、导出到 NWB(export_to_nwb),并将质量指标保存为 CSV(metrics.to_csv)。
关键参数
预处理方面,freq_min 为高通截止频率(典型 300-400 Hz),detect_threshold 控制坏通道检测灵敏度。运动校正方面,preset 可选 'kilosort_like'(快)或 'nonrigid_accurate'(对严重漂移更好)。Kilosort4 方面,batch_size 为每批样本数(默认 30000),nblocks 为漂移块数(长记录需增加),Th_learned 为检测阈值(越低检测到越多脉冲)。质量指标方面,snr_threshold 为信噪比截止(典型 3-5),isi_violations_ratio 为不应期违规(0.01-0.5),presence_ratio 为记录覆盖度(0.5-0.95)。
常见陷阱与最佳实践
分选前始终检查漂移,漂移超过 10μm 会显著影响质量;Neuropixels 1.0 探头需使用 phase_shift(2.0 不需要);保存预处理数据以避免重复计算,使用 rec.save(folder='preprocessed/');Kilosort4 建议使用 GPU,比 CPU 替代方案快 10-50 倍;人工复核不确定单元,自动整理只是起点;结合指标与 AI,清晰案例用指标,边界单元用 AI;记录所用阈值,不同分析可能需要不同标准;关键实验导出到 Phy,人工监督很有价值。
附带的脚本与资源
脚本包括:scripts/preprocess_recording.py(自动化预处理)、scripts/run_sorting.py(运行脉冲分选)、scripts/compute_metrics.py(计算质量指标并应用整理)、scripts/export_to_phy.py(导出到 Phy 进行人工整理)。资源包括 assets/analysis_template.py(完整分析模板,可复制并自定义)、reference/standard_workflow.md(详细分步工作流)、reference/api_reference.md(按模块组织的函数速查)、reference/plotting_guide.md(出版级图表可视化指南)。详细参考指南涵盖完整工作流、API 参考、绘图指南、预处理、脉冲分选、运动校正、质量指标、自动整理、AI 辅助整理、波形分析等主题。
安装
# 核心包
pip install spikeinterface[full] probeinterface neo
# 脉冲分选器
pip install kilosort # Kilosort4(需要 GPU)
pip install spykingcircus # SpykingCircus2(CPU)
pip install mountainsort5 # Mountainsort5(CPU)
# 本工具包
pip install neuropixels-analysis
# 可选:AI 整理
pip install anthropic
# 可选:IBL 工具
pip install ibl-neuropixel ibllib
项目结构
典型项目结构如下:raw_data 存放原始记录(如 recording_g0/recording_g0_imec0/ 下的 .ap.bin 与 .meta);preprocessed 保存预处理后的记录;motion 保存运动估计结果;sorting_output 保存分选器输出;analyzer 保存 SortingAnalyzer(波形、指标);phy_export 用于人工整理;ai_curation 保存 AI 分析报告;results 保存 quality_metrics.csv、curation_labels.json、output.nwb。
限制
资料未提供本工具的具体收费、价格、平台兼容范围、性能基准及使用步骤以外的效果承诺,相关信息暂未提供。