sgoldenlab/simba
SimBA (Simple Behavioral Analysis): a pipeline and GUI for developing supervised behavioral classifiers from any major pose-estimation tool
SimBA (Simple Behavioral Analysis)
功能简介
SimBA 是一个基于 Python 的工具包,让研究人员能将动物追踪数据(来自 DeepLabCut、SLEAP 等的姿态估计结果)转化为特定行为的监督式机器学习分类器。它提供图形用户界面,让几乎没有编程经验的用户也能进行以下操作:
- 加载姿态估计 CSV 或其他追踪格式。
- 定义行为、标记视频帧并训练分类器(默认为随机森林模型)。
- 使用精确率/召回率曲线、学习曲线图及基于 SHAP 的可解释性来评估模型。
- 将训练好的模型应用于新视频,并导出逐帧的行为预测。
- 生成广泛的定量摘要(行为次数、持续时间、速度、区域停留时间、社交方向指标等)以及可叠加在原始视频上的可视化效果。
适用对象
- 神经科学家、动物行为学家及行为生物学家:记录小鼠、大鼠或其他小型动物,并需要对复杂社交或非社交行为进行可重现、高通量分析的研究人员。
- 已使用姿态估计工具(DeepLabCut、SLEAP、DeepPoseKit 等)且希望在不编写代码的情况下建立下游分析流程的实验室。
- 偏好点击式 GUI,但同时希望通过 API 进行脚本化工作流程的用户。
主要功能(详见 README)
| 类别 | 重点 |
|---|---|
| 输入 | 支持来自 DeepLabCut(含多动物 DLC)、SLEAP、DeepPoseKit、DANNCE (3‑D)、MARS、FaceMap、APT、SuperAnimal‑TopView、YOLO 及通用 blob 追踪的姿态估计输出。同时接受用户自定义的姿态方案。 |
| 输出 | 逐帧行为预测,包含标准评估指标(精确率、召回率、学习曲线)以及基于 SHAP 的特征重要性以实现可解释性。 |
| 行为分析 | 行为次数、持续时间、潜伏期、事件频率、严重程度评分;运动指标(速度、距离、轨迹);空间指标(区域内时间、进入次数、区域特定行为);社交/方向指标;时间结构分析(FSTTC、Kleinberg 平滑);现成检测(自发交替、幼崽检索、提示灯、明暗箱、冻结、绕圈等);非监督式分群与降维。 |
| 可视化 | 静态图表与视频叠加:姿态骨架、边界框、热图、甘特图、概率曲线、SHAP 摘要图、ROI 热图、方向箭头、检测特定可视化。 |
| 可解释性 | 整合 SHAP 以展示哪些姿态衍生特征驱动了每个分类器的决策。 |
| GUI | 基于 Tkinter 的桌面应用程序,安装 simba-uw-tf-dev 套件后执行 simba 启动。 |
| 扩展性 | API 文档、示例笔记本、Docker 镜像,以及以程序化方式执行流程的能力。 |
| 资源 | 托管于 OSF 的预训练随机森林模型、数据集、姿态模型与权重;详尽的教学、基于情境的逐步指南及社区 Gitter 聊天室。 |
| 平台支持 | Windows、macOS 与 Linux。 |
如何开始
- 通过
pip install simba-uw-tf-dev安装套件(Python 3.6‑3.10)。 - 执行
simba开启 GUI。 - 依照 Scenario 1 教学导入姿态数据、标记行为、训练分类器并在测试数据集上执行分析。
- 使用提供的预训练分类器,或为新行为建立自己的分类器。
重要性
行为神经科学越来越依赖高分辨率视频与姿态估计来捕捉细微动作。SimBA 弥补了原始追踪数据与科学严谨行为指标之间的差距,提供可在不同实验室间重现的可解释机器学习模型。其低代码方法降低了缺乏专职计算人员的实验室的门槛,同时为进阶用户提供高阶分析功能(SHAP、时间耦合、非监督式分群)。
以上所有信息均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目