复旦大学脑科学转化研究院
细胞分割与Cellpose
对于空间转录组分析,也需要分割细胞,将 RNA 的表达量赋予单个细胞;
对于医学诊断而言,通过细胞的大小、形态、位置以及计数来诊断病变
该款软件使用 Python 语言编写,凭借其良好的细胞分割效果、不错的运行速度、易于使用的界面、支持与其他软件联动等特性,获得了广泛的使用和认可,在GitHub上获得770+的star数,可谓是细胞分割领域的"ChatGPT"。
Cellpose软件主要由来自珍妮莉亚研究园区 (Janelia Research Campus)的研究员“夫妻档” Marius Pachitariu 与 Carsen Stringer 开发。两位研究员的经历很相似,都是从数学背景转向计算神经科学,博士都毕业于英国伦敦大学的盖茨比计算神经科学中心,之后都来到 Janelia 担任研究员。目前两位各自的实验室方向也有很大的重合,主要从事于小鼠视觉皮层的神经元解码工作。
为了便于分析工作的开展,他们以 MATLAB 和 Python 为主要开发语言,与其他实验室合作开发了一系列软件来处理大规模成像数据,并在 Github 开源。
https://github.com/MouseLand
他们开发的软件以良好的性能和友好的 GUI 界面为特色,得到了众多神经科学家喜爱和广泛使用。其中:Kilosort 用于处理超大通量的神经电生理信号,能对神经元信号进行提取和分类(Spike Sorting);
Suite2p 集成了双光子钙成像数据的处理流程,能够进行运动配准、神经元检测、动作电位推断等流程;
Rastermap 能以 GUI 界面选择神经元,并排序绘制对应的栅格图(Raster Plot),支持与 Suite2p 联动,直观展示不同神经元的钙信号变化;
Facemap 通过解析小鼠面部表情来预测神经活动;
图 1 Marius Pachitariu 与 Carsen Stringer开发的软件开源在Github上的MouseLand组织里
图 2 Cellpose构建的包含608张多类型图像的数据集可视化展示
图 3 Cellpose 模型的架构
文章中将 Cellpose 与 Mask R-CNN、Stardist、U-Net3、U-Net2 等不同深度学习模型进行了比较,分别通过对 generalist data(包含全部 608 张图像的数据集)和 specialist data (只包含 100 个荧光细胞的 Cell Image Library)分别对 Cellpose 和其他模型进行训练。其结果为,用 generalist data 训练的模型,用 generalist data 和 specialist data 测试,Cellpose 模型都比其他模型预测的更精准;用 specialist data 训练的模型,在 specialist data 测试,Cellpose 也比其他模型要好。文章里同时还探究了 ROI 同质性与 ROI 凸性对 Cellpose 分割的影响。同质性指的是图像内每个 ROI 大小差别,同质性越大,ROI 大小差别越小,计算方式是对 ROI 面积大小从小到大排序,第一四分位数除以第三四分位数即为同质性指标。通过对同质性与分割效果的相关性分析以判断是否相关 ;而凸性可以理解为 ROI 圆不圆润,凸性越大,ROI越圆润,计算方式为 ROI 面积除以恰好能包裹住的圆的面积,通过将 ROI 分为低、中和高凸性来探究 ROI 的凸性是否影响分割效果。实验结果表明,分割效果与细胞大小的同质性之间没有关系,而凸性会影响到分割效果,所有模型在高凸性 ROI 的分割表现优于低凸性ROI。
图 5 探究了ROI同质性与ROI凸性对Cellpose分割的影响
文章的最后,作者还对 Cellpose 模型进行了修改,使其能支持 3D 的数据,即支持对视频内的细胞进行分割。Cellpose 2.0的预训练模型与“人在回路”
“Cellpose 2.0: how to train your own model”发表于 2022 年 11 月[2]。尽管 Cellpose 1.0 在设计之初就考虑了通用性,希望可以为许多不同的细胞图像提供开箱即用的良好分割效果。但是在实际应用中,却发现一个很大的问题——一方面不同数据集差别很大,每个数据集注释风格也不一致,另一方面不同用户想要的分割样式可能也不一样。如何确保模型的自适应力强,不仅能用于不同数据集,还能满足不同用户希望的分割风格,是细胞分割领域的一大挑战。
为此,Cellpose2.0 改进之一,是集合了原有的 608 张多类型的图像以及 TissueNet[3]、LiveCell 数据集[4],通过聚类分成了 9 个不同风格数据集,为这 9 个具有人工注释的数据集单独训练对应的 Cellpose 模型进行集成。这 9 个模型具有不同的分割样式,用户可以选择最符合他们要求的模型,并且软件可支持计算输入图像的风格来自动推荐模型。鉴于集成的 9 个模型可能依然无法解决对全新图像类型的泛化问题,文章中还探究了用户能否以相对较少的注释来训练一个自定义模型。将 TissueNet 和 LiveCell 数据集视为新的图像类别,通过比较 Cellpose 1.0 已预训练的模型和完全从头开始训练的 Cellpose 模型(from scratch),将 TissueNet 和 LiveCell 团队各自使用的模型(Mesmer 模型和 LiveCel 模型)当作参考基准,探究对于两个数据集需要多少个 ROI 训练才能实现良好的分割效果。实验结果表明,预训练模型比完全从头开始训练的模型更有优势,仅仅只需要 500-1,000 个训练 ROI 就足以在TissueNet 和 LiveCell 数据集中实现接近最大的分割精度,并且在多样化的 Cellpose 数据集中预训练能比大型的 TissueNet 和 LiveCell 数据集预训练表现更好。
Cellpose 2.0 的改进之二,借鉴了 TissueNet 数据集的细胞 ROI 标注方法[3],在深度学习算法层面引入了“人在回路”(Human-in-the-loop)。传统的监督学习算法,包括 Cellpose 1.0 算法,完全依赖于数据标注员对数据集的注释,经过一次次的迭代训练使其在当前的数据集表现良好,却无法真正保证其在新数据下的表现。“人在回路”的思想是在训练过程中引入人的反馈,以提高模型预测的准确性、不同数据集下的鲁棒性。目前大火的 ChatGPT,便是在 GPT3.5 模型上引入了“人在回路”的强化学习,人工对答案满意度进行打分排序,使得 ChatGPT 的回答更接近于人。
Cellpose 2.0 的“人在回路”训练过程为,先训练一个初始的、可能并不完美的模型,这个初始模型应用于用户的数据上,结果将由用户来修正,模型再通过修正后的结果进行重新训练,以提高模型的细胞分割表现。文章表明,Cellpose 预训练模型配上“人在回路”训练方式仅需要 3-5 张图像(100-200 个手动分割的 ROI)就足以获得良好的分割效果。
Cellpose 使用入门
Cellpose 官网支持运行在线版本的 Cellpose 1.0。
https://www.cellpose.org/图 10 运行在线的cellpose
本地版本Cellpose 2.0
如果需要大量的细胞成像图片进行细胞分割以及想体验 Cellpose 2.0 的新模型和“人在回路”训练自定义模型,则需要安装本地版本。
Cellpose 基于 Python 语言编写,并没有提供 exe 文件来直接安装。
在Cellpose的Github repo上有详细的安装指导:
https://github.com/MouseLand/cellpose。
官方的安装建议是使用 conda 作为包和环境管理器,来安装 Cellpose。安装和配置 conda 这里并不展开,可从网络搜索教程,Windows 系统和 Mac 系统推荐安装具有图形界面的 Anaconda,而 Linux 系统推荐安装更为轻便的 miniconda 或 mambaforge。运行 Cellpose 的命令如下:
图 11 Cellpose 软件界面
简要介绍下 Cellpose 的基本使用方式。https://cellpose.readthedocs.io/en/latest/
Cellpose 与软件的联动【注:Cellpose在算法与分析功能方法已经完胜大多数商业化AI软件,不过从事仪器硬件生产研发的厂家的则
参考文献