社区所有版块导航
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 • 2 年前 • 305 次点击  

作者:Paul Rees 博士,斯旺西大学系统与过程工程中心 (SPEC) 工程学教授和负责人




基因毒性检测用于评估化学制剂(如药物)对遗传基因(DNA 和 RNA)的损伤,经常用于检验候选药物的安全性。过去,训练有素的实验室技术人员手动进行检测,使用显微镜检查成千上万个细胞来确定 DNA 损伤的生物标记:细胞分裂时形成微核 (MN)(图 1)。这种方法不仅耗费大量人力和时间,还依赖于单个技术人员的主观判断。

图 1. 左上:左:明场像;右:核荧光像。左上:单个核细胞;右上:带微核的单个核细胞。左下:双核细胞;右下:带微核的双核细胞。

我所在的斯旺西大学的研究小组开发了一种基于深度学习和成像流式细胞术 (IFC) 的自动化方法,用于基因毒性和类似研究。我的合作者 George Johnson 博士的实验室使用 IFC 从单个细胞收集多通道图像数据。我们使用的是 DeepFlow,一种针对与 IFC 优化的深度学习网络 [1]。这使我们能够准确、自动地将图像分为单核、单核带 MN、双核或双核带 MN(图 2)四个类别。

图 2. 图像自动分类工作流。

这种方法消除了人工方法的主观性,使世界各地的实验室都能够得到一致的检测结果。由于我们使用 MATLAB® 和 Deep Learning Toolbox™ 实现了 DeepFlow,因此我们可以将代码发送到与我们合作的任何实验室并且知道它会可靠运行。许多研究人员都已经熟悉 MATLAB,这意味着他们可以轻松地修改或改进代码,并根据具体的实验环境定制 DeepFlow。

\ | /

构建 DeepFlow





DeepFlow 最初是使用 Keras TensorFlow™ 实现的,但后来我们决定在 MATLAB 中将其重新实现。这样几乎世界上的所有实验室就都可以使用 DeepFlow 了。不管某个实验室使用的是什么流式细胞仪,我们都希望该软件能够正常工作。我们想要的是一个无须操心依存关系并且易于理解和修改的深度学习网络。

我们没有逐行转换 Keras 代码,而是使用了深度网络设计器应用来构建、可视化和训练 DeepFlow 网络。将 Keras 代码显示在屏幕的一侧,深度网络设计器显示在另一侧,我们直接复制了初始实现的架构(图 3)。

图 3. 深度网络设计器中的 DeepFlow 网络





我们使用了 Deep Learning Toolbox 中的网络分析器来检查网络及其层中的错误(图 4)。例如,我们从一个为 200x200 像素的图像设计的网络开始,将其调整为可以处理从 IFC 获得的 64x64 像素的图像,并使用网络分析器来验证网络中每个卷积层的图像大小。我们的合作者们在使用深度网络设计器修改网络时也会使用网络分析器。

图 4. MATLAB 网络分析器中的 DeepFlow 网络

    ◆  

\ | /

使用 DeepFlow 进行基因毒性检测

在实验环境中,我们使用了可在几分钟内处理 10,000 个细胞的 IFC。在对细胞核和微核使用了增加 DNA 可见性的溶液进行染色后,我们捕获了它们的明场像及荧光像(图 5)。

图 5. 对 IFC 数据进行分类和可视化的 CNN。[1]

之后,我们将 IFC 数据作为 MATLAB 数据存储导入了 MATLAB。我们用传统的图像处理技术对其进行了预处理,从而根据强度对每张图像进行重新归一化并确保每张图像都对准了焦距,也就是说,细胞完全位于帧中。例如,我们使用边缘检测来识别清晰的边缘(这表明图像处于对焦状态)和完全平坦的边缘(这表明相机没有捕捉到整个细胞)。

我们用 2,000 多张人工分类的图像对 DeepFlow CNN 进行了训练。从 IFC 获得一组标准化的干净数据后,我们使用经过训练的网络将图像分为带或不带 MN 的单核、双核、三核或四核细胞几类。最后,我们使用一个公认的公式计算了每一类细胞的百分比,以评估用于治疗细胞的药剂的毒性。

