社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

无所不能的 MATLAB | 用深度学习评估阿尔兹海默病治疗靶点

MATLAB • 3 年前 • 436 次点击  




为了测量与阿尔茨海默病相关的树突棘丢失,基因泰克公司研究人员开发了基于 MATLAB 的图像处理和深度学习 App —— Spine Tool,用于自动计算树突棘密度。



    ◆  

作者:Justin Elstrott 博士,基因泰克公司生物医学成像部。

阿尔茨海默病 (AD) 是痴呆症最常见的原因,其特征是淀粉样斑块的累积导致大脑发生病变。

研究表明,这些坚硬的、不可溶解的 β淀粉样蛋白累积与树突棘丢失密切相关,树突棘是神经元树突的微米级突起,接收来自其他神经元的输入。

在这些研究的基础上,我在基因泰克的同事以及其他阿尔茨海默病研究人员正开展临床前工作,评估各种有助于在出现淀粉样斑块的情况下减少树突棘丢失的化合物。

为了量化树突棘丢失,我们检查小鼠脑组织的显微图像,沿树突对树突棘逐一计数,并计算树突棘密度(例如,每 100 微米树突的树突棘数)。纯靠人工完成这一过程极其耗费时间和精力。

大约 10 年前,我们小组开发了 Spine Tool,它是一个 MATLAB® 图像处理应用程序,有助于自动识别树突棘并计算其密度(图 1)。尽管原始版本的 Spine Tool 在处理体外样本时效果良好,但它在处理图像质量较低的离体大脑样本时发生了大量误报和漏报。

图 1.基于 MATLAB 的 Spine Tool,用来自动检测、注释和分析树突棘。

为了提高 Spine Tool 的准确度,我们与 MathWorks 顾问合作,在该工具中加入深度学习。

我们基于包含 9000 多张图像的数据集训练卷积神经网络 (CNN),所有图像均由原始版本的 Spine Tool 加以注释。经过训练的 CNN 进一步提升了自动化程度,有助于评估尽可能减少树突棘丢失的治疗方法。

有关树突棘密度的基础知识

为了开展研究,我们使用正常小鼠(野生型小鼠,即 WT 小鼠)和表达淀粉样 β 蛋白的小鼠(PS2APP 小鼠),后者容易形成淀粉样斑块。我们使用小鼠脑组织显微切片的数字图像,分别对有/无可见斑块时单个树突上的树突棘进行识别和计数。

如图 2 所示,对于 PS2APP 小鼠,存在斑块时,附近的树突棘数量明显减少。该研究还包含第三组小鼠,其补体 3 基因被敲除 (C3KO);这些小鼠的树突棘丢失明显较少 [1]。

图 2.小鼠树突的树突棘。从左到右:正常小鼠 (WT)、抑制了 C3 基因表达的小鼠 (C3KO)、PS2APP 小鼠(树突棘远离/靠近斑块)、C3KO 的 PS2APP 小鼠(树突棘远离/靠近斑块)。改自 [1]。

我们汇总了数百个样本的树突棘密度,生成条形图,比较不同小鼠基因型的树突棘密度(图 3),发现以下两者在统计学上是显著的:

斑块附近树突棘密度的降低,以及 C3KO 小鼠树突棘密度的恢复。这些研究结果表明,降低补体活性可能是一种有效的治疗策略。

图 3.此图显示不同基因型的树突棘平均密度。改自 [1]。

传统图像处理与深度学习相结合

早期版本的 Spine Tool 应用多种方法识别树突棘,包括阈值检测、分割和形态学图像处理方法,以及用于检测神经科学特有形态学的自定义运算(图 4)。

图 4.用早期版本的 Spine Tool 处理得到的树突图像。左图的黄色虚线框表示树突棘最大宽度参数。

为将 Spine Tool 与深度学习相结合,我们评估了几种预定义的网络架构,包括 Deeplab、SegNet 和 U-Net,U-Net 是一种针对生物医学图像分割而开发的网络。我们选择 U-Net 是因为其多分辨率性能。

为了减少训练时间,我们决定使用二维 U-Net,而不是较复杂的三维 U-Net。

虽然我们处理的是三维数据,但它不是等体积的:这些三维体的深度只有几个切片,树突棘在 Z 轴上的跨度很少超过一至两个切片。

我们对这些三维薄切片进行最大密度投影,由此创建二维数据集。我们在配备 NVIDIA® GeForce RTX 2080 Ti GPU 的工作站上使用 Parallel Computing Toolbox™ 执行训练,从而节省了更多的时间。

训练后的网络最初的分类结果看起来还不错,但仍有漏报,识别出的树突棘少于我们自己能看到的。

这是由于存在类不平衡问题:与树突和背景相比,树突棘很小。我们调整了整个网络的类权重,并评估各种损失函数以提高预测准确度。我们选择了设置权重来最大化敏感度。

更新后的网络几乎能够检测到图像中的所有树突棘,但误报增多了。

我们对结果进行后处理,从而消除了这些误报。例如,我们对检测到的树突棘施加长度和体积限制,剔除那些太大或太小、实际不是树突棘的结果。

目前,我们主要利用这一深度学习模型节省时间,而非提高准确度。我们使用包含后处理的模型来预测不同基因型条件下的树突棘密度比,结果接近基于 Spine Tool 真值数据集使用传统图像处理方法所得的计数(图 5),但可节省多达一半的手动校正时间。

图 5.分别使用图像处理(左)和深度学习(右)得到的树突棘密度比。

改进和验证 Spine Tool

当前,我们正在优化后处理步骤,以确保网络检测到的相邻树突棘能被正确地分割和计数。

在树突棘检测的准确性方面,深度学习或许迟早超过人工检查,但我们衡量成功与否的主要标准不在于此。

我们的目标是验证一个猜想:如果一种治疗效果可以由人类检测到,则它也可以由网络检测到。

在接下来的几个月里,我们将使用 Spine Tool 新增的深度学习功能来处理图像以用于实际研究。同时,我们将使用现有工作流处理图像并比较结果。

如果结果符合我们的期望,即两种方法得到的条形图显示出大致等同的树突棘平均密度,那我们就能确信,今后可以放心地使用这一新工具进行树突棘密度研究,并且有机会节省一半的人工工作量。

    ◆  

参考文献

1. Wu, T. et al.“Complement C3 Is Activated in Human AD Brain and Is Required for Neurodegeneration in Mouse Models of Amyloidosis and Tauopathy.”Cell Reports 28, 2111-2123.e6 (2019).

    ◆  

了解更多 MATLAB 在医疗影像 和 DICOM 上的应用,点击“阅读原文”,查看示例和帮助文档。 

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127457
 
436 次点击