我们发现,DeepFlow 网络中紧挨着最后一个分类层的上一层对于理解经过训练的 CNN 的运作方式特别有价值。为了解析嵌入该层中的信息,我们在 MATLAB 中用 t 分布的随机近邻嵌入 (tSNE) 算法可视化了高维数据(图 6)。这些可视化后的图像数据可以揭示其中的细微差别,而这些细微差别在人工检查中几乎察觉不到。例如,分类为双核和单核的细胞与微核之间的关系表明,大小决定了正常细胞核和微核之间的区别。

图 6. 显示基因毒性检测中典型细胞类型的数据的 tSNE 可视化。

    ◆  

\ | /

使用弱监督学习将 DeepFlow 原理应用于血液质量评估

除了基因毒性研究,我们还在各种分析和分类应用中使用了深度学习。例如,最近我和我的同事使用 CNN 和弱监督学习研究了红细胞 (RBC) 随时间推移的降解情况 [2]。为了输血而储存的血液中的红细胞会形成储存损伤。这种损伤的表现便是细胞形态发生变化,而这种变化通常需要用显微镜进行人工评估。人工评估非常耗时,并且我们注意到,不同的专家往往会给出不同的分数。





我们按照基因毒性研究的方法进行了 RBC 研究的第一部分,既用人工标记分类为几种可能形态(或表型)的图像对 CNN 进行训练(图 7)。经过训练的网络在形态学分类方面与专家的一致性超过 76%,这与专家之间约 79% 的一致性差不多。

图 7. RBC 形态。

在研究的第二部分中,我们消除了带有主观性的人工标记,然后仅使用储存血液的时间对一个名为 ResNet50 的弱监督神经网络进行了训练。当我们用在基因毒性研究中使用过的 tSNE 方法将结果可视化后,我们发现网络已经学会了提取单细胞特征。这些特征揭示了随时间推进的形态变化(图 8)。这意味着此种推进可以预测所储存血液的血液质量和失效日期而无需人工注释,从而减少了血液浪费并有助于确保不合适的血液不会用于输血。

图 8. 在 CNN 可视化过程中揭示的表型(形态)分布。

DeepFlow 的下一步计划


我们小组目前正在评估几个将 IFC 和深度学习与 MATLAB 相结合的潜在研究项目。其中一个项目建立在基因毒性研究的基础上,但侧重于评估接受化疗的患者的白细胞反应 [3]。第二个项目会将 DeepFlow 扩展到玻片扫描分析,这可能能使公司能够重新分析大量的玻片扫描数据。我们还在为 DeepFlow 开发图形界面,以便将把它与网络打包为一个单独的应用程序。

关于作者:

Paul Rees 博士是斯旺西大学系统与过程工程中心 (SPEC) 的工程学教授和负责人。他的研究兴趣包括流式细胞术、生物医学图像分析建模、血凝块模拟和胶体量子点。

参考文献

[1] Eulenberg, P., Köhler, N., Blasi, T. et al. “Reconstructing cell cycle and disease progression using deep learning.” Nature Communications 8, 463 (2017). doi:10.1038/s41467-017-00623-3

[2] Doan, M., Sebastian, J.A. et. al. “Objective assessment of stored blood quality by deep learning.” Proceedings of the National Academy of Sciences Sep 2020, 117 (35) 21381-21390. doi: 10.1073/pnas.2001227117

[3] Doan, M., Case, M., Masic, D., Hennig, H., McQuin, C., Caicedo, J., Singh, S., Goodman, A., Wolkenhauer, O., Summers, H.D., Jamieson, D., van Delft, F.W., Filby, A., Carpenter, A.E., Rees, P. and Irving, J. (2020).“Label‐Free Leukemia Monitoring by Computer Vision.”Cytometry, 97:407-414. doi: 10.1002/cyto.a.23987

对生物系统进行建模、仿真和分析,点击“阅读原文”了解 SimBiology 并获取产品试用。SimBiology® 提供一系列 App 和可编程工具,用于对动态系统进行建模、仿真和分析,主要用于定量系统药理学 (QSP)、基于生理学的药代动力学 (PBPK) 和药代动力学/药效动力学 (PK/PD) 应用。👇

